Allow different overrides for compat (i.e. CPU family) and modules (i.e. SOFTWARE_SUBDIR)#222
Conversation
…useful for e.g. running the test suite on an x86_64-based login node, when targetting RISCV-based batch nodes. The reason is that the test suite generates tests based on the available modules, so on the login node (where the reframe runtime runs), we want to see the RISCV modules. This changes allows that when someone does 'EESSI_CPU_FAMILY_OVERRIDE=x86_64 EESSI_VERSION_OVERRIDE=2025.06-001 EESSI_SOFTWARE_SUBDIR_OVERRIDE=riscv64/generic module load EESSI/2025.06'
|
I was wondering how I had danced around this in my API PR: https://github.com/EESSI/api_data/pull/16/files#diff-9cf2000c53760d837a449f874e53f792819108d3a4bf346336d0f7d082deae2cR73-R78 |
|
Looks good, can you just confirm that things still work fine without the override set (just in case). |
|
Good point, let me double check :D |
|
Now that I think about it, we should add CI for this as we do for many of the other and a test would be something like |
|
Works However, I do see this when I'm using the override and then unloading: I'm not quite sure why. Seems to come from here but... that's an LmodError, and here it's printed as a warning - that seems odd. I also don't really understand what's different on unload here that this suddenly produces this error. |
Works fine. Makes sense: without the overrides, it has no idea it should look for the |
|
Ok, so all is looking fine then. I'll built it, if you're ok with it as well, you can deploy @ocaisa |
|
bot: build repo:eessi.io-2023.06-software instance:eessi-bot-mc-aws for:arch=x86_64/amd/zen2 |
|
New job on instance
|
|
New job on instance
|
This faciliates e.g. checking of the available RISCV modules on an X86_64 host.
This is useful for e.g. running the test suite on an x86_64-based login node, when targetting RISCV-based batch nodes. The reason is that the test suite generates tests based on the available modules, so on the login node (where the reframe runtime runs), we want to see the RISCV modules.
This change allows doing
on an X86_64-based host, and make the RISC-V module stack available:
Admittedly, the usage is a bit restricted since this is really only useful if module stacks are NOT in sync and if the CPU family for the target of interest is different from the one on the host. Then again, it is an override: nothing changes in the default behavior, and you don't set it unless you have very good reasons to. It simply allows us extra flexibility when testing things.
Issue came up in EESSI/dev.eessi.io-riscv#34 (comment) when trying to set up period tests on the RISC-V cluster.