cameron.freenode.net changed the topic of #mlpack to: http://www.mlpack.org/ -- We don't respond instantly... but we will respond. Give it a few minutes. Or hours. -- Channel logs: http://www.mlpack.org/irc/
< billLiu>
I know what you mean naywhayare. In my case, it need a lot of runs to finish the kmean. And it just runs on a single core. And when the training refers to EM, the matrix production would be benefit from OpenBlas and use 32 cores. So the kmeans becomes the bottleneck of the algorithm
< billLiu>
Of course, normally speaking, the main part EM steps takes the longest time. I just talked about my case :) And I use openMP to parallelize KMean update and to see whether it could be faster. Thx for you advice
< billLiu>
I found the comment "We require OpenMP now." just appears in mlpack 1.1.0, but no in my version 1.0.11. So I just copy from 1.1.0 to my version. I rebuild it and get error "". I comment out the line " set(CMAKE_EXE_LINKER_FLAGS ...", and it passes. Again, I check FindOpenMP in my cmake Module and could not find OpenMP_EXE_LINKER_FLAGS, is it correct? My cmake version 3.1.0.
jbc_ has quit [Quit: jbc_]
jbc_ has joined #mlpack
jbc_ has quit [Quit: jbc_]
govg has joined #mlpack
govg is now known as Guest71641
< naywhayare>
billLiu: sorry for the slow response... it is a holiday week so I am not spending much time checking IRC :)
< naywhayare>
I guess the OpenMP_EXE_LINKER_FLAGS line is wrong and doesn't work with new CMake
< billLiu>
Hmm, I know. I will do it as the next step. I implement some other algorithm according to my own requirement, so if I use new version mlpack, I should rewrite some of my codes...
< billLiu>
If I just use CMAKE_C_FLAGS and CMAKE_CXX_FLAGS, is it OK to link openMP when linking? It seem to me that my compiled code just run as serial code, and the number of thread is 1 (using omp_get_num_thread in parallel block)
< naywhayare>
hm, do you have a #pragma omp parallel? (silly question maybe)
< naywhayare>
you might also specify OMP_NUM_THREADS as an environment variable on the command-line
< billLiu>
actually I do this explicitly to verify my doubt 187 #pragma omp parallel num_threads(16) 188 { 189 Log::Info << omp_get_num_threads() << std::endl; 190 }
< naywhayare>
I thought you didn't need to specify num_threads explicitly, and if you didn't the system would decide automatically or with the use of the environment variable OMP_NUM_THREADS
< naywhayare>
but honestly I am not an OpenMP expert (yet)... :(
< billLiu>
I have already try to let the system choose the number of threads automatically, but failed as the same
< billLiu>
OK, I will try some other methods to figure it out. If I have a solution, I will tell you
< naywhayare>
yes, please do -- I would be interested to know what the solution is :)
Guest71641 has quit [Quit: leaving]
< billLiu>
I see my problem... I drop -fopenmp when compiling my own program. I used to think -lmlpack will link to mlpack lib which is compiled using -fopenmp, and no need to reassign -fopenmp because in my own program, I do not use openmp.
< billLiu>
Add -fopenmp to compile my program, KMenas training become parallel.
< billLiu>
For mlpack cmake, CMAKE_C_FLAGS and CMAKE_CXX_FLAGS is enough for me
ajkl has joined #mlpack
ajkl has quit [Client Quit]
govg has joined #mlpack
govg has quit [Ping timeout: 265 seconds]
govg has joined #mlpack
govg has quit [Ping timeout: 240 seconds]
govg has joined #mlpack
< naywhayare>
govg: I meant to update you on this a while ago -- 1.0.11 is released and has the testing bugs worked out, so you should be able to easily push it to AUR, I think :)
< naywhayare>
billLiu: ah, yeah, you'll need -fopenmp for your program, because GMM<...> is templated and will be instantiated not in libmlpack.so but instead in the program you are compiling
govg has quit [Ping timeout: 258 seconds]
govg has joined #mlpack
krsna has joined #mlpack
< krsna>
Hi
< krsna>
can some one please share any helpful resources ebooks/links on ML, C++ Memory Management etc., I'm a newbie on ML and interested in contributing to mlpack.
< krsna>
trying to get up to the speed. any help ?
< zoq>
I think another or additional way to get started in machine learning is to watch video courses (e.g. https://www.coursera.org/course/ml).
< zoq>
Once you are familiar with the basic methods, download and compile mlpack, and go through the tutorials; especially the parts of them that involve the C++ interface. That will help give you an idea of how the code is laid out and the code standards that are used.
< krsna>
hey @zoq thanks a lot for the information.
< zoq>
krsna: Sure, if you have any further questions, please do not hesitate to ask, either on the mailing list or IRC.
< krsna>
one more, are there any resources on c++ specific to memory management programming ?
< krsna>
which you think will be helpful for beginners
< zoq>
hm, right now I can't recall any but maybe someone on the channel can recommend something?