I have a toxicology model with 6 patients. For each patient I have data from 2 experiments (for a total of 12 experiments), and in the model we solve 1 ODE per experiment.
I’d like to use reduce_sum, which has the following signature:
real reduce_sum (F f, T x, int grainsize, T1 s1, T2 s2, ...);
Ideally I’d try to solve all 12 ODEs in parallel. I have an array
theta that stores the parameters for each patients, plus some other similar variables. The way I see it I have a few options:
- I use
xto index which patient we’re solving for and I pass to partial_sum all the variables (i.e. theta stays fixed accross calls to partial_sum)
- I pass patient specific parameters through
xand solve all 6 pairs of ODEs in parallel.
- Somehow, I pass the patient specific parameters through
xand the index indicating which experiment corresponds to each patient, and solve all 12 ODEs in parallel.
The first approach is the most straightforward and a direct translation of the for loop I currently have. But I’m concerned about passing all the parameters to each partial_sum call and wonder if this impacts autodiff performance.