J
John
I have a member function in a class that is
metaprogrammed like the following
dinsert<D>::eval(M);
This in turn unrolls itself to (at compile time, D is a fixed constant)
dinsert<D>::eval(M);
dinsert<D-1>::eval(M);
dinsert<D-2>::eval(M);
....
....
dinsert<0>::eval(M);
These functions are all independent and I would
like them to run on different threads. I tried
using openMP but unfortunately, icc (intel's compiler
slows it down with threads). I would like to try
pthreads. Any ideas on how to parallelize it without
creating too much mess? (Like embedding M into a void * etc,
and the whole thing into a function..??!@#!@#)
Thanks,
--j
metaprogrammed like the following
dinsert<D>::eval(M);
This in turn unrolls itself to (at compile time, D is a fixed constant)
dinsert<D>::eval(M);
dinsert<D-1>::eval(M);
dinsert<D-2>::eval(M);
....
....
dinsert<0>::eval(M);
These functions are all independent and I would
like them to run on different threads. I tried
using openMP but unfortunately, icc (intel's compiler
slows it down with threads). I would like to try
pthreads. Any ideas on how to parallelize it without
creating too much mess? (Like embedding M into a void * etc,
and the whole thing into a function..??!@#!@#)
Thanks,
--j