Hi Tim,
Welcome to the wonderful world of EasyBuild!
On 07/09/16 01:29, Tim Slauson wrote:
Hello EasyBuilders,
I'm trying out EasyBuild for the first time (version 2.8.2), and am
having trouble hooking in the vendor-provided MPI modules on one of
our clusters. The modules all follow the same naming convention of
name/compiler/ver (e.g. openmpi/gnu/1.10.2, mvapich2-psm/intel/2.1,
...). After reading about EXTERNAL_MODULE, I adapted the
gompi-2016.06.eb toolchain easyconfig:
3c3
< name = 'gompi'
---
> name = 'pic-gompi'
17c17
< ('OpenMPI', '1.10.3', '', ('GCC', gccver)),
---
> ('openmpi/gnu/1.10.2', EXTERNAL_MODULE),
And wrote external module metadata:
[openmpi/gnu/1.10.2]
name = OpenMPI
version = 1.10.2
prefix = MPI_HOME
And defined a new toolchain:
from easybuild.toolchains.gompi import Gompi
class PicGompi(Gompi):
"""PIC compiler toolchain with GNU compilers and OpenMPI"""
NAME = 'pic-gompi'
This allows me to build a toolchain. But when I run this:
eb FFTW-3.3.4-gompi-2016.06.eb --try-toolchain=pic-gompi,2016.06
I get this error:
ERROR: Build of
/tmp/eb-HkZNza/tweaked_easyconfigs/FFTW-3.3.4-pic-gompi-2016.06.eb
failed (err: "build failed (first 300 chars): List of toolchain
dependency modules and toolchain definition do not match (found
['GCC/5.4.0-2.26', 'openmpi/gnu/1.10.2'] vs expected set(['GCC',
'OpenMPI']))")
I get similar errors when repeating this process for the other
vendor-provided libraries. Can somebody please point me in the right
direction?
You're hitting this because EasyBuild verifies the module for the
toolchain with the definition of the toolchain.
This is done using module names, see for example
https://github.com/hpcugent/easybuild-framework/blob/master/easybuild/toolchains/mpi/openmpi.py#L44
.
You should be able to fix your problem by including this in your
pic-gompi toolchain definition (i.e. reset it to the default):
MPI_MODULE_NAME = []
This should only affect the toolchain definition verification mechanism,
nothing else.
regards,
Kenneth