|Re: [eigen] OpenMP support in the default branch|
[ Thread Index |
| More lists.tuxfamily.org/eigen Archives
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [eigen] OpenMP support in the default branch
- From: Benoit Jacob <jacob.benoit.1@xxxxxxxxx>
- Date: Fri, 5 Mar 2010 09:41:39 -0500
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:content-type :content-transfer-encoding; bh=tOe1DQ5L9Jc3AcxBlvbI35DI5y+knl80g/p3m8F+AHE=; b=vyu9WOph+2jQ+MevNiKX7wX5yHobkyisjWrolcQkfBTmroY+In2tEHntFVPq51nVBg VqMDB6sAPw398TIhuOiovoF0cczH9GkWEbJLLJ9vgPG25Fl9ZCaRkK4ImEkqlibr7j93 ZXRSpNXTSXoWc7jzYFkKYUtoiSMYUiiaQOSBU=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; b=WQYu9JxnCX2wLgyPjN6cSHu1mp2iXYJvkhYWevM5LLwW1MWjJAkDB5SQKeNU0zViFp o7GQESt3AzeYxxheLyl9YfWIoqh4c3u1TSof1MlEGG01KU9rGG/gkcIauYeL7sB8TI10 gOW2zelu5AJrTGFd77nWmdx88La4mTM/nQJN8=
Wow, fantastic work..!
2010/3/5 Gael Guennebaud <gael.guennebaud@xxxxxxxxx>:
> 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.