|Re: [eigen] Parallelizable operations|
[ Thread Index |
| More lists.tuxfamily.org/eigen Archives
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [eigen] Parallelizable operations
- From: Carlos Becker <carlosbecker@xxxxxxxxx>
- Date: Thu, 29 Jul 2010 13:13:34 +0100
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:in-reply-to :references:date:message-id:subject:from:to:content-type; bh=Md/PP42wbyr48Wyl8XEmTQZ1Q52UBi2QG5jkJwqKMDQ=; b=mcFR9XQsWHX4v4b7t9HN5SvgY/wPauvoRDdsakWl+G+K2hlSst6kb4q1LoEYlRAmNA etx06u8GquNLrnvV54+4oi4Paks6y/hhworfGxzV/uToVh4VNHjk50si9JfcJzJAQA7T k3xxB7ixZM+F+N8cMbdDoHEXD43ydgpdEYPbI=
- 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; b=Am117oQ1f2SPnMXWh51SdJ3qzuEBBBsmw+PICNtpYee9T5tK3rzFWsf2qgzgnaUnrP qnSAuPMGeF80xscBsEOZIq09iZomuyj2WqMfIJfLWdfOen5jyNL7UlX9w3QfKNWxkNAa H2HByqWwfig3HGs+fIPNjUvpLuHeSBNyRvo8A=
Thanks for the info. Wouldn't it make sense to parallellize sums or other simple operations when matrices are big enough? I know that the problem would be to determine what is big enough.
But maybe a new parameter could be included to force parallelism between two instances of DenseBase<> for instance. I am being quite naive with this proposal, but I guess it could be great for some applications if multiprocessing is available. What do you think? would this at least be possible and not too complicated to implement with the current API?
On Wed, Jul 28, 2010 at 3:36 PM, Benoit Jacob <jacob.benoit.1@xxxxxxxxx>
2010/7/28 Carlos Becker <carlosbecker@xxxxxxxxx>:
> Hi everyone, I was just wondering: which are the parallelizable operationsYes, that is all what's currently parallelized. However, do note that
> with Eigen? I mean, if I enable openMP and EIGEN_DONT_PARALLELIZE is not
> defined, which operations would get parallelized? According to what I see in
> the source code it is mostly dedicated to products.
products are where blocking (aka "level 3 implemented") decompositions
spend most of their time, so this benefits already a large part of the
decompositions. In the future, we'll parallelize more and more stuff,
i.e. my new divide-and-conquer SVD is going to be fully
I can't give a general answer to that question, it depends too much on
> I am asking this because
> I am now choosing between parallelizing some code myself or letting Eigen do
> it. I guess that using EIGEN_DONT_PARALLELIZE would allow me to parallelize
> larger blocks and, knowin what I am doing, I suppose I can get better
> performance, specially when the operations are not purely products.