[eigen] giving up with OpenMP

[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]


Hi,

Today I removed the OpenMP stuff from Eigen:
- the only thing that did give any benefit was the cacheOptimal product. This 
is not enough to justify bothering about parallelization: anyway the even 
better solution here is a BLAS backend.
- the thing that would _really_ justify having parallelization in Eigen, would 
be to allow parallelizing generic operations with expressions. Parallelizing 
large assignments with cwise ops, and large redux/visitor, would be awesome. 
Unfortunately, today I spend 2 hours on benchmarkXcwise.cpp trying to get any 
benefit from OpenMP, without any success. They even had an example with 
addition of two large vectors (arrays) in C. When transposing this to the C++ 
context of Eigen, I didn't get any benefit. I even found texts on 
C++-specific issues with OpenMP but found that Eigen was already doing all 
what they recommended to.

So:

Unless some of you manages to implement OpenMP support in a way that actually 
gives benefits with assignments, cwise xprs, redux and visitor, I don't think 
that we should bother about OpenMP.

Getting a benefit from OpenMP in a particular algorithm such as matrix product 
is easier, but not interesting since again that'll never beat a good 
BLAS/LAPACK backend.

Cheers,

Benoit

Attachment: signature.asc
Description: This is a digitally signed message part.



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/