From 7a441d0c2335f30324268b938c1120e346b4a181 Mon Sep 17 00:00:00 2001 From: Peter Willendrup Date: Mon, 23 Mar 2026 20:54:19 +0100 Subject: [PATCH 1/4] On Windows use psutil for probing number of available cores in MPI (Fix for https://github.com/mccode-dev/McCode/issues/2351) --- tools/Python/mcrun/mccode.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tools/Python/mcrun/mccode.py b/tools/Python/mcrun/mccode.py index ae217f448f..6534f5acaf 100755 --- a/tools/Python/mcrun/mccode.py +++ b/tools/Python/mcrun/mccode.py @@ -3,6 +3,7 @@ import sys import re import shutil +import psutil if not os.name == 'nt': import shlex as lexer @@ -441,6 +442,7 @@ def runMPI(self, args, pipe=False, override_mpi=None): LOG.info('Using system default number of mpirun -np processes') if os.name == 'nt': mpi_flags = [''] # msmpi mpiexec.exe does not accept -- + mpi_flags = ['-np', str(psutil.cpu_count(logical=False))] # probe number of available (non-logical) CPU's else: mpi_flags = ['--'] # ... whereas openmpi mpirun does. elif int(self.options.mpi) >= 1: From 1f7452c7a848369afeb72b4c5190f27c9369c710 Mon Sep 17 00:00:00 2001 From: Peter Willendrup Date: Mon, 23 Mar 2026 21:03:32 +0100 Subject: [PATCH 2/4] Raise dependency for psutil in non-conda test workflows --- .github/workflows/mcstas-basictest.yml | 6 +++--- .github/workflows/mcxtrace-basictest.yml | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/mcstas-basictest.yml b/.github/workflows/mcstas-basictest.yml index e640dde876..e8707d87bc 100644 --- a/.github/workflows/mcstas-basictest.yml +++ b/.github/workflows/mcstas-basictest.yml @@ -81,7 +81,7 @@ jobs: choco install winflexbison3 choco install wget if [ "$CC" == "gcc.exe" ]; then choco install mingw; fi - pip install mslex PyYAML ply ncrystal mcpl mcpl-extra + pip install mslex PyYAML ply ncrystal mcpl mcpl-extra psutil - name: Setup (Windows Intel) id: setup-Windows-intel @@ -240,11 +240,11 @@ jobs: set -x if [ "$RUNNER_OS" == "macOS" ]; then - python3 -mpip install PyYAML pyaml ply McStasScript ncrystal mcpl mcpl-extra jinja2 --break-system-packages + python3 -mpip install PyYAML pyaml ply McStasScript ncrystal mcpl mcpl-extra jinja2 psutil --break-system-packages fi if [ "$RUNNER_OS" == "Linux" ]; then - python3 -mpip install PyYAML ply McStasscript ncrystal mcpl mcpl-extra jinja2 + python3 -mpip install PyYAML ply McStasscript ncrystal mcpl mcpl-extra jinja2 psutil fi # Start of Unix tests diff --git a/.github/workflows/mcxtrace-basictest.yml b/.github/workflows/mcxtrace-basictest.yml index c908a48f73..36af168669 100644 --- a/.github/workflows/mcxtrace-basictest.yml +++ b/.github/workflows/mcxtrace-basictest.yml @@ -89,7 +89,7 @@ jobs: choco install winflexbison3 choco install wget if [ "$CC" == "gcc.exe" ]; then choco install mingw; fi - pip install mslex PyYAML ply mcpl mcpl-extra + pip install mslex PyYAML ply mcpl mcpl-extra psutil - name: Setup (Windows Intel) id: setup-Windows-intel @@ -248,11 +248,11 @@ jobs: set -x if [ "$RUNNER_OS" == "macOS" ]; then - python3 -mpip install PyYAML pyaml ply McStasScript mcpl mcpl-extra jinja2 --break-system-packages + python3 -mpip install PyYAML pyaml ply McStasScript mcpl mcpl-extra jinja2 psutil --break-system-packages fi if [ "$RUNNER_OS" == "Linux" ]; then - python3 -mpip install PyYAML ply McStasscript mcpl mcpl-extra jinja2 + python3 -mpip install PyYAML ply McStasscript mcpl mcpl-extra jinja2 psutil fi # Start of Unix tests From 3ec22525c0ec0fc56f8bdfa3d154714f673d7c12 Mon Sep 17 00:00:00 2001 From: Peter Willendrup Date: Mon, 23 Mar 2026 21:12:07 +0100 Subject: [PATCH 3/4] Raise dependency for psutil on Debian systems --- tools/Python/mcrun/CMakeLists.txt | 2 +- tools/Python/mctest/CMakeLists.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/Python/mcrun/CMakeLists.txt b/tools/Python/mcrun/CMakeLists.txt index 36c76f2f12..37980549a3 100644 --- a/tools/Python/mcrun/CMakeLists.txt +++ b/tools/Python/mcrun/CMakeLists.txt @@ -51,7 +51,7 @@ set(CPACK_NSIS_DISPLAY_NAME "${NSIS_NAME}") set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "${NSIS_NAME}") # Debian -set(CPACK_DEBIAN_PACKAGE_DEPENDS "${FLAVOR}, python3-yaml, python3-numpy") +set(CPACK_DEBIAN_PACKAGE_DEPENDS "${FLAVOR}, python3-yaml, python3-numpy, python3-psutil") set(CPACK_DEBIAN_PACKAGE_REPLACES "${FLAVOR}-tools-python-${P}run-3.5.1") # RPM diff --git a/tools/Python/mctest/CMakeLists.txt b/tools/Python/mctest/CMakeLists.txt index 0e96aa9404..6dfc613a2d 100644 --- a/tools/Python/mctest/CMakeLists.txt +++ b/tools/Python/mctest/CMakeLists.txt @@ -52,7 +52,7 @@ set(CPACK_NSIS_DISPLAY_NAME "${NSIS_NAME}") set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "${NSIS_NAME}") # Debian -set(CPACK_DEBIAN_PACKAGE_DEPENDS "${FLAVOR}, ${FLAVOR}-comps, python3-jinja2") +set(CPACK_DEBIAN_PACKAGE_DEPENDS "${FLAVOR}, ${FLAVOR}-comps, python3-jinja2, python3-psutil") set(CPACK_DEBIAN_PACKAGE_REPLACES "${FLAVOR}-tools-python-${P}test-3.5.1") # RPM From 6ab2649bcf16dd37337a386a58b5ca9c98992d46 Mon Sep 17 00:00:00 2001 From: Peter Willendrup Date: Mon, 23 Mar 2026 21:15:27 +0100 Subject: [PATCH 4/4] Raise psutil in all yml files/tool --- devel/bin/mccode-create-conda-yml | 2 +- environment.yml | 1 + mcstas-environment.yml | 1 + mcxtrace-environment.yml | 1 + meta-pkgs/windows/environment.yml | 1 + meta-pkgs/windows/mcstas-environment.yml | 1 + meta-pkgs/windows/mcxtrace-environment.yml | 1 + 7 files changed, 7 insertions(+), 1 deletion(-) diff --git a/devel/bin/mccode-create-conda-yml b/devel/bin/mccode-create-conda-yml index 17954b5dcd..869a47b82b 100755 --- a/devel/bin/mccode-create-conda-yml +++ b/devel/bin/mccode-create-conda-yml @@ -21,7 +21,7 @@ def create_deplist( cfg ): return deps #The rest are run-time deps: - deps += ['python','c-compiler','pyaml','numpy'] + deps += ['python','c-compiler','pyaml','numpy','psutil'] if cfg.is_unix: deps += ['bash'] if cfg.is_win: diff --git a/environment.yml b/environment.yml index 6ee8ba20dc..6379c843b8 100644 --- a/environment.yml +++ b/environment.yml @@ -15,6 +15,7 @@ dependencies: - compilers - gsl - pyaml + - psutil - ply - matplotlib-base - numpy diff --git a/mcstas-environment.yml b/mcstas-environment.yml index 98adaee396..7989d20e43 100644 --- a/mcstas-environment.yml +++ b/mcstas-environment.yml @@ -15,6 +15,7 @@ dependencies: - compilers - gsl - pyaml + - psutil - ply - matplotlib-base - numpy diff --git a/mcxtrace-environment.yml b/mcxtrace-environment.yml index 8b12dcb659..e143a3fe59 100644 --- a/mcxtrace-environment.yml +++ b/mcxtrace-environment.yml @@ -15,6 +15,7 @@ dependencies: - compilers - gsl - pyaml + - psutil - ply - matplotlib-base - numpy diff --git a/meta-pkgs/windows/environment.yml b/meta-pkgs/windows/environment.yml index d0dc501c93..923a5b4953 100644 --- a/meta-pkgs/windows/environment.yml +++ b/meta-pkgs/windows/environment.yml @@ -15,6 +15,7 @@ dependencies: - m2w64-gsl - msmpi - pyaml + - psutil - ply - numpy - tornado diff --git a/meta-pkgs/windows/mcstas-environment.yml b/meta-pkgs/windows/mcstas-environment.yml index b466995ea8..6f1c22e0eb 100644 --- a/meta-pkgs/windows/mcstas-environment.yml +++ b/meta-pkgs/windows/mcstas-environment.yml @@ -14,6 +14,7 @@ dependencies: - gsl - msmpi - pyaml + - psutil - ply - numpy - tornado diff --git a/meta-pkgs/windows/mcxtrace-environment.yml b/meta-pkgs/windows/mcxtrace-environment.yml index 2460f79b54..f6f234d2fb 100644 --- a/meta-pkgs/windows/mcxtrace-environment.yml +++ b/meta-pkgs/windows/mcxtrace-environment.yml @@ -14,6 +14,7 @@ dependencies: - gsl - msmpi - pyaml + - psutil - ply - numpy - tornado