...
Table of Contents
Table of Contents |
---|
Profilers
I use two profilers:
cProfile - https://docs.python.org/3/library/profile.html
line-profiler - https://pypi.org/project/line-profiler/
3. requirements
python 33.10 10: module load itm-python/3.10
line-profiler profiler : ta pip install line-profiler
gprof2dot:
pip install gprof2dot
4. How to run?
- prepare a standard launch
- Copy
python
folder from/gss_efgw_work/work/g2fjc/jintrac/v220922/python
to some location onpfs
for example:/pfs/work/g2pbloch/python
- Change
JINTRAC_PYTHON_DIR
in rjettov (430 line) to python folder on pfs from step 2 - Change
run_python_driver (line 49)
in/pfs/work/g2pbloch/python
: - cProfile :
mpirun --allow-run-as-root -np $NPROC python -u -m cProfile -o jintrac.prof /pfs/work/g2pbloch/jetto_profiler/jintrac_imas_driver.py mpi
- line-profiler :
mpirun --allow-run-as-root -np $NPROC python -u -m kernprof -l /pfs/work/g2pbloch/jetto_profiler/jintrac_imas_driver.py mpi
When we use line-profiler we must add wrapper to profiling function. In this case we should add
@profile
upperjintrac_imas_driver
function injintrac_imas_driver.py
:Code Block language py title function wrapper @profile def jintrac_imas_driver(params, components, mpi='no'): """JINTRAC-IMAS generic workflow driver."""
- Run
./rjettov -S -I -p -x64 test v220922 g2fjc
...