Help is available by moving the cursor above any
symbol or by checking MAQAO website.
| Metric | r0 | r1 | r2 | |
|---|---|---|---|---|
| Total Time (s) | 71.59 | 56.58 | 77.05 | |
| Profiled Time (s) | 69.15 | 54.65 | 73.14 | |
| Time in analyzed loops (%) | 59.4 | 63.4 | 59.9 | |
| Time in analyzed innermost loops (%) | 42.1 | 52.8 | 43.5 | |
| Time in user code (%) | 60.8 | 67.2 | 60.7 | |
| Compilation Options Score (%) | 75.0 | 98.3 | 97.9 | |
| Perfect Flow Complexity | 1.01 | 1.01 | 1.01 | |
| Array Access Efficiency (%) | 56.2 | 61.5 | 44.5 | |
| GFLOPS | 648.572 | 847.814 | 586.647 | |
| Perfect OpenMP + MPI + Pthread | 1.23 | 1.18 | 1.38 | |
| Perfect OpenMP + MPI + Pthread + Perfect Load Distribution | 1.56 | 1.42 | 1.56 | |
| No Scalar Integer | Potential Speedup | 1.08 | 1.06 | 1.09 |
| Nb Loops to get 80% | 12 | 13 | 8 | |
| FP Vectorised | Potential Speedup | 1.07 | 1.03 | 1.04 |
| Nb Loops to get 80% | 8 | 9 | 8 | |
| Fully Vectorised | Potential Speedup | 1.29 | 1.24 | 1.21 |
| Nb Loops to get 80% | 24 | 24 | 22 | |
| Only FP Arithmetic | Potential Speedup | 1.26 | 1.26 | 1.36 |
| Nb Loops to get 80% | 28 | 29 | 21 | |
| OpenMP perfectly balanced | Potential Speedup | Not Available | 1.16 | 1.32 |
| Nb Loops to get 80% | Not Available | 9 | 9 | |
| Source Object | Issue |
|---|---|
| ▼gmx_mpi | |
| ▼ | |
| ○ | -g is missing for some functions (possibly ones added by the compiler), it is needed to have more accurate reports. Other recommended flags are: -O2/-O3, -march=(target) |
| ▼libgromacs_mpi.so.7 | |
| ▼fft5d.cpp | |
| ○ | -march=x86-64 is used but it should be replaced by a more architecture specific option or -march=native. |
| ▼pairlist_simd_2xmm.h | |
| ○ | -march=x86-64 is used but it should be replaced by a more architecture specific option or -march=native. |
| ▼threaded_force_buffer.cpp | |
| ○ | -march=x86-64 is used but it should be replaced by a more architecture specific option or -march=native. |
| ▼pme_gather.cpp | |
| ○ | -march=x86-64 is used but it should be replaced by a more architecture specific option or -march=native. |
| ▼listed_forces.cpp | |
| ○ | -march=x86-64 is used but it should be replaced by a more architecture specific option or -march=native. |
| ▼kernel_outer.h | |
| ○ | -march=x86-64 is used but it should be replaced by a more architecture specific option or -march=native. |
| ▼kernel_ElecEw_VdwLJCombLB_VF.cpp | |
| ○ | -march=x86-64 is used but it should be replaced by a more architecture specific option or -march=native. |
| ▼kernel_prune.cpp | |
| ○ | -march=x86-64 is used but it should be replaced by a more architecture specific option or -march=native. |
| ▼pairs.cpp | |
| ○ | -march=x86-64 is used but it should be replaced by a more architecture specific option or -march=native. |
| ▼pairlist.cpp | |
| ○ | -march=x86-64 is used but it should be replaced by a more architecture specific option or -march=native. |
| ▼update.cpp | |
| ○ | -march=x86-64 is used but it should be replaced by a more architecture specific option or -march=native. |
| ▼md_support.cpp | |
| ○ | -march=x86-64 is used but it should be replaced by a more architecture specific option or -march=native. |
| ▼pme.cpp | |
| ○ | -march=x86-64 is used but it should be replaced by a more architecture specific option or -march=native. |
| ▼kernel_common.cpp | |
| ○ | -march=x86-64 is used but it should be replaced by a more architecture specific option or -march=native. |
| ▼mdatoms.cpp | |
| ○ | -march=x86-64 is used but it should be replaced by a more architecture specific option or -march=native. |
| ▼lincs.cpp | |
| ○ | -march=x86-64 is used but it should be replaced by a more architecture specific option or -march=native. |
| ▼pbc.cpp | |
| ○ | -march=x86-64 is used but it should be replaced by a more architecture specific option or -march=native. |
| ▼constr.cpp | |
| ○ | -march=x86-64 is used but it should be replaced by a more architecture specific option or -march=native. |
| ▼atomdata.cpp | |
| ○ | -march=x86-64 is used but it should be replaced by a more architecture specific option or -march=native. |
| ▼localtopology.cpp | |
| ○ | -march=x86-64 is used but it should be replaced by a more architecture specific option or -march=native. |
| ▼kerneldispatch.cpp | |
| ○ | -march=x86-64 is used but it should be replaced by a more architecture specific option or -march=native. |
| ▼pme_solve.cpp | |
| ○ | -march=x86-64 is used but it should be replaced by a more architecture specific option or -march=native. |
| ▼pme_spread.cpp | |
| ○ | -march=x86-64 is used but it should be replaced by a more architecture specific option or -march=native. |
| ▼calc_verletbuf.cpp | |
| ○ | -march=x86-64 is used but it should be replaced by a more architecture specific option or -march=native. |
| ▼fft_fftw3.cpp | |
| ○ | -march=x86-64 is used but it should be replaced by a more architecture specific option or -march=native. |
| ▼settle.cpp | |
| ○ | -march=x86-64 is used but it should be replaced by a more architecture specific option or -march=native. |
| ▼bonded.cpp | |
| ○ | -march=x86-64 is used but it should be replaced by a more architecture specific option or -march=native. |
| ▼vector.tcc | |
| ○ | -march=x86-64 is used but it should be replaced by a more architecture specific option or -march=native. |
| ▼sim_util.cpp | |
| ○ | -march=x86-64 is used but it should be replaced by a more architecture specific option or -march=native. |
| ▼grid.cpp | |
| ○ | -march=x86-64 is used but it should be replaced by a more architecture specific option or -march=native. |
| ▼vec.h | |
| ○ | -march=x86-64 is used but it should be replaced by a more architecture specific option or -march=native. |
| ▼arrayref.h | |
| ○ | -march=x86-64 is used but it should be replaced by a more architecture specific option or -march=native. |
| ▼domdec_constraints.cpp | |
| ○ | -march=x86-64 is used but it should be replaced by a more architecture specific option or -march=native. |
| ▼partition.cpp | |
| ○ | -march=x86-64 is used but it should be replaced by a more architecture specific option or -march=native. |
| ▼manage_threading.cpp | |
| ○ | -march=x86-64 is used but it should be replaced by a more architecture specific option or -march=native. |
| ▼pme_grid.cpp | |
| ○ | -march=x86-64 is used but it should be replaced by a more architecture specific option or -march=native. |
| r0 | r1 | r2 | |
|---|---|---|---|
| Application | /home/eoseret/GROMACS/install/gplusplus/bin/gmx_mpi | /home/eoseret/GROMACS/build/icc/bin/gmx_mpi | /home/eoseret/GROMACS/install/icx/bin/gmx_mpi |
| Timestamp | 2023-07-28 11:50:56 | 2023-07-28 09:05:18 | 2023-07-28 09:43:52 |
| Experiment Type | MPI; OpenMP; | same as r0 | same as r0 |
| Machine | skylake | same as r0 | same as r0 |
| Architecture | x86_64 | same as r0 | same as r0 |
| Micro Architecture | SKYLAKE | same as r0 | same as r0 |
| Model Name | Intel(R) Xeon(R) Platinum 8170 CPU @ 2.10GHz | same as r0 | same as r0 |
| Cache Size | 36608 KB | same as r0 | same as r0 |
| Number of Cores | 26 | same as r0 | same as r0 |
| Maximal Frequency | 2.1 GHz | same as r0 | same as r0 |
| OS Version | Linux 6.4.1-arch2-1 #1 SMP PREEMPT_DYNAMIC Tue, 04 Jul 2023 08:39:40 +0000 | same as r0 | same as r0 |
| Architecture used during static analysis | x86_64 | same as r0 | same as r0 |
| Micro Architecture used during static analysis | SKYLAKE | same as r0 | same as r0 |
| Compilation Options | libgromacs_mpi.so.7: GNU C++17 13.1.1 20230429 -mavx512f -mfma -mavx512vl -mavx512dq -mavx512bw -mtune=generic -march=x86-64 -g -O2 -std=c++17 -fno-omit-frame-pointer -fcf-protection=none -fPIC -fexcess-precision=fast -funroll-all-loops -fopenmp gmx_mpi: N/A | gmx_mpi: libgromacs_mpi.so.7.0.0: Intel(R) C++ Intel(R) 64 Compiler Classic for applications running on Intel(R) 64, Version 2021.8.0 Build 20221119_000000 -I/home/eoseret/GROMACS/gromacs-2022.4/src/include -I/home/eoseret/GROMACS/build/icc/src/include -I/home/eoseret/GROMACS/gromacs-2022.4/src -I/home/eoseret/GROMACS/gromacs-2022.4/api/legacy/include -I/home/eoseret/GROMACS/build/icc/api/legacy/include -I/home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/analysisdata/include -I/home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/utility/include -I/home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/applied_forces/include -I/home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/commandline/include -I/home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/compat/include -I/home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/coordinateio/include -I/home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/correlationfunctions/include -I/home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/domdec/include -I/home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/essentialdynamics/include -I/home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/ewald/include -I/home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/fft/include -I/home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/fileio/include -I/home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/gmxana/include -I/home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/gmxlib/include -I/home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/gmxpreprocess/include -I/home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/gpu_utils/include -I/home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/hardware/include -I/home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/imd/include -I/home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/linearalgebra/include -I/home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/listed_forces/include -I/home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/math/include -I/home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/mdlib/include -I/home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/mdrun/include -I/home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/mdrunutility/include -I/home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/mdspan/include -I/home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/mdtypes/include -I/home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/mimic/include -I/home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/modularsimulator/include -I/home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/nbnxm/include -I/home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/onlinehelp/include -I/home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/options/include -I/home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/pbcutil/include -I/home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/pulling/include -I/home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/random/include -I/home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/restraint/include -I/home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/selection/include -I/home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/simd/include -I/home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/statistics/include -I/home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/swap/include -I/home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/tables/include -I/home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/taskassignment/include -I/home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/timing/include -I/home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/tools/include -I/home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/topology/include -I/home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/trajectory/include -I/home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/trajectoryanalysis/include -DGMX_DOUBLE=0 -DHAVE_CONFIG_H -DTMPI_EXPORTS -DTMPI_USE_VISIBILITY -DUSE_STD_INTTYPES_H -Dlibgromacs_EXPORTS -isystem /home/eoseret/GROMACS/gromacs-2022.4/src/external/thread_mpi/include -isystem /opt/intel/oneapi/mpi/2021.8.0/include -isystem /home/eoseret/GROMACS/gromacs-2022.4/src/external -isystem /opt/intel/oneapi/mkl/2023.0.0/include -isystem /home/eoseret/GROMACS/gromacs-2022.4/src/external/tng_io/include -isystem /home/eoseret/GROMACS/build/icc/tng/include -isystem /home/eoseret/GROMACS/gromacs-2022.4/src/external/lmfit -isystem /home/eoseret/GROMACS/gromacs-2022.4/src/external/muparser/include -g -fno-omit-frame-pointer -O3 -march=native -qopt-zmm-usage=high -O3 -DNDEBUG -fPIC -xCORE-AVX512 -qopt-zmm-usage=high -qopenmp -std=c++17 -MD -MT src/gromacs/CMakeFiles/libgromacs.dir/nbnxm/kernels_simd_2xmm/kernel_ElecEw_VdwLJCombLB_VF.cpp.o -MF CMakeFiles/libgromacs.dir/nbnxm/kernels_simd_2xmm/kernel_ElecEw_VdwLJCombLB_VF.cpp.o.d -o CMakeFiles/libgromacs.dir/nbnxm/kernels_simd_2xmm/kernel_ElecEw_VdwLJCombLB_VF.cpp.o -c | libgromacs_mpi.so.7: clang based Intel(R) oneAPI DPC++/C++ Compiler 2023.0.0 (2023.0.0.20221201) --driver-mode=g++ --intel -I /home/eoseret/GROMACS/gromacs-2022.4/src/include -I /home/eoseret/GROMACS/gromacs-2022.4/build/src/include -I /home/eoseret/GROMACS/gromacs-2022.4/src -I /home/eoseret/GROMACS/gromacs-2022.4/api/legacy/include -I /home/eoseret/GROMACS/gromacs-2022.4/build/api/legacy/include -I /home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/analysisdata/include -I /home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/utility/include -I /home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/applied_forces/include -I /home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/commandline/include -I /home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/compat/include -I /home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/coordinateio/include -I /home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/correlationfunctions/include -I /home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/domdec/include -I /home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/essentialdynamics/include -I /home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/ewald/include -I /home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/fft/include -I /home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/fileio/include -I /home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/gmxana/include -I /home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/gmxlib/include -I /home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/gmxpreprocess/include -I /home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/gpu_utils/include -I /home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/hardware/include -I /home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/imd/include -I /home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/linearalgebra/include -I /home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/listed_forces/include -I /home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/math/include -I /home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/mdlib/include -I /home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/mdrun/include -I /home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/mdrunutility/include -I /home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/mdspan/include -I /home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/mdtypes/include -I /home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/mimic/include -I /home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/modularsimulator/include -I /home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/nbnxm/include -I /home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/onlinehelp/include -I /home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/options/include -I /home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/pbcutil/include -I /home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/pulling/include -I /home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/random/include -I /home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/restraint/include -I /home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/selection/include -I /home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/simd/include -I /home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/statistics/include -I /home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/swap/include -I /home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/tables/include -I /home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/taskassignment/include -I /home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/timing/include -I /home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/tools/include -I /home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/topology/include -I /home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/trajectory/include -I /home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/trajectoryanalysis/include -I /opt/intel/oneapi/mpi/2021.8.0/include -D GMX_DOUBLE=0 -D HAVE_CONFIG_H -D TMPI_EXPORTS -D TMPI_USE_VISIBILITY -D USE_STD_INTTYPES_H -D libgromacs_EXPORTS -isystem /home/eoseret/GROMACS/gromacs-2022.4/src/external/thread_mpi/include -isystem /home/eoseret/GROMACS/gromacs-2022.4/src/external -isystem /home/eoseret/GROMACS/gromacs-2022.4/src/external/tng_io/include -isystem /home/eoseret/GROMACS/gromacs-2022.4/build/tng/include -isystem /home/eoseret/GROMACS/gromacs-2022.4/src/external/lmfit -isystem /home/eoseret/GROMACS/gromacs-2022.4/src/external/muparser/include -fno-omit-frame-pointer -fcf-protection=none -fno-finite-math-only -O2 -g -D NDEBUG -std=c++17 -fPIC -x CORE-AVX512 -qopt-zmm-usage=high -qmkl=sequential -Wno-reserved-identifier -Wno-missing-field-initializers -Wno-pass-failed -Weverything -Wno-c++98-compat -Wno-c++98-compat-pedantic -Wno-source-uses-openmp -Wno-c++17-extensions -Wno-documentation-unknown-command -Wno-covered-switch-default -Wno-switch-enum -Wno-extra-semi-stmt -Wno-weak-vtables -Wno-shadow -Wno-padded -Wno-reserved-id-macro -Wno-double-promotion -Wno-exit-time-destructors -Wno-global-constructors -Wno-documentation -Wno-format-nonliteral -Wno-used-but-marked-unused -Wno-float-equal -Wno-conditional-uninitialized -Wno-conversion -Wno-disabled-macro-expansion -Wno-unused-macros -fiopenmp -MD -MT src/gromacs/CMakeFiles/libgromacs.dir/nbnxm/kernels_simd_2xmm/kernel_ElecEw_VdwLJCombLB_F.cpp.o -MF CMakeFiles/libgromacs.dir/nbnxm/kernels_simd_2xmm/kernel_ElecEw_VdwLJCombLB_F.cpp.o.d -o CMakeFiles/libgromacs.dir/nbnxm/kernels_simd_2xmm/kernel_ElecEw_VdwLJCombLB_F.cpp.o -c /home/eoseret/GROMACS/gromacs-2022.4/src/gromacs/nbnxm/kernels_simd_2xmm/kernel_ElecEw_VdwLJCombLB_F.cpp -fveclib=SVML -fheinous-gnu-extensions gmx_mpi: N/A |
| Number of processes observed | 1 | same as r0 | same as r0 |
| Number of threads observed | 52 | same as r0 | same as r0 |
| Frequency Driver | intel_cpufreq | same as r0 | same as r0 |
| Frequency Governor | schedutil | same as r0 | same as r0 |
| Huge Pages | always | same as r0 | same as r0 |
| Hyperthreading | off | same as r0 | same as r0 |
| Number of sockets | 2 | same as r0 | same as r0 |
| Number of cores per socket | 26 | same as r0 | same as r0 |
| MAQAO version | 2.17.7 | same as r0 | same as r0 |
| MAQAO build | bf11934ec971510c7f500e010d8ca2474fd787ed::20230726-123240 | same as r0 | same as r0 |
| Comments | GROMACS 2022.4 compiled with g++ 13.1.1 running on Skylake with 52 OMP threads, 10000 steps | GROMACS 2022.4 compiled with icc 2021.8 running on Skylake with 52 OMP threads, 10000 steps | GROMACS 2022.4 compiled with icx 2023.0.0 running on Skylake with 52 OMP threads, 10000 steps |