Re: [opensuse-science] gnu-hpc packages
Hi Peter, I did overlook your message as at the time you wrote it, I was extremely busy to get a release out. I need to apologize for the delay and that I'm only answering now. Peter Hill writes:
Hello,
I just noticed the gnu-hpc packages in Tumbleweed recently, and I was wondering if there is an explanation of how they work somewhere? I had a look for some information or discussion, but I've not been able to find anything so far.
Right, I should probably have blogged about this - and I may still do.
I gather they are linked somehow to environment modules, but it's not clear to me how exactly. For instance, "petsc-devel" installs a module for PETSc, but "hdf5-devel" does not install one for HDF5. Are there certain packages we're supposed to install to get this functionality?
This could have been a bug that has been fixed meanwhile. Let me get a very brief overview: The theory is that 1. the runtime library package installs a module. 2. the devel package pulls in the runtime library package and any other package that may be needed for building. 3. There are packages which have the version numbers in the package name. Other packages don't - these are the 'master packages' which will pull in the latest version of a package thru a dependency. This allows to have mutliple version of the same base code. 4. Environment modules are used to select toolchain flavor/version, MPI flavor/version and packages and versions. By default, the latest version of a package is loaded, however, you can specify a version explicitly if you need an older version. The modules enforce some dependencies between libraries, ie you will have to select a toolchain for most of the libraries and you need to select the MPI version for MPI dependent libraries. Without this, these libraries will not become available. 5. For environment modules we use Lmod: https://lmod.readthedocs.io/en/latest/ There is the 'module' command available to load/unload, list, switch the modules. To get a help, call 'module help', modules are loaded with 'module load <module_name>[/<version>]', to get a list of accessible modules, do 'module avail', to get a list of all modules, call'module spider'.
Also, are they supposed to play nice with pkg-config? petsc-devel does install PETSc.pc, but loading the module doesn't update $PKG_CONFIG_PATH to be able to find it.
This is a bug as well, lemme check if it is still there ... The module file of the package I'm looking at right now has: prepend-path PKG_CONFIG_PATH /usr/lib/hpc/gnu7.2/openmpi3/petsc/3.7.6/lib64/pkgconfig Thus it should work. If you find any more issues, please let me know - or create a ticket on bugzilla.opensuse.org. Please add hpc-maintainer-bugs@forge.provo.novell.com as the assignee. Plan is to provide these packages with openSUSE Leap 42.3. This should give you a more stable (and enterprise grade!) environment than openSUSE Tumbleweed. Cheers, Egbert. -- To unsubscribe, e-mail: opensuse-science+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-science+owner@opensuse.org
On Montag, 22. Januar 2018 22:11:12 CEST Egbert Eich wrote:
Hi Peter,
I did overlook your message as at the time you wrote it, I was extremely busy to get a release out. I need to apologize for the delay and that I'm only answering now.
Peter Hill writes:
Hello,
I just noticed the gnu-hpc packages in Tumbleweed recently, and I was wondering if there is an explanation of how they work somewhere? I had a look for some information or discussion, but I've not been able to find anything so far.
Right, I should probably have blogged about this - and I may still do.
Any chance you can write up some documentation about this? Currently, I have a few questions A: Buildtime Every package with an MPI dependency should be build in several flavours. Each flavour has buildtime requirements on other packages, if these dependencies are flavoured as well, the flavours of all buildrequires match. Is this correct? Currently, there a some packages which only build the traditional openmpi flavour (e.g. science/scotch), some only have gnu-*-hpc flavours (e.g. petsc), and some have both (e.g. hdf5). B: Runtime The environment is setup from the module. Installing a package pulls in the requirements in the same flavour. B1: Is there a default flavour? There is non-MPI and openmpi, and now all the hpc named variants as well. B2: How is the system kept consistent? What happens if the user installs a package depending on e.g. libhdf5? Currently, it is possible to install libhdf5-101-openmpi instead of libhd5-101, which both provide 'libhdf5.so.101()(64bit)', but doing so will break any program linking to libhdf5. (Possible packaging bug - libhdf5-101-*openmpi* pulls in mpi-selector and *mpich*, while this should probably be *openmpi*). Kind regards, Stefan -- Stefan Brüns / Bergstraße 21 / 52062 Aachen home: +49 241 53809034 mobile: +49 151 50412019
participants (2)
-
Egbert Eich
-
Stefan Brüns