Hello,

I am new to EasyBuild and am trying to create a custom toolchain which uses
external dependencies where the compiler and MPI are have manually created
modules outside of Easybuild.

I created an easyconfig file imv2.eb:
easyblock = "Toolchain"
name = 'imv2'
version = '1.1.2'
homepage = 'http://software.intel.com/en-us/intel-cluster-toolkit-compiler/'
description = """Intel Cluster Toolkit Compiler Edition provides Intel C/C++
and Fortran compilers, Intel MPI & Intel MKL."""
toolchain = {'name': 'dummy', 'version': 'dummy'}
dependencies = [                                         # version/released
    ('intel/18.0.0', EXTERNAL_MODULE),
    ('mvapich2/2.3rc2', EXTERNAL_MODULE),
]
moduleclass = 'toolchain'
module_depends_on = {('intel/18.0.0'), ('mvapich2/2.3rc2')}

and easyblock:
from easybuild.toolchains.mpi.mvapich2 import Mvapich2
from easybuild.toolchains.fft.intelfftw import IntelFFTW
from easybuild.toolchains.linalg.intelmkl import IntelMKL
from easybuild.toolchains.iccifort import IccIfort

class Imv2(IccIfort, Mvapich2, IntelMKL, IntelFFTW):
    """
    Compiler toolchain with Intel compilers (icc/ifort), MVAPICH2 MPI,
    Intel Math Kernel Library (MKL) and Intel FFTW wrappers.
    """
    NAME = 'imv2'
    SUBTOOLCHAIN = IccIfort.NAME

However when I try installing a package that depends on this toolchain I get
the following message:

FAILED: Installation ended unsuccessfully (build directory: /users/PZS0530/
skhuvis/.local/easybuild/build/ScaLAPACK/2.0.2/imv2-1.1.2): build failed
(first 300 chars): List of toolchain dependency modules and toolchain
definition do not match (found ['intel/18.0.0', 'mvapich2/2.3rc2'] vs expected
set(['MVAPICH2', 'icc', 'imkl', 'ifort']))

What would be the correct way to create this module to use external modules?

Thank you,
Samuel Khuvis
Scientific Applications Engineer
Ohio Supercomputer Center (OSC)
A member of the Ohio Technology Consortium
1224 Kinnear Road, Columbus, Ohio 43212

Reply via email to