From bf5f616fbe12c1ad6edebe49f2a976b0a232dde3 Mon Sep 17 00:00:00 2001 From: Marc Schluetter <m.schluetter@fz-juelich.de> Date: Wed, 27 Sep 2023 13:53:48 +0200 Subject: [PATCH] Score-p/Scalasca with gpsmpi-2022a-pmix --- Golden_Repo/g/gpsmpi/gpsmpi-2022a-pmix.eb | 19 ++++++ .../p/psmpi/psmpi-5.8.1-1-GCC-11.3.0-pmix.eb | 41 ++++++++++++ .../Scalasca-2023-09-26-gpsmpi-2022a-pmix.eb | 61 ++++++++++++++++++ .../Score-P-2023-09-26-gpsmpi-2022a-pmix.eb | 64 +++++++++++++++++++ 4 files changed, 185 insertions(+) create mode 100644 Golden_Repo/g/gpsmpi/gpsmpi-2022a-pmix.eb create mode 100644 Golden_Repo/p/psmpi/psmpi-5.8.1-1-GCC-11.3.0-pmix.eb create mode 100644 Golden_Repo/s/Scalasca/Scalasca-2023-09-26-gpsmpi-2022a-pmix.eb create mode 100644 Golden_Repo/s/Score-P/Score-P-2023-09-26-gpsmpi-2022a-pmix.eb diff --git a/Golden_Repo/g/gpsmpi/gpsmpi-2022a-pmix.eb b/Golden_Repo/g/gpsmpi/gpsmpi-2022a-pmix.eb new file mode 100644 index 000000000..d90a33096 --- /dev/null +++ b/Golden_Repo/g/gpsmpi/gpsmpi-2022a-pmix.eb @@ -0,0 +1,19 @@ +easyblock = 'Toolchain' + +name = 'gpsmpi' +version = '2022a-pmix' + +homepage = '(none)' +description = 'GCC and GFortran based compiler toolchain, including Parastation MPICH2 for MPI support (using PMIx).' + + +toolchain = SYSTEM + +local_compiler = ('GCC', '11.3.0') + +dependencies = [ + local_compiler, + ('psmpi', '5.8.1-1', '-pmix', local_compiler), +] + +moduleclass = 'toolchain' diff --git a/Golden_Repo/p/psmpi/psmpi-5.8.1-1-GCC-11.3.0-pmix.eb b/Golden_Repo/p/psmpi/psmpi-5.8.1-1-GCC-11.3.0-pmix.eb new file mode 100644 index 000000000..368955198 --- /dev/null +++ b/Golden_Repo/p/psmpi/psmpi-5.8.1-1-GCC-11.3.0-pmix.eb @@ -0,0 +1,41 @@ +name = 'psmpi' +version = '5.8.1-1' +versionsuffix = '-pmix' + +homepage = 'https://github.com/ParaStation/psmpi2' +description = """ParaStation MPI is an open source high-performance MPI 3.0 implementation, +based on MPICH v3. It provides extra low level communication libraries and integration with +various batch systems for tighter process control. +""" + +toolchain = {'name': 'GCC', 'version': '11.3.0'} + +sources = [SOURCE_TAR_GZ] +source_urls = ['https://gitlab.jsc.fz-juelich.de/ParTec/psmpi/uploads/762714c8eec01fe59239a52798a70e1c/'] +checksums = [ + # psmpi-5.8.1-1.tar.gz + '54dee42a2eb6ac26d43f5e0371ddc1e75225512365749b3d03856543b6a7366d', +] + +osdependencies = [ + # needed for --with-pmix + ('pmix-devel'), +] + +dependencies = [ + ('pscom', '5.6-default'), + # needed due to the inclusion of hwloc + ('libxml2', '2.9.13'), + # Including CUDA here to trigger the hook to add the gpu property, and because it is actually needed + ('CUDA', '11.7', '', SYSTEM) +] + +configopts = '--with-pmix=/usr/lib64/pmix' + +mpich_opts = '--enable-static --with-file-system=ufs+gpfs --enable-romio' + +threaded = False + +cuda = True + +moduleclass = 'mpi' diff --git a/Golden_Repo/s/Scalasca/Scalasca-2023-09-26-gpsmpi-2022a-pmix.eb b/Golden_Repo/s/Scalasca/Scalasca-2023-09-26-gpsmpi-2022a-pmix.eb new file mode 100644 index 000000000..11510cce0 --- /dev/null +++ b/Golden_Repo/s/Scalasca/Scalasca-2023-09-26-gpsmpi-2022a-pmix.eb @@ -0,0 +1,61 @@ +## +# This is an easyconfig file for EasyBuild, see https://github.com/easybuilders/easybuild +# Copyright:: Copyright 2013-2023 Juelich Supercomputing Centre, Germany +# Authors:: Bernd Mohr <b.mohr@fz-juelich.de> +# Markus Geimer <m.geimer@fz-juelich.de> +# Christian Feld <c.feld@fz-juelich.de> +# License:: 3-clause BSD +# +# This work is based on experiences from the UNITE project +# http://apps.fz-juelich.de/unite/ +## + +easyblock = 'EB_Score_minus_P' + +name = 'Scalasca' +version = '2023-09-26' + +homepage = 'https://www.scalasca.org/' +description = """ +Scalasca is a software tool that supports the performance optimization of +parallel programs by measuring and analyzing their runtime behavior. The +analysis identifies potential performance bottlenecks -- in particular +those concerning communication and synchronization -- and offers guidance +in exploring their causes. +""" + +toolchain = {'name': 'gpsmpi', 'version': '2022a-pmix'} + +source_urls = ['https://perftools.pages.jsc.fz-juelich.de/cicd/scalasca/branches/MR71'] +sources = ['latest.tar.gz'] +builddependencies = [ + ('CubeWriter', '4.8.2'), +] + +dependencies = [ + ('CubeGUI', '4.8.2'), + ('CubeLib', '4.8.2'), + ('OTF2', '3.0.3'), + ('Score-P', '2023-09-26'), +] + +sanity_check_paths = { + 'files': ['bin/scalasca', ('lib/libpearl.replay.a', 'lib64/libpearl.replay.a')], + 'dirs': [], +} + +# note that modextrapaths can be used for relative paths only +modextrapaths = { + # Ensure that local metric documentation is found by CubeGUI + 'CUBE_DOCPATH': 'share/doc/scalasca/patterns' +} + +modextravars = { + # Specifies an optional list of colon separated paths identifying + # suitable file systems for tracing. If set, the file system of + # trace measurements has to match at least one of the specified + # file systems. + 'SCAN_TRACE_FILESYS': '/p/project:/p/scratch:/p/cscratch:/p/fastdata:/p/largedata:/p/largedata2' +} + +moduleclass = 'perf' diff --git a/Golden_Repo/s/Score-P/Score-P-2023-09-26-gpsmpi-2022a-pmix.eb b/Golden_Repo/s/Score-P/Score-P-2023-09-26-gpsmpi-2022a-pmix.eb new file mode 100644 index 000000000..290e77dde --- /dev/null +++ b/Golden_Repo/s/Score-P/Score-P-2023-09-26-gpsmpi-2022a-pmix.eb @@ -0,0 +1,64 @@ +## +# This is an easyconfig file for EasyBuild, see https://github.com/easybuilders/easybuild +# Copyright:: Copyright 2013-2023 Juelich Supercomputing Centre, Germany +# Authors:: Bernd Mohr <b.mohr@fz-juelich.de> +# Markus Geimer <m.geimer@fz-juelich.de> +# Christian Feld <c.feld@fz-juelich.de> +# License:: 3-clause BSD +# +# This work is based on experiences from the UNITE project +# http://apps.fz-juelich.de/unite/ +## + +easyblock = 'EB_Score_minus_P' + +name = 'Score-P' +version = '2023-09-26' + +homepage = 'https://www.score-p.org' +description = """ +The Score-P measurement infrastructure is a highly scalable and easy-to-use +tool suite for profiling, event tracing, and online analysis of HPC +applications. +""" + +toolchain = {'name': 'gpsmpi', 'version': '2022a-pmix'} + +source_urls = ['https://perftools.pages.jsc.fz-juelich.de/cicd/scorep/branches/MR195'] +sources = ['latest.tar.gz'] + +builddependencies = [ + ('CUDA', '11.7', '', SYSTEM), + ('CubeLib', '4.8.2'), + ('CubeWriter', '4.8.2'), + # Unwinding/sampling support (optional): + ('libunwind', '1.6.2'), +] + +dependencies = [ + # binutils is implicitly available via GCC toolchain + ('OPARI2', '2.0.8'), + ('OTF2', '3.0.3'), + # Hardware counter support (optional): + ('PAPI', '7.0.0'), +] + +configopts = '--enable-shared --with-machine-name=$SYSTEMNAME ' +# Enable CUDA support +configopts += '--with-libOpenCL=$EBROOTCUDA/targets/x86_64-linux ' +# Make OMPT default, if available +configopts += '--enable-default=ompt ' + +postinstallcmds = ['make installcheck'] + +sanity_check_paths = { + 'files': ['bin/scorep', 'include/scorep/SCOREP_User.h', + ('lib/libscorep_adapter_mpi_event.a', 'lib64/libscorep_adapter_mpi_event.a'), + ('lib/libscorep_adapter_mpi_event.%s' % SHLIB_EXT, 'lib64/libscorep_adapter_mpi_event.%s' % SHLIB_EXT)], + 'dirs': [], +} + +# Ensure that local metric documentation is found by CubeGUI +modextrapaths = {'CUBE_DOCPATH': 'share/doc/scorep/profile'} + +moduleclass = 'perf' -- GitLab