Performance tests
Created by: liangjg
Following the performance test in #1171 and #1114, I performed a more thorough tests with following simulation configurations:
- OpenMC versions:
- Compilers:
- GCC (6.2.0)
- Intel (18.0.1)
- Machine:
- Intel(R) Xeon(R) CPU E5-2683 v4 @ 2.10GHz, 2x16 cpus
- Parallelization:
- serial
- mpi-8 processes
- openmp-8 threads
- Model:
- pwr pin cell ("openmc/examples/xml/pincell"), 5 bacthes x 40k neutrons/batch
- Tallies:
- none
- mesh 10x10, 3-group reactions rates
- mesh 100x100, 3-group reaction rates
Here are the results:

- if no tally is calculated, develop branch is as good as master, intel is as good as gcc, openmp is as good as mpi.
- however, for cases with tally to be calculated,
- develop branch is worse than master: 100x100 mesh tallies make develop version 10+ slower than w/o tally, this ratio is ~4 for master version; this is even worse when using multi-thread and compiled with Intel;
- OpenMP efficiency is worse than MPI: for develop branch, multi-threading is 2+ times slower than multi-processing, this is even worse for Intel compiler.
- Intel is worse than GCC: Intel is 1.3x slower than GCC for serial and MPI running; it has the worst efficiency when multi-threading is adopted (only for with-tally cases).