PyTao is Python interface for Tao, which is based on the Bmad subroutine library for relativistic charged–particle and X-ray simulations in accelerators and storage rings.
This was a proof-of-concept for running Tao (ctypes + shared library) in a subprocess and efficiently transmitting the data back to the parent process. If implemented properly, this should be seamless when compared to a regular Tao object and with (hopefully) little performance impact.
Why?
It shields the Python process using Tao from crashes/segmentation faults
It allows for efficient usage of multiprocessing so that many simulations can be run in parallel
TODO
I'll request a review if/after:
If this ends up working well enough in our testing
After we get #75 merged and include the same type of test suite checks
And finally, after I clean it up, add some docstrings
Description
This was a proof-of-concept for running Tao (ctypes + shared library) in a subprocess and efficiently transmitting the data back to the parent process. If implemented properly, this should be seamless when compared to a regular
Tao
object and with (hopefully) little performance impact.Why?
Tao
from crashes/segmentation faultsTODO
I'll request a review if/after:
(Any feedback is welcome of course)