<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Compare gromacs performance built by OneAPI and OpenMPI in Intel® MPI Library</title>
    <link>https://community.intel.com/t5/Intel-MPI-Library/Compare-gromacs-performance-built-by-OneAPI-and-OpenMPI/m-p/1642658#M11986</link>
    <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.intel.com/t5/user/viewprofilepage/user-id/245425"&gt;@TobiasK&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you for your response. While waiting, I continued studying and analyzing related issues. I also found another benchmark set &lt;A href="https://www.mpinat.mpg.de/grubmueller/bench" target="_blank" rel="noopener"&gt;&lt;SPAN&gt;here&lt;/SPAN&gt;&lt;/A&gt;, which provides many free benchmarks. The &lt;STRONG&gt;benchBFC&lt;/STRONG&gt; and &lt;STRONG&gt;benchBFI&lt;/STRONG&gt; tests gave me the idea that the &lt;STRONG&gt;water_GMX50_bare&lt;/STRONG&gt; benchmark might be too lightweight to effectively assess GROMACS builds with IntelMPI and OpenMPI. To address this, I adjusted the .mdp file and regenerated the benchmark data.&lt;/P&gt;&lt;P&gt;In particular, I modified pme.mdp as follows:&lt;/P&gt;&lt;P&gt;nstcalcenergy = 100 ; !autogen =&amp;gt;&amp;nbsp;nstcalcenergy = 1 ; !autogen&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regenerated the name of benchmark: *TI.tpr&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Based on this adjustment, I noticed a more pronounced performance difference. I think that more intensive or complex calculations in GROMACS benchmarks may highlight the performance advantages of using OneAPI. (I'm not sure if this is correct; anyone with more knowledge about GROMACS is welcome to discuss)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;/mnt/mount_test/gromacs/exec/openmpi/fftw/bin/gmx_mpi mdrun -pin on -v --noconfout -ntomp 16 -s /mnt/mount_test/gromacs/benchmark/waterTI/0384_TI.tpr -dlb yes -nsteps 3000 -resetstep 1000&lt;BR /&gt;========&lt;BR /&gt;Benchmark: 0384_TI.tpr&lt;BR /&gt;Using 1 MPI process&lt;BR /&gt;Using 16 OpenMP threads&lt;/P&gt;&lt;P&gt;Core t (s) Wall t (s) (%)&lt;BR /&gt;Time: 846.390 52.899 1600.0&lt;BR /&gt;(ns/day) (hour/ns)&lt;BR /&gt;Performance: 6.536 3.672&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;/mnt/mount_test/gromacs/exec/oneapi/mkl/bin/gmx_mpi mdrun -pin on -v --noconfout -ntomp 16 -s /mnt/mount_test/gromacs/benchmark/waterTI/0384_TI.tpr -dlb yes -nsteps 3000 -resetstep 1000&lt;BR /&gt;========&lt;BR /&gt;Benchmark: 0384_TI.tpr&lt;BR /&gt;Using 1 MPI process&lt;BR /&gt;Using 16 OpenMP threads&lt;/P&gt;&lt;P&gt;Core t (s) Wall t (s) (%)&lt;BR /&gt;Time: 743.222 46.451 1600.0&lt;BR /&gt;(ns/day) (hour/ns)&lt;BR /&gt;Performance: 7.444 3.224&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;In other benchmarks which has the same phenomenon&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#808080"&gt;I would, however, recommend to not use OMP threads but just MPI&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000"&gt;=&amp;gt; Could you explain the reason? Because with the OMP threads supporting, the performance is better&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Many thanks,&lt;/DIV&gt;&lt;DIV&gt;Best regards&lt;/DIV&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Tue, 12 Nov 2024 05:30:43 GMT</pubDate>
    <dc:creator>Allen_1215</dc:creator>
    <dc:date>2024-11-12T05:30:43Z</dc:date>
    <item>
      <title>Compare gromacs performance built by OneAPI and OpenMPI</title>
      <link>https://community.intel.com/t5/Intel-MPI-Library/Compare-gromacs-performance-built-by-OneAPI-and-OpenMPI/m-p/1638037#M11945</link>
      <description>&lt;DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Hi All,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN&gt;I attempted to build a GROMACS using Intel OneAPI (mpiicx, mpiicpx, MKL) and OpenMPI (mpicc, mpicxx, fftw3) and then compared their performance using some benchmarks.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;However, after running the benchmarks, the performance results were almost identical, with no significant improvement.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN&gt;Ideally, The GROMACS version built with OneAPI should outperform the one built with OpenMPI.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN&gt;Note that I only used the Intel CPUs, without any GPU support.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN&gt;CPU info:&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;[root@ks-9268458 ~]# lscpu&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Architecture: x86_64&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;CPU op-mode(s): 32-bit, 64-bit&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Byte Order: Little Endian&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;CPU(s): 48&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;On-line CPU(s) list: 0-47&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Thread(s) per core: 2&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Core(s) per socket: 12&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Socket(s): 2&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;NUMA node(s): 1&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Vendor ID: GenuineIntel&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;BIOS Vendor ID: Intel(R) Corporation&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;CPU family: 6&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Model: 143&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Model name: Intel(R) Xeon(R) Silver 4410Y&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;BIOS Model name: Intel(R) Xeon(R) Silver 4410Y&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Stepping: 7&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;CPU MHz: 2778.955&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;CPU max MHz: 3900.0000&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;CPU min MHz: 800.0000&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;BogoMIPS: 4000.00&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Virtualization: VT-x&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;L1d cache: 48K&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;L1i cache: 32K&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;L2 cache: 2048K&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;L3 cache: 30720K&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;NUMA node0 CPU(s): 0-47&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb cat_l3 cat_l2 cdp_l3 invpcid_single cdp_l2 ssbd mba ibrs ibpb stibp ibrs_enhanced tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm cqm rdt_a avx512f avx512dq rdseed adx smap avx512ifma clflushopt clwb intel_pt avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local dtherm ida arat pln pts hwp hwp_act_window hwp_epp hwp_pkg_req avx512vbmi umip pku ospke avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg tme avx512_vpopcntdq la57 rdpid cldemote pconfig flush_l1d arch_capabilities&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;[root@ks-9268458 ~]# echo $(nproc)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;48&lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN&gt;gmx version build from OneAPI:&lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN&gt;/mnt/mount_test/gromacs/exec/oneapi/mkl/bin/gmx_mpi --version&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;MPI startup(): FI_PSM3_UUID was not generated, please set it to avoid possible resources ownership conflicts between MPI processes&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&lt;LI-EMOJI id="lia_slightly-smiling-face" title=":slightly_smiling_face:"&gt;&lt;/LI-EMOJI&gt; GROMACS - gmx_mpi, 2023.3 (-:&lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN&gt;Executable: /mnt/mount_test/gromacs/exec/oneapi/mkl/bin/gmx_mpi&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Data prefix: /mnt/mount_test/gromacs/exec/oneapi/mkl&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Working dir: /root&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Command line:&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;gmx_mpi --version&lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN&gt;GROMACS version: 2023.3&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Precision: mixed&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Memory model: 64 bit&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;MPI library: MPI&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;OpenMP support: enabled (GMX_OPENMP_MAX_THREADS = 128)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;GPU support: disabled&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;SIMD instructions: AVX_512&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;CPU FFT library: Intel MKL version 2024.0.2 Build 20240722&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;GPU FFT library: none&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Multi-GPU FFT: none&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;RDTSCP usage: enabled&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;TNG support: enabled&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Hwloc support: disabled&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Tracing support: disabled&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;C compiler: /mnt/mount_test/tmp/oneapi/mpi/2021.13/bin/mpiicx IntelLLVM 2024.2.1&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;C compiler flags: -xCORE-AVX512 -qopt-zmm-usage=high -Wno-missing-field-initializers -O3 -DNDEBUG&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;C++ compiler: /mnt/mount_test/tmp/oneapi/mpi/2021.13/bin/mpiicpx IntelLLVM 2024.2.1&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;C++ compiler flags: -xCORE-AVX512 -qopt-zmm-usage=high -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 -Wno-unsafe-buffer-usage -Wno-cast-function-type-strict -fiopenmp -O3 -DNDEBUG&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;BLAS library: Intel MKL version 2024.0.2 Build 20240722&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;LAPACK library: Intel MKL version 2024.0.2 Build 20240722&lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN&gt;gmx version build from OpenMPI:&lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN&gt;gmx_mpi --version&lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN&gt;GROMACS version: 2023.3&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Precision: mixed&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Memory model: 64 bit&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;MPI library: MPI&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;OpenMP support: enabled (GMX_OPENMP_MAX_THREADS = 128)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;GPU support: disabled&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;SIMD instructions: AVX_512&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;CPU FFT library: fftw-3.3.8-sse2-avx-avx2-avx2_128-avx512&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;GPU FFT library: none&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Multi-GPU FFT: none&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;RDTSCP usage: enabled&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;TNG support: enabled&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Hwloc support: disabled&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Tracing support: disabled&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;C compiler: /mnt/mount_test/openmpi/bin/mpicc GNU 9.2.1&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;C compiler flags: -fexcess-precision=fast -funroll-all-loops -mavx512f -mfma -mavx512vl -mavx512dq -mavx512bw -Wno-missing-field-initializers -O3 -DNDEBUG&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;C++ compiler: /mnt/mount_test/openmpi/bin/mpicxx GNU 9.2.1&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;C++ compiler flags: -fexcess-precision=fast -funroll-all-loops -mavx512f -mfma -mavx512vl -mavx512dq -mavx512bw -Wno-missing-field-initializers -Wno-cast-function-type-strict -fopenmp -O3 -DNDEBUG&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;BLAS library: External - detected on the system&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;LAPACK library: External - detected on the system&lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN&gt;OneAPI version:&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;2024.2.1&lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN&gt;/mnt/mount_test/tmp/oneapi/mpi/2021.13/bin/mpiicx --version&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Intel(R) oneAPI DPC++/C++ Compiler 2024.2.1 (2024.2.1.20240711)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Target: x86_64-unknown-linux-gnu&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Thread model: posix&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;InstalledDir: /mnt/mount_test/tmp/oneapi/compiler/2024.2/bin/compiler&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Configuration file: /mnt/mount_test/tmp/oneapi/compiler/2024.2/bin/compiler/../icx.cfg&lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN&gt;/mnt/mount_test/tmp/oneapi/mpi/2021.13/bin/mpiicpx --version&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Intel(R) oneAPI DPC++/C++ Compiler 2024.2.1 (2024.2.1.20240711)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Target: x86_64-unknown-linux-gnu&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Thread model: posix&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;InstalledDir: /mnt/mount_test/tmp/oneapi/compiler/2024.2/bin/compiler&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Configuration file: /mnt/mount_test/tmp/oneapi/compiler/2024.2/bin/compiler/../icpx.cfg&lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN&gt;OpenMPI:&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;mpicc --version&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;gcc (GCC) 9.2.1 20191120 (Red Hat 9.2.1-2)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Copyright (C) 2019 Free Software Foundation, Inc.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;This is free software; see the source for copying conditions. There is NO&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN&gt;mpicxx --version&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;g++ (GCC) 9.2.1 20191120 (Red Hat 9.2.1-2)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Copyright (C) 2019 Free Software Foundation, Inc.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;This is free software; see the source for copying conditions. There is NO&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.&lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN&gt;Gromacs version:&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;2023.3&lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN&gt;I reference this page to build and execute:&amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN&gt;&lt;A href="https://www.intel.com/content/www/us/en/developer/videos/performance-tuning-optimization-hpc-software.html" target="_blank"&gt;https://www.intel.com/content/www/us/en/developer/videos/performance-tuning-optimization-hpc-software.html&lt;/A&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN&gt;I used the benchmark which comes from:&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&lt;A href="https://ftp.gromacs.org/pub/benchmarks/water_GMX50_bare.tar.gz" target="_blank"&gt;https://ftp.gromacs.org/pub/benchmarks/water_GMX50_bare.tar.gz&lt;/A&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;0384_topol.tpr which I renamed was generated from "water-cut1.0_GMX50_bare/0384"&lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN&gt;cmd and output:&lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN&gt;/mnt/mount_test/gromacs/exec/openmpi/fftw/bin/gmx_mpi mdrun -pin on -v --noconfout -nsteps 10000 -resetstep 5000 -ntomp 16 -s /mnt/mount_test/gromacs/benchmark//0384_topol.tpr -dlb yes&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;========&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Benchmark: 0384_topol.tpr&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Using 1 MPI process&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Using 16 OpenMP threads&lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN&gt;Core t (s) Wall t (s) (%)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Time: 1436.725 89.795 1600.0&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;(ns/day) (hour/ns)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Performance: 9.624 2.494&lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN&gt;=================&lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN&gt;/mnt/mount_test/gromacs/exec/oneapi/mkl/bin/gmx_mpi mdrun -pin on -v --noconfout -nsteps 10000 -resetstep 5000 -ntomp 16 -s /mnt/mount_test/gromacs/benchmark//0384_topol.tpr -dlb yes&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;========&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Benchmark: 0384_topol.tpr&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Using 1 MPI process&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Using 16 OpenMP threads&lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN&gt;Core t (s) Wall t (s) (%)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Time: 1502.450 93.903 1600.0&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;(ns/day) (hour/ns)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Performance: 9.203 2.608&lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN&gt;Is there something or a setting that I'm overlooking causing the performance that's preventing the performance from improving significantly?&lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN&gt;Many thanks,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;&lt;SPAN&gt;Best regards&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Fri, 18 Oct 2024 08:32:16 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-MPI-Library/Compare-gromacs-performance-built-by-OneAPI-and-OpenMPI/m-p/1638037#M11945</guid>
      <dc:creator>Allen_1215</dc:creator>
      <dc:date>2024-10-18T08:32:16Z</dc:date>
    </item>
    <item>
      <title>Re: Compare gromacs performance built by OneAPI and OpenMPI</title>
      <link>https://community.intel.com/t5/Intel-MPI-Library/Compare-gromacs-performance-built-by-OneAPI-and-OpenMPI/m-p/1641328#M11974</link>
      <description>&lt;P&gt;&lt;a href="https://community.intel.com/t5/user/viewprofilepage/user-id/390858"&gt;@Allen_1215&lt;/a&gt;&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;GROMACS is a special case, almost all hot kernels are hand coded and there is not much for the compiler to optimize.&lt;BR /&gt;&lt;BR /&gt;I would, however, recommend to not use OMP threads but just MPI&lt;/P&gt;</description>
      <pubDate>Tue, 05 Nov 2024 11:02:56 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-MPI-Library/Compare-gromacs-performance-built-by-OneAPI-and-OpenMPI/m-p/1641328#M11974</guid>
      <dc:creator>TobiasK</dc:creator>
      <dc:date>2024-11-05T11:02:56Z</dc:date>
    </item>
    <item>
      <title>Re: Compare gromacs performance built by OneAPI and OpenMPI</title>
      <link>https://community.intel.com/t5/Intel-MPI-Library/Compare-gromacs-performance-built-by-OneAPI-and-OpenMPI/m-p/1642658#M11986</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.intel.com/t5/user/viewprofilepage/user-id/245425"&gt;@TobiasK&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you for your response. While waiting, I continued studying and analyzing related issues. I also found another benchmark set &lt;A href="https://www.mpinat.mpg.de/grubmueller/bench" target="_blank" rel="noopener"&gt;&lt;SPAN&gt;here&lt;/SPAN&gt;&lt;/A&gt;, which provides many free benchmarks. The &lt;STRONG&gt;benchBFC&lt;/STRONG&gt; and &lt;STRONG&gt;benchBFI&lt;/STRONG&gt; tests gave me the idea that the &lt;STRONG&gt;water_GMX50_bare&lt;/STRONG&gt; benchmark might be too lightweight to effectively assess GROMACS builds with IntelMPI and OpenMPI. To address this, I adjusted the .mdp file and regenerated the benchmark data.&lt;/P&gt;&lt;P&gt;In particular, I modified pme.mdp as follows:&lt;/P&gt;&lt;P&gt;nstcalcenergy = 100 ; !autogen =&amp;gt;&amp;nbsp;nstcalcenergy = 1 ; !autogen&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regenerated the name of benchmark: *TI.tpr&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Based on this adjustment, I noticed a more pronounced performance difference. I think that more intensive or complex calculations in GROMACS benchmarks may highlight the performance advantages of using OneAPI. (I'm not sure if this is correct; anyone with more knowledge about GROMACS is welcome to discuss)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;/mnt/mount_test/gromacs/exec/openmpi/fftw/bin/gmx_mpi mdrun -pin on -v --noconfout -ntomp 16 -s /mnt/mount_test/gromacs/benchmark/waterTI/0384_TI.tpr -dlb yes -nsteps 3000 -resetstep 1000&lt;BR /&gt;========&lt;BR /&gt;Benchmark: 0384_TI.tpr&lt;BR /&gt;Using 1 MPI process&lt;BR /&gt;Using 16 OpenMP threads&lt;/P&gt;&lt;P&gt;Core t (s) Wall t (s) (%)&lt;BR /&gt;Time: 846.390 52.899 1600.0&lt;BR /&gt;(ns/day) (hour/ns)&lt;BR /&gt;Performance: 6.536 3.672&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;/mnt/mount_test/gromacs/exec/oneapi/mkl/bin/gmx_mpi mdrun -pin on -v --noconfout -ntomp 16 -s /mnt/mount_test/gromacs/benchmark/waterTI/0384_TI.tpr -dlb yes -nsteps 3000 -resetstep 1000&lt;BR /&gt;========&lt;BR /&gt;Benchmark: 0384_TI.tpr&lt;BR /&gt;Using 1 MPI process&lt;BR /&gt;Using 16 OpenMP threads&lt;/P&gt;&lt;P&gt;Core t (s) Wall t (s) (%)&lt;BR /&gt;Time: 743.222 46.451 1600.0&lt;BR /&gt;(ns/day) (hour/ns)&lt;BR /&gt;Performance: 7.444 3.224&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;In other benchmarks which has the same phenomenon&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#808080"&gt;I would, however, recommend to not use OMP threads but just MPI&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#000000"&gt;=&amp;gt; Could you explain the reason? Because with the OMP threads supporting, the performance is better&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Many thanks,&lt;/DIV&gt;&lt;DIV&gt;Best regards&lt;/DIV&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 12 Nov 2024 05:30:43 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-MPI-Library/Compare-gromacs-performance-built-by-OneAPI-and-OpenMPI/m-p/1642658#M11986</guid>
      <dc:creator>Allen_1215</dc:creator>
      <dc:date>2024-11-12T05:30:43Z</dc:date>
    </item>
    <item>
      <title>Re: Compare gromacs performance built by OneAPI and OpenMPI</title>
      <link>https://community.intel.com/t5/Intel-MPI-Library/Compare-gromacs-performance-built-by-OneAPI-and-OpenMPI/m-p/1642732#M11987</link>
      <description>&lt;P&gt;&lt;a href="https://community.intel.com/t5/user/viewprofilepage/user-id/390858"&gt;@Allen_1215&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="sub_section_element_selectors"&gt;&lt;FONT class="sub_section_element_selectors" color="#808080"&gt;I would, however, recommend to not use OMP threads but just MPI&lt;/FONT&gt;&lt;/P&gt;
&lt;P class="sub_section_element_selectors"&gt;&lt;FONT class="sub_section_element_selectors" color="#000000"&gt;=&amp;gt; Could you explain the reason? Because with the OMP threads supporting, the performance is better&lt;BR /&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class="sub_section_element_selectors"&gt;&lt;FONT class="sub_section_element_selectors" color="#000000"&gt;I did not run some GROMACS benchmarks, but last time I checked MPI only parallelization was still superior to OpenMP only parallelization. In your case, running only with OpenMP you even don't need Intel MPI nor OpenMPI. For single node only runs GROMACS did also offer an internal MPI implementation. Please ask the GROMACS developers for guidance on how to run the benchmarks.&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 12 Nov 2024 10:58:22 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-MPI-Library/Compare-gromacs-performance-built-by-OneAPI-and-OpenMPI/m-p/1642732#M11987</guid>
      <dc:creator>TobiasK</dc:creator>
      <dc:date>2024-11-12T10:58:22Z</dc:date>
    </item>
    <item>
      <title>Re: Compare gromacs performance built by OneAPI and OpenMPI</title>
      <link>https://community.intel.com/t5/Intel-MPI-Library/Compare-gromacs-performance-built-by-OneAPI-and-OpenMPI/m-p/1643407#M11988</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.intel.com/t5/user/viewprofilepage/user-id/245425"&gt;@TobiasK&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you for your input, and I understand your point. You are correct regarding the current case on a single node without using the MPI process. However, we aim to deploy GROMACS on multiple nodes with the MPI process in the future. For now, we are experimenting on a single node to evaluate performance improvements. We have confirmed that using DPC++ to build GROMACS&amp;nbsp; is efficient.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you for your help, and have a great day.&lt;/P&gt;&lt;P&gt;Best regards&lt;/P&gt;</description>
      <pubDate>Fri, 15 Nov 2024 06:40:40 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-MPI-Library/Compare-gromacs-performance-built-by-OneAPI-and-OpenMPI/m-p/1643407#M11988</guid>
      <dc:creator>Allen_1215</dc:creator>
      <dc:date>2024-11-15T06:40:40Z</dc:date>
    </item>
  </channel>
</rss>

