jam31118 / rigged-qprop

qprop equipped with small toolset
4 stars 2 forks source link

Parallelization of post-propagation #1

Open jam31118 opened 6 years ago

jam31118 commented 6 years ago

When the laser is off, each equations for each basis are decoupled. The calculation for these equations may easily distributed to multiple processes. Let's see the inside of wavefunction.propagate() method and figure out how to implement parallelization.

TODO

jam31118 commented 6 years ago

Although the t-SURFF method is quite efficient algorithm to obtain photoelectron momentum distribution, it sometimes requires long post-propagation to get low-momentum part of the distribution. Often, the post-propagation time is comparable or bigger than the pulse duration, which makes even WINOP method become feasible.

However, post-propagation can take advantage of the decoupled equations, which is highly parallizable compared to coupled case. This can enhance the computing time a lot, especially for the case where the post-propagation time is comparable to pulse duration.

Thus, following routine is suggested:

propagation during pulse duration - with high-speed single core post-propagation - with multiple cores

jam31118 commented 6 years ago

Idea

Consider implementing this post-propagation routine as a separate function, because:

TO DO

jam31118 commented 6 years ago

Implementing this routine in python with some C (possibly and hopefully also with CUDA) extension may be a one option. Let's check the calculation time for single core for both qprop (thus, pure C++) and this python routine. Compare this single core times with the CPU-parallelized (and possibly also with GPU) routine.

The Python seems actually be nice considering that the rigged-qprop has python wrapper already so that this can easily be the extension of the wrapper and more importantly, user can use it within one programming langauge, python, without consulting for other language.

jam31118 commented 6 years ago
jam31118 commented 6 years ago

TODO

jam31118 commented 6 years ago

Development Road-map

jam31118 commented 5 years ago

Implemented the first working PPP at 4644c99731dc0fe86c82750edc5500f89bbcfe26