The serial program and the parallel program running time is like the attachment,the parallel total time is less than the serial total time ,but the amplifier shows Parallel module run more time than the serial module ,for example,in the serial program,the second spend time module is propagate::reflect_particles is consume 318.938s,but the parallel the same module reflect_part consume 527.269.Why appear this? What the time show in the amplifier in the parallel program?
you need to run locks&waits activity on your application.
It looks you have memory contention in reflect_part (i.e. accessing many times to the same array/data structure in parallel)