Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enhance Score-P EasyBlock for future releases and better oneAPI support. #3548

Merged
merged 3 commits into from
Jan 18, 2025

Conversation

Thyre
Copy link
Contributor

@Thyre Thyre commented Jan 10, 2025

The following changes are implemented:

  • Properly handle Qt5 & Qt6 dependencies for CubeGUI, not only Qt4
  • Remove --with-cube option, as this is not supported by Score-P 6.0+ & recent Scalasca versions
  • Add dependency handling for GOTCHA, as this will likely be added with Score-P 9.0+
  • Switch to --with-nocross-compiler-suite=oneapi if Intel toolchain uses oneAPI compilers (checked via 'oneapi' toolchain option). This allows building Score-P with oneAPI 2024.0.0 and newer.

Targeting 5.0.x, as develop still contains the EasyConfigs Cube-4.3.4-foss-2016a.eb and Scalasca-2.3-foss-2016a.eb, still using --with-cube= as the option.

The following changes are implemented:
- Properly handle Qt5 & Qt6 dependencies for CubeGUI, not only Qt4
- Remove `--with-cube` option, as this is not supported by Score-P 6.0+
- Add dependency handling for GOTCHA, as this option will likely be added
  with Score-P 9.0+
- Switch to `--with-nocross-compiler-suite=oneapi` if Intel toolchain
  uses oneAPI compilers (checked via 'oneapi' toolchain option).
  This allows building Score-P with oneAPI 2024.0.0 and newer.

Signed-off-by: Jan André Reuter <[email protected]>
@Thyre
Copy link
Contributor Author

Thyre commented Jan 10, 2025

I can split this PR into two, removing the --with-cube option in a separate one. With this, the remaining changes could also be used in EasyBuild 4.9.x.
However, I'm not sure if this is worth the effort, given that 5.0 is likely the next release.

@Thyre
Copy link
Contributor Author

Thyre commented Jan 10, 2025

See easybuilders/easybuild-easyconfigs#22143 (comment) for a local test with Intel oneAPI EasyConfigs.

@Thyre
Copy link
Contributor Author

Thyre commented Jan 10, 2025

@boegelbot please test @ jsc-zen3
EB_BRANCH=5.0.x
EB_ARGS="Score-P-8.4-gompi-2024a-CUDA-12.6.0.eb Score-P-8.4-gompi-2024a.eb CubeGUI-4.8-GCCcore-11.3.0.eb Scalasca-2.6.1-gompi-2022a.eb --installpath /tmp/$USER"

@boegelbot
Copy link

@Thyre: Request for testing this PR well received on jsczen3l1.int.jsc-zen3.fz-juelich.de

PR test command 'if [[ "5.0.x" != 'develop' ]]; then EB_BRANCH="5.0.x" ./easybuild_develop.sh 2> /dev/null 1>&2; EB_PREFIX=/home/boegelbot/easybuild/"5.0.x" source init_env_easybuild_develop.sh; fi; EB_PR=3548 EB_ARGS="Score-P-8.4-gompi-2024a-CUDA-12.6.0.eb Score-P-8.4-gompi-2024a.eb CubeGUI-4.8-GCCcore-11.3.0.eb Scalasca-2.6.1-gompi-2022a.eb --installpath /tmp/$USER" EB_REPO=easybuild-easyblocks EB_BRANCH="5.0.x" /opt/software/slurm/bin/sbatch --job-name test_PR_3548 --ntasks=8 ~/boegelbot/eb_from_pr_upload_jsc-zen3.sh' executed!

  • exit code: 0
  • output:
Submitted batch job 5523

Test results coming soon (I hope)...

- notification for comment with ID 2582401628 processed

Message to humans: this is just bookkeeping information for me,
it is of no use to you (unless you think I have a bug, which I don't).

@boegelbot
Copy link

Test report by @boegelbot

Overview of tested easyconfigs (in order)

  • SUCCESS Score-P-8.4-gompi-2024a-CUDA-12.6.0.eb
  • SUCCESS Score-P-8.4-gompi-2024a.eb
  • SUCCESS CubeGUI-4.8-GCCcore-11.3.0.eb
  • SUCCESS Scalasca-2.6.1-gompi-2022a.eb

Build succeeded for 4 out of 4 (4 easyconfigs in total)
jsczen3c1.int.jsc-zen3.fz-juelich.de - Linux Rocky Linux 9.5, x86_64, AMD EPYC-Milan Processor (zen3), Python 3.9.21
See https://gist.github.com/boegelbot/d8f13a6693596d504c4d691b43821525 for a full test report.

@Thyre
Copy link
Contributor Author

Thyre commented Jan 16, 2025

Some comments that came up with offline discussion with @geimer:

  • At least since Score-P v8.0 we generally want libbfd.so instead of libbfd.a. The .a should still work I think, but may have side-effects we ran into while testing on some systems.
  • We may want to rework how we pass dependencies to the tools using these EasyBlocks, since we may pass too many (unneeded) configure arguments. Instead of going through the list of defined dependencies of the EasyBlock, we should go through the dependencies and builddependencies passed by the EasyConfigs.

Both could be done in a separate PR to clean things up.

Instead of going through the defined dependencies in EasyBlock and
searching if they are loaded, go through the explicit dependencies in
the EasyConfig and pass them instead. This reduces the amount of
unnecessary passed configure options.

However, this now requires having 'binutils' as an explicit dependency
for Score-P, since it requires having the paths for libbfd.

Signed-off-by: Jan André Reuter <[email protected]>
Signed-off-by: Jan André Reuter <[email protected]>
@SebastianAchilles
Copy link
Member

@boegelbot please test @ jsc-zen3
EB_BRANCH=5.0.x
EB_ARGS="Score-P-8.4-gompi-2024a-CUDA-12.6.0.eb Score-P-8.4-gompi-2024a.eb CubeGUI-4.8-GCCcore-11.3.0.eb Scalasca-2.6.1-gompi-2022a.eb --installpath /tmp/$USER"

@boegelbot
Copy link

@SebastianAchilles: Request for testing this PR well received on jsczen3l1.int.jsc-zen3.fz-juelich.de

PR test command 'if [[ "5.0.x" != 'develop' ]]; then EB_BRANCH="5.0.x" ./easybuild_develop.sh 2> /dev/null 1>&2; EB_PREFIX=/home/boegelbot/easybuild/"5.0.x" source init_env_easybuild_develop.sh; fi; EB_PR=3548 EB_ARGS="Score-P-8.4-gompi-2024a-CUDA-12.6.0.eb Score-P-8.4-gompi-2024a.eb CubeGUI-4.8-GCCcore-11.3.0.eb Scalasca-2.6.1-gompi-2022a.eb --installpath /tmp/$USER" EB_REPO=easybuild-easyblocks EB_BRANCH="5.0.x" /opt/software/slurm/bin/sbatch --job-name test_PR_3548 --ntasks=8 ~/boegelbot/eb_from_pr_upload_jsc-zen3.sh' executed!

  • exit code: 0
  • output:
Submitted batch job 5545

Test results coming soon (I hope)...

- notification for comment with ID 2598003764 processed

Message to humans: this is just bookkeeping information for me,
it is of no use to you (unless you think I have a bug, which I don't).

@boegelbot
Copy link

Test report by @boegelbot

Overview of tested easyconfigs (in order)

  • SUCCESS Score-P-8.4-gompi-2024a-CUDA-12.6.0.eb
  • SUCCESS Score-P-8.4-gompi-2024a.eb
  • SUCCESS CubeGUI-4.8-GCCcore-11.3.0.eb
  • SUCCESS Scalasca-2.6.1-gompi-2022a.eb

Build succeeded for 4 out of 4 (4 easyconfigs in total)
jsczen3c1.int.jsc-zen3.fz-juelich.de - Linux Rocky Linux 9.5, x86_64, AMD EPYC-Milan Processor (zen3), Python 3.9.21
See https://gist.github.com/boegelbot/0bf4ba1cc26dd1e58ae15f99418dc850 for a full test report.

Copy link
Member

@SebastianAchilles SebastianAchilles left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@SebastianAchilles
Copy link
Member

Going in, thanks @Thyre!

@SebastianAchilles SebastianAchilles merged commit b3df51c into easybuilders:5.0.x Jan 18, 2025
19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants