Skip to content

split SystemCompilerGCC out of SystemCompiler and adopt module_load_environment#3559

Merged
boegel merged 6 commits intoeasybuilders:5.0.xfrom
lexming:modload-syscomp
Feb 12, 2025
Merged

split SystemCompilerGCC out of SystemCompiler and adopt module_load_environment#3559
boegel merged 6 commits intoeasybuilders:5.0.xfrom
lexming:modload-syscomp

Conversation

@lexming
Copy link
Contributor

@lexming lexming commented Jan 17, 2025

This PR fixes three issues with SystemCompiler:

  1. fixes using SystemCompiler easyblock for wrapper around system GCC fails if an Intel license is not defined #2815

    It is not possible to have a single class that handles GCC and Intel compilers, because inheritance in python is linear, so as soon as multiple classes are added to SystemCompiler all of them come up in the chain of calls generated by super().
    Solution is to make SystemCompiler agnostic of any compiler family and create child classes per compiler family. This PR adds SystemCompilerGCC for the GCC family. I'm not adding any for icc/ifort as those easyconfigs have been already archived. In the future we could add one for intel-compilers if there is interest.
    This approach is quite simple as the main logic of handling the multiple families remains inside SystemCompiler, avoiding any duplication of code. Child classes only need to set self.compiler_class appropriately.

    This PR is an alternative solution to fix GCC-system without Intel license #3402. The present solution avoids changes in other easyblocks like EB_GCC and is more future-proof as sub-classes handling different compiler families are completely isolated.

  2. fixes RPATH wrappers break SystemCompiler easyblock #3558

    RPATH is forced disable in SystemCompilers as it has no role for this type of installation.

  3. updates SystemCompiler easyblock for replace make_module_req_guess with module_load_environment in all EasyBlocks #3527

@lexming lexming added this to the 5.0 milestone Jan 17, 2025
@boegel boegel changed the title split SystemCompilerGCC out of SystemCompiler and adopt module_load_environment split SystemCompilerGCC out of SystemCompiler and adopt module_load_environment Feb 12, 2025
Copy link
Member

@boegel boegel left a comment

Choose a reason for hiding this comment

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

lgtm

@boegel
Copy link
Member

boegel commented Feb 12, 2025

Test report by @boegel

Overview of tested easyconfigs (in order)

  • SUCCESS GCC-system.eb

Build succeeded for 1 out of 1 (1 easyconfigs in total)
node3506.doduo.os - Linux RHEL 8.8, x86_64, AMD EPYC 7552 48-Core Processor (zen2), Python 3.6.8
See https://gist.github.com/boegel/89b501fe639f2e5a3a7a76603154c133 for a full test report.

@boegel boegel merged commit 92043fd into easybuilders:5.0.x Feb 12, 2025
19 checks passed
@lexming lexming deleted the modload-syscomp branch February 13, 2025 08:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

No open projects
Status: No status

Development

Successfully merging this pull request may close these issues.

2 participants