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 |