Dear Loris, will you not overwrite the existing module if you use --force? I.e. the module will always point to the software directory of the architecture you have build last.
We have done something similar and yes, we treat EasyBuild itself differently. I will try to outline our setup: * we have a basepath /cm/shared/uniol * in the basepath we have modules and sw * initially, our module path only consists of /cm/shared/uniol/modules/core in this path we put the EasyBuild modules and modules we call hpc-env * if you load hpc-env/<ver> the module path is extended with paths like /cm/shared/uniol/<arch>/<ver>/<cat>, where <arch> can be zen3, zen4, ice, sky or so. <ver> is actually referring to the GCCcore version but this is not so relevant. <cat> are the module classes like bio, chem and so on * the hpc-env module uses an environment variable to know which is the architecture of the current node, so it shows only that part of the module tree * the sw-directory has the same structure, so .../sw/<arch>/<ver> and we use --subdir-modules and --subdir-software to install the software and module in the right paths (we have setup an alias that also identifies <arch> from the env variable) * we also have a SYSTEM arch for everything build with toolchain = SYSTEM (../sw/SYSTEM and correspondingly ../modules/SYSTEM), we link the SYSTEM-modules into all <arch>/<ver> (hidden, if there is non-SYSTEM version) * Easybuild itself is installed directly in sw but it could also go into SYSTEM (or your generic). It means that you need a lot of space and every module is installed several times, but you are only reusing a working Easyconfig and it can be somewhat automatized. Hope this helps. Best wishes Stefan -- Scientific Computing Carl von Ossietzky University Oldenburg School of Mathematics and Natural Sciences 26111 Oldenburg, Germany Office: W03 1-139 Phone: +49-441-798 3147 E-Mail: [email protected] www: http://www.uni-oldenburg.de/fk5/wr -----Ursprüngliche Nachricht----- Von: [email protected] <[email protected]> Im Auftrag von Loris Bennett Gesendet: Donnerstag, 21. September 2023 17:12 An: easybuild <[email protected]> Betreff: [easybuild] Installing EasyBuild as 'generic' architecture? ACHTUNG! Diese E-Mail kommt von Extern! WARNING! This email originated off-campus. Hi, EasyBuild plus all our software built with EasyBuild is currently installed under /nfs/easybuild/software/EasyBuild However, I am reinstalling software compiled for different microarchitectures in a directory structure which looks like the following: /nfs/easybuild/arch ├── generic └── x86_64 ├── amd │ └── zen3 └── intel ├── cascadelake └── skylake_avx512 At the moment I am essentially using something like eb --prefix=/nfs/easybuild/arch/x86_64/intel/cascadelake --force ... to rebuild modules. However, at some point I will want to avoid using '--force', but IIUC that will mean that I have to 'unuse' the original module path /nfs/easybuild/software/EasyBuild/modules in order to build modules which already exist in the non-architecture-specific path. This in turn, since EasyBuild module itself is in that path, would deactivate the EasyBuild module. Does that mean I have to reinstall EasyBuild under /nfs/easybuild/arch/generic which I guess would be the most consistent solution, or is there an alternative? Cheers, Loris -- Dr. Loris Bennett (Herr/Mr) ZEDAT, Freie Universität Berlin
smime.p7s
Description: S/MIME cryptographic signature

