Apr-22-2022, 09:50 AM
Hi all
For my projecy my current code does the job as expected so far, using massively Numpy and the vectorization whenever possible, using about 2 dozens of functions mainly to deal with data and to perform I/O works; the structure is purely sequential.
In some cases, and not necessarily for pure calculations, loops have been used (for I/O typically).
Now, I want the improve performances; I knew about Numba, but even if I’ve ever noticed huge gains on my computer (10x faster), pure calculations are not longest steps.
Multiprocessing is probably one on the solution I would have to dig into (a new field for me) ; even if loops call for functions, I guess I probably have to adapt the structure of my code for multiprocessing.
Of course I had a look on internet, but there’s a lot of docs, methods (process, map, startmap, sync or async, etc), and often tutos and snippets that do not work (goods and bads)
So does somebody can advice me in a good doc (ideally written for newbies with really few skills in parallelization topic) that explain pro and cons of each method, and how to implemented it (at the loop level)
Thanks
Paul
(providing code does not make sens at this stage, it's purely informative; it'll come at the next stage for sure )
For my projecy my current code does the job as expected so far, using massively Numpy and the vectorization whenever possible, using about 2 dozens of functions mainly to deal with data and to perform I/O works; the structure is purely sequential.
In some cases, and not necessarily for pure calculations, loops have been used (for I/O typically).
Now, I want the improve performances; I knew about Numba, but even if I’ve ever noticed huge gains on my computer (10x faster), pure calculations are not longest steps.
Multiprocessing is probably one on the solution I would have to dig into (a new field for me) ; even if loops call for functions, I guess I probably have to adapt the structure of my code for multiprocessing.
Of course I had a look on internet, but there’s a lot of docs, methods (process, map, startmap, sync or async, etc), and often tutos and snippets that do not work (goods and bads)
So does somebody can advice me in a good doc (ideally written for newbies with really few skills in parallelization topic) that explain pro and cons of each method, and how to implemented it (at the loop level)
Thanks
Paul
(providing code does not make sens at this stage, it's purely informative; it'll come at the next stage for sure )