Questions about running simulation and depletion in parrellel using python script.

Hi all,

I had run OpenMC using 2 computers, a local computer with AMD Ryzen 9 3900X (12 cores, 24 threads) and a remote virtual machine with Intel® Xeon® Silver 4114 (16 cores, 16 threads). The implemention of MPI is OpenMPI. It took 50 seconds for a simple bundle assembly.

The command line I used is “mpirun -use-hwthread-cpus --map-by slot:PE=8 --hostfile /home/yuejin/Cloud/mpi_config_file openmc”.

In the host file, number of slots of local node and remote node are 3 and 2 respectively.

If I run OpenMC on local computer alone with 1 MPI process * 24 OpenMP threads, total time elapsed is 80 s. So the timings are resonable.

I’m new to MPI. I wonder if there is a better way to write my command line? Is there anything that I missed in arguments which can affect the performance? Maybe there is a way to set (1 MPI * 24 threads + 1 MPI * 16 threads) instead of (3+2)MPI*8 threads that I set? Which one is better?

Secondly, I didn’t find how to add MPI arguments in openmc.depletion.Integrator. Can anyone show me an example how to run depletion in parrellel using two computers?

Regards,

Yue.

I tried “mpirun -use-hwthread-cpus --map-by slot:PE=8 --hostfile /home/yuejin/Cloud/mpi_config_file python3 build.py”. But it raised an error: ‘No material exists with ID=5.’

Here are the python script and output file.

在2020年7月31日星期五 UTC+8 下午5:37:38 写道:

output.txt (16.9 KB)

build.py (6.23 KB)

I found that even using one computer can cause the same problem. The more cores I use, the greater the probability of an error. For example, if I try “mpirun -np 12 python3 build.py” 10 times, it may raise error 8 or 9 times. If I use “mpirun -np 10 python3 build.py” 10 times, it may raise this error 4 or 5 times.

在2020年8月3日星期一 UTC+8 上午10:52:02 写道:

Finally, I solved this issue by removing all the “export_to_xml” in the python script. Xml exported by a process will overwrite the modified depletion material xml generated by another process.
However, I still have some concerns.

  1. In the following output during initialization:
    — Reading c_H_in_H2O from
    — /home/yuejin/Cloud/nuclear_data_libraries/endfb71_hdf5/c_H_in_H2O.h5
    — Minimum neutron data temperature: 900.000000 K
    — Maximum neutron data temperature: 600.000000 K

Why Minimum neutron data temperature is higher than the maximum?

  1. Some warnings appear in output of each statepoint

/usr/local/lib/python3.8/dist-packages/openmc/mixin.py:68: IDWarning: Another Filter instance already exists with id=2.
warn(msg, IDWarning)
/usr/local/lib/python3.8/dist-packages/openmc/mixin.py:68: IDWarning: Another Filter instance already exists with id=6.
warn(msg, IDWarning)
/usr/local/lib/python3.8/dist-packages/openmc/mixin.py:68: IDWarning: Another Filter instance already exists with id=3.
warn(msg, IDWarning)

Is it because I set too many crossection tallies? Will these confrontations affect the final results?

在2020年8月3日星期一 UTC+8 下午1:02:05 写道: