This week, I tried to use OpenMC to run in distributed-memory parallelism by following the User’s Guide on running in parallel. However, it was never successful. I also searched for some solutions online, but they were unable to solve my problem. I will also ask someone who has been succeed before about the issues I encounter. However, he was also unable to provide a specific answer. Therefore, I would like to ask if there is a detailed solution starting from scratch that can teach me how to run distributed memory on the Ubuntu system. The following image shows the error prompt I encountered while running. I wanted to parallelize three computers, but there were more than one error.
Apologies if I’m misunderstanding your question, but it appears that the error is due to a missing OpenMC cross-section configuration. Based on the output of openmc -v, it seems the library was compiled correctly for distributed memory parallelism.
The instructions for configuring OpenMC’s nuclear data can be found here:
https://docs.openmc.org/en/v0.12.2/usersguide/cross_sections.html
Sorry, I forgot to mention this in my previous question. My cross-section configuration is normal. Because it is normal for each computer to run openmc separately, but this error will appear when I use mpirun. I also carefully checked the settings of the environment variables and set the path of the cross-section to be the same on each host. This is also the reason why I feel confused.
Thanks for the updated information. To further diagnose the problem and assist, I have a few questions.
On rereading your original post, I keyed into this sentence:
Can you elaborate on what you mean by “three computers”? Do you mean you’d like to spread the simulation across three different machines?
Good! I’m glad we can rule that out. Going forward can you please use that configuration in your environment when providing screenshots of OpenMC’s output so others can rule that out as a problem if they read the thread too?
Lastly, I wanted to clarify about MPI processes and threads. The number of threads reported in the OpenMC header is the number of threads per MPI process, meaning that in the output above OpenMC is going to try to run 12 MPI processes with 12 OpenMP threads each resulting in 144 total kernels running at the same time. I want to make sure that’s what is intended here because if the machine shown here has 12 cores then we’re oversubscribing resources on the machine.
Thank you for your reply.
Let me explain my basic situation. As a student who is just starting to learn OpenMC, I want to make the calculation examples I usually use for testing run faster. My mates and I have three computers loaded with the Ubuntu system in the laboratory. So I wanted to share computing power among these three computers through the MPI parallel method described on the official website. As you can see, they are Master, Slavel, and Weishao Linux, where Master is my commonly used host.
That’s what I mean “I wanted to parallelize three computers, but there were more than one error.”
As for this question. When the error in the screenshot occurred, I immediately entered “python3 cal. py” without moirun on each computer to check why prompt that no cross-section.xml, but as I mentioned last time, it was normal to run on each computer.
This is also a very strange point, and my experienced friend also pointed out this issue. My three computers are all equipped with Intel i7 chips with 6 cores and 12 threads, so the MPI position should display 3. But as you said, it shows 12.When writing the python file I chose to use openmc. run() to avoid some unknown errors when setting up the process ranther than Openmc. run (mpi_args=['mpixec ‘,’ - n ‘,’ 3 ']) as in the tutorial. But the problem also arises. When I use Openmc. run (mpi_args=['mpixec ‘,’ - n ‘,’ 3 ']), it not work yet.
Finally, thank you very much for your professional and patient reply.




