Open neapel opened 11 years ago
This looks like a very good enhancement of odeints algebras and operations. Where can I see the code? I have looked a bit around but I could not find it.
Btw. should we pack this in a separate branch? Just in case we merge this very soon in odeint's master it might be good to do this separately from the OpenMP and MPI stuff.
On 06/14/2013 11:55 PM, neapel wrote:
I made a |BOOST_ODEINT_GEN_FOR_EACH| macro to generate the |for_eachN| functions for the algebra since it turned out to be quite error-prone and tedious to manually write them (and there will be changes I don't want to have to copy manually). The downside is that these don't work in C++03 with |#pragma omp| since there's no |_Pragma| yet, so they will eventually have to be unrolled again. But the macros might be useful for the other algebras/operations? Currently not all of them support all sizes, the helper macros allow easily setting a maximum size to generate…
— Reply to this email directly or view it on GitHub https://github.com/BoostGSoC/odeint-v2/issues/6#issuecomment-19483808.
The macros are in n_ary_helper.hpp, but I'll split the commits and I put the macros into boost/numeric/odeint/util/
in master
and branch openmp
from there
I think we should add schedule( runtime )
to the omp pragmas in the algebra. then the user can configure the scheduling with omp_set_schedule
in the beginning of his program.
On 15.06.2013 16:01, neapel wrote:
The macros are in n_ary_helper.hpp https://github.com/BoostGSoC/odeint-v2/blob/1725e45ac5a41b14ae0e43902e6a091beebfd095/boost/numeric/odeint/external/openmp/n_ary_helper.hpp, but I'll split the commits and I put the macros into |boost/numeric/odeint/util/| in |master| and branch |openmp| from there
Maybe it is better to put it into algebra/detail. Unfortunately, there is no clear definition what should be in utils, but I think the n_ary_helpers will only be used from the algebras.
— Reply to this email directly or view it on GitHub https://github.com/BoostGSoC/odeint-v2/issues/6#issuecomment-19496866.
I made a
BOOST_ODEINT_GEN_FOR_EACH
macro to generate thefor_eachN
functions for the algebra since it turned out to be quite error-prone and tedious to manually write them (and there will be changes I don't want to have to copy manually). The downside is that these don't work in C++03 with#pragma omp
since there's no_Pragma
yet, so they will eventually have to be unrolled again. But the macros might be useful for the other algebras/operations? Currently not all of them support all sizes, the helper macros allow easily setting a maximum size to generate…