[ADOL-C] using adolc with openmp
Ian Washington
washinid at mcmaster.ca
Wed Mar 19 15:30:36 EDT 2014
Thanks Andrea,
Correct, I would need to create independent tapes of the same function
on one thread and, using a shared memory environment via openmp, select
the corresponding tape tag for the particular thread evaluating the
derivatives.
This now seems straightforward using shared memory, but what about in a
distributed memory situation via MPI? As you mention below, I guess this
is not possible yet to communicate the tape to different processes, and
thus I would need to re-tape the function for each process.
My actual application is a nonlinear program (NLP) which requires
independent DAE solves (solved in parallel) to evaluate the NLP
constraints. So, in the re-taping approach for each process, I would be
re-generating the tape for each constraint evaluation of the NLP
iterates over each processor (to get the Jacobian of the DAE system used
in a BDF algorithm). This seems very inefficient, particular for a large
DAE models on the order of 1000 equations and a large number of NLP
iterates.
Possibly the tapeless forward AD tools of ADOLC are better suited to my
application; however, I need to generate sparse Jacobian matrices and it
is unclear from documentation how to do this. It seems only dense
derivatives via the tapeless forward mode are possible?
Regards,
Ian.
On 03/19/2014 03:15 AM, Andrea Walther wrote:
> Hi Ian,
>
>> Is it possible to only trace the function on one thread and then
>> simultaneously evaluate the derivatives (at different values) using
>> multiple threads?
>
> so far, it is not possible to create the tape only on thread and
> to distribute it subsequently.
>
> However, what does work is the following scenario:
>
> You create the tape one each threat like in the example libprpar.cpp
> in the examples directory of ADOL-C.
>
> Subsequently you can then change the values of the variables on each
> thread to evaluate the different instances of your problem.
>
> Hope this helps.
>
> Best regards
>
> Andrea
>
More information about the ADOL-C
mailing list