Element by element operation and multicore.

Jaroslav Hajek highegg at gmail.com
Fri Oct 17 13:52:32 CDT 2008


On Tue, Oct 14, 2008 at 12:45 PM, Marcin M Kostur
<marcinofulus at gmail.com> wrote:
>
> Dear Octavers,
>
> I have just compiled octave with intel math mkl library. In most od
> operations which use
> BLAS/LAPACK the speedup on 8-way xeon is immense (from 3x (eig) up to 20x).
>   BTW ./configure line is, as usually, magic to be guessed.
>
> Anyways, there is a bunch of operations which are unaffected like element by
> element A.*A , sin(A) etc.
> (well they are not BLAS bases)
>
> My questions are:
>
> 1) How do i know which operator/function uses which library. A*A uses mkl
> blas for sure A.*A not, but
> is the a list od implementation scheme? If not - i would apreciate tip how
> to find it in the source.
>
> 2) A.*A, sin(A) could perfectly use multicore archiutectude. All calls are
> independent.
> Is anybody working on this, or maybe it is done but requires some
> compiie-time flags i forgot?
>
>


Currently, no computations in Octave are done in parallel, except of
course the possibility of parallel BLAS/LAPACK. One problem is that
Octave's internals are not particularly thread safe - (many parts
would be significantly harder to use if they were). Especially error
handling is problematic in this respect.
Another problem is the choice of tools. Would using OpenMP be OK, or
should we better use pthreads, or something else?
With some effort, we could parellize things like built-in mappers.
Allowing m-functions to run in parallel is a completely different
story - significant modifications to symbol table would probably be
needed.

I think parallelization is a good candidate to get funding on. It sounds sexy :)

-- 
RNDr. Jaroslav Hajek
computing expert
Aeronautical Research and Test Institute (VZLU)
Prague, Czech Republic
url: www.highegg.matfyz.cz


More information about the Help-octave mailing list