[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