enable loop parallelism in NL_Function_Eval - #13
Conversation
Loop calculating contributions from 2nd order derivatives and gravity had a scatter pattern that prevented parallelism. This is changed by: 1. storing the temporary values (u_right, u_front, u_upper) 2. Splitting scatter portion into a second loop below 3. reversing the accesses to perform a gather instead of a scatter
|
I can assert that in the regular LW test case (72hr sim with outputs every 3 simulated hrs) that the difference between the baseline case (from master at commit 1de045b) compared to this branch (commit f2f7d68) in the output pressures is less than 6.5e-11 for all output time-steps, and in the output saturation is less than 1.6e-14 for all output time-steps. |
|
Whole program run times (in seconds ± 1 standard deviation) for baseline and 511_split_loop in the regular LW test case (72hr sim with outputs every 3 simulated hrs)
Easy to see the 2.1638 second slowdown in the split-loop case. |
In progress to #11
Current progress: