Updates about parallelization of Greedy Coordinate Descent Method

I have added parallelization of “for loop” for the Greedy Coordinate Descent method for kernel SVM (L2 empirical risk minimization problem), random partitioned gradient array into omp_get_num_threads() numbers of subarrays and chose the best variables for each thread to update gradient, and applied atomic mechanism to the updating of gradient to avoid conflict write and loss of information. However, the parallelized DCD (dual coordinate descent) doesn’t converge as fast as I expect when it is multi thread (4 threads only speed up 0.0001 second compared to single thread and doesn’t converge to the same optimum on each running of code)

I diagnosed that there would be sth wrong with the way I compute my kernel matrix when it is in the multi core setting. Hopefully I will fix this by the end of this week.

Cheers.

 

Leave a Reply

Your email address will not be published. Required fields are marked *