[eigen] OpenMP support in the default branch

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



Hi,

The SMP branch has been merged in the default one. Here is a short summary of what is new and how to use it:

- improved matrix products, even for non SMP code.

- to enable SMP support, simply enable openmp with your compiler (-fopenmp for gcc, -openmp for ICC, etc.)

- currently you can control it via the openmp API:
  e.g., omp_set_num_threads(1) to disable it at runtime
 In the future we should add our own API.

- to enable it in the unit tests there is a EIGEN_TEST_OPENMP option (currently only for gcc since I don't know what is the option for MSVC)

- only the general matrix-matrix product is parallelized, not the triangular or selfadjoint variants...

- ..but since partial pivoting LU is heavily based on general matrix-matrix products, solving large linear problems using PartialPivLu is already significantly boosted :) So I guess ~70% of use cases are already covered.

- if the user code is already parallelized using OpenMP, then eigen won't try to parallelize inside an openmp parallel session.

That's all for now.

gael


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