Hi Joachim,

On 11/10/16 11:57, Joachim Hein wrote:
Hi,

We are still struggling to build a CUDA 7.5.18 with EB 2.9.0. It seems to be failing in the “sanity check”, though the actual nvidia installer doesn’t give an error and the bin directory looks reasonable to us. We get a “KeyError: ‘GCC’

Anyone could comment with regards to what went wrong:

-bash-4.2$ eb CUDA-7.5.18.eb
== temporary log file in case of crash /tmp/eb-wjA2JG/easybuild-2WrNil.log
== processing EasyBuild easyconfig /sw/easybuild/software/Core/EasyBuild/2.9.0/lib/python2.7/site-packages/easybuild_easyconfigs-2.9.0-py2.7.egg/easybuild/easyconfigs/c/CUDA/CUDA-7.5.18.eb
== building and installing Core/CUDA/7.5.18...
== fetching files...
== creating build dir, resetting environment...
== unpacking...
== patching...
== preparing...
== configuring...
== building...
== testing...
== installing...
== taking care of extensions...
== postprocessing...
== sanity checking...
ERROR: Traceback (most recent call last):
File "/sw/easybuild/software/Core/EasyBuild/2.9.0/lib/python2.7/site-packages/easybuild_framework-2.9.0-py2.7.egg/easybuild/main.py", line 115, in build_and_install_software (ec_res['success'], app_log, err) = build_and_install_one(ec, init_env) File "/sw/easybuild/software/Core/EasyBuild/2.9.0/lib/python2.7/site-packages/easybuild_framework-2.9.0-py2.7.egg/easybuild/framework/easyblock.py", line 2376, in build_and_install_one
    result = app.run_all_steps(run_test_cases=run_test_cases)
File "/sw/easybuild/software/Core/EasyBuild/2.9.0/lib/python2.7/site-packages/easybuild_framework-2.9.0-py2.7.egg/easybuild/framework/easyblock.py", line 2292, in run_all_steps
    self.run_step(step_name, step_methods)
File "/sw/easybuild/software/Core/EasyBuild/2.9.0/lib/python2.7/site-packages/easybuild_framework-2.9.0-py2.7.egg/easybuild/framework/easyblock.py", line 2171, in run_step
    step_method(self)()
File "/sw/easybuild/software/Core/EasyBuild/2.9.0/lib/python2.7/site-packages/easybuild_easyblocks-2.9.0-py2.7.egg/easybuild/easyblocks/c/cuda.py", line 137, in sanity_check_step
    super(EB_CUDA, self).sanity_check_step(custom_paths=custom_paths)
File "/sw/easybuild/software/Core/EasyBuild/2.9.0/lib/python2.7/site-packages/easybuild_framework-2.9.0-py2.7.egg/easybuild/framework/easyblock.py", line 1790, in sanity_check_step
    self._sanity_check_step(*args, **kwargs)
File "/sw/easybuild/software/Core/EasyBuild/2.9.0/lib/python2.7/site-packages/easybuild_framework-2.9.0-py2.7.egg/easybuild/framework/easyblock.py", line 1910, in _sanity_check_step
    fake_mod_data = self.load_fake_module(purge=True)
File "/sw/easybuild/software/Core/EasyBuild/2.9.0/lib/python2.7/site-packages/easybuild_framework-2.9.0-py2.7.egg/easybuild/framework/easyblock.py", line 1183, in load_fake_module
    fake_mod_path = self.make_module_step(fake=True)
File "/sw/easybuild/software/Core/EasyBuild/2.9.0/lib/python2.7/site-packages/easybuild_framework-2.9.0-py2.7.egg/easybuild/framework/easyblock.py", line 1997, in make_module_step
    txt += self.make_module_extend_modpath()
File "/sw/easybuild/software/Core/EasyBuild/2.9.0/lib/python2.7/site-packages/easybuild_framework-2.9.0-py2.7.egg/easybuild/framework/easyblock.py", line 1072, in make_module_extend_modpath
    modpath_exts = ActiveMNS().det_modpath_extensions(self.cfg)
File "/sw/easybuild/software/Core/EasyBuild/2.9.0/lib/python2.7/site-packages/easybuild_framework-2.9.0-py2.7.egg/easybuild/framework/easyconfig/easyconfig.py", line 1610, in det_modpath_extensions modpath_extensions = self.mns.det_modpath_extensions(self.check_ec_type(ec)) File "/sw/easybuild/software/Core/EasyBuild/2.9.0/lib/python2.7/site-packages/easybuild_framework-2.9.0-py2.7.egg/easybuild/tools/module_naming_scheme/hierarchical_mns.py", line 177, in det_modpath_extensions
    comp_name_ver = [comp_name, comp_ver_tmpl % comp_versions]
KeyError: 'GCC'



You're running into a known issue, see https://github.com/hpcugent/easybuild-framework/pull/1753.

Basically, in the current implementation of HierarchicalMNS, installing CUDA at the 'Core' level is not supported. You're running into an ugly traceback because of this, while PR #1753 at least throws a decent error message.

The idea was to enhance this further to also allow CUDA at the 'Core' level, but then the PR lost attention.
I'm happy to pick this up again and try and fix it...

Let's follow up in the PR?



regards,

Kenneth

Reply via email to