|Re: [eigen] FLENS C++ expression template Library has excellent documentation|
[ Thread Index |
| More lists.tuxfamily.org/eigen Archives
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [eigen] FLENS C++ expression template Library has excellent documentation
- From: Rohit Garg <rpg.314@xxxxxxxxx>
- Date: Sat, 18 Apr 2009 12:54:56 +0530
- 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=wf0cSqet+QlmAGG13QvcmXccpq7VoLlQTGqf5P+/gzw=; b=gH4GtKZR2BFG9+Zz9WxrD5x6k5hct+y58z0sYPEWYowwZQWy1EpXvCGUDRARw3j0ov RLb2d9SJZrXK5EG0Pda1SONw1pFTz/klQEIj354N8w65KCGYAFlU7J8TSqm38B+mdx6h CwDZzglumQ7m0EFx8Tl7XMGHT7pOVkBIILuM4=
- 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=blBWK8hsdH5hKRLD0mtUT7SwYxScioSGRTr1vB4sBJmFViDexIEHlR/VwHBoKw5Sz8 H+rGNDn4YG/0iwbC1PxeBCPvuTOtLSeoZjKBH8Qfb2Mzl+fX5629Jx1qinyg/cKSAdwD qq3WukJ2V4UhPWE692e0It+ba9f8iyykhp9Gg=
>> I was thinking of something like -DEIGEN_PARALLEL 4 (ie opt in
>> parallelization) at compile time to launch that many threads at
>> compile time. BLAS 1 should be trivial to parallelize and BLAS2
>> shouldn't be too difficult either.
> unfortunately no, the problem is that we need to be able to control
> that per expression, and we ave to come up with a good API for
> that.Since eigen is a pure template library we cannot have global
> states for that.
I see. Since the compiler is generating a lot of code for us, we need
to parallelize the = assignment operator as it is the one that does
all the actual calculations. I don't want to have global state either.
May be an eigen_parallel macro which just does omp_set_procs(). So all
the functions which are parallel are automatically parallelized w/o
user bothering about it. And it can be done per expression. Since
changing it per expression is kinda corner case, may be this is a good
starting point, atleast for discussing what kind of API we want.
> actually we have already experimented wit openMP, have a look at the
> file disabled/EvalOMP.h
Curious, why was it disabled?
Department of Physics
Indian Institute of Technology