Hello,

Specifically for Intel I think for HMNS treat icc and ifort as packages and 
only toolchain have MODULEPATH

The solution I think could be.
Remove from icc and ifort module the  modulepath for Compiler/intel
Rather have iccifort module have a modulePath for iccifort

When loading icc or ifort separately you wouldn’t see the modules built with 
intel or iccifortcuda, but rather you would see packages when loading the 
toolchain: iccifort or intel

impi module would reside in iccifort or iccifortcuda dependening on toolchain. 
The module would be in separate trees.

When loading either iccifort or iccifortcuda you should see the impi from its 
toolchain tree. The same goes with imkl, it should be in a tree for iimpi or 
iimpic since that is the toolchain used. Both intel and intelcuda should be 
treated as separate module trees. When loading intel it should have MODULEPATH 
for Compiler/intel and intelcuda should have MODULEPATH for Compiler/intel-CUDA.

Intel should load  -> iccifort, iimpi, imkl
Intel Cuda -> iccifortcuda, iimpic, imkl

No need to have explicit load for icc and ifort in the intel module since the 
iccifort toolchain will take care of this. Keep in mind both iccifort and 
iccifortcuda will load icc and ifort that will come from the same module. They 
would reside under Core/

If this is done this way we can see the intelcuda tree while having icc and 
ifort loaded since they wouldn’t be loading the intel. In my environment, I 
treat all toolchains as family so that I can’t have an instance where intel and 
intelcuda are loaded at the same time.



From: easybuild-requ...@lists.ugent.be 
[mailto:easybuild-requ...@lists.ugent.be] On Behalf Of Alan O'Cais
Sent: Thursday, March 2, 2017 10:32 AM
To: easybuild@lists.ugent.be
Subject: Re: [easybuild] MODULEPATH issue when supporting intel and intelcuda 
toolchain concurrently

Dear Shahzeb,

I think this is probably the same (or at least related to the) issue that is 
being discussed in 
https://github.com/hpcugent/easybuild-framework/pull/2135<https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_hpcugent_easybuild-2Dframework_pull_2135&d=DwMFaQ&c=UE1eNsedaKncO0Yl_u8bfw&r=RMJdCm7m5fiPWhajwKUnEW5yn4eK2YdUWW-MLVShghg&m=CsWNr_6qdkJE_RoT54a_jmrskakWb47pfZcmQpcT4-Q&s=rtu9QLIWL9XOUXetPh9eal99n64mPjldU22rDdTP9GE&e=>

It also exposes one of the problems of a HMNS, the potential non-uniqueness of 
module names. The problem with not building software with minimal toolchains is 
that you can have multiple copies at various levels of your toolchain 
hierarchy. What module you end up loading is then dependent on the order that 
you load things (perhaps not in Lmod because it is hierarchy-aware but 
definitely for other module tools). This can clearly lead to issues.

Alan

On 2 March 2017 at 15:32, Siddiqui, Shahzeb 
<shahzeb.siddi...@pfizer.com<mailto:shahzeb.siddi...@pfizer.com>> wrote:
Hello,

I seem to notice an issue when building modules using HierarchicalNamingScheme 
when building out the intel and intelcuda toolchains.

I notice that MODULEPATH is set for icc and ifort for intel directory. This is 
correct when setting up intel toolchain.

hpcswadm@hpcv18$grep -iR MODULEPATH
icc/2017.1.132-GCC-5.2.0.lua:prepend_path("MODULEPATH", 
"/nfs/grid/software/testing/RHEL7/easybuild/modules/all/Compiler/intel/2017.1.132-GCC-5.2.0")
ifort/2017.1.132-GCC-5.2.0.lua:prepend_path("MODULEPATH", 
"/nfs/grid/software/testing/RHEL7/easybuild/modules/all/Compiler/intel/2017.1.132-GCC-5.2.0")

impi  gets installed in the path for intel as expected.

hpcswadm@hpcv18$ls -R 
/nfs/grid/software/testing/RHEL7/easybuild/modules/all/Compiler/intel/2017.1.132-GCC-5.2.0/
/nfs/grid/software/testing/RHEL7/easybuild/modules/all/Compiler/intel/2017.1.132-GCC-5.2.0/:
impi

/nfs/grid/software/testing/RHEL7/easybuild/modules/all/Compiler/intel/2017.1.132-GCC-5.2.0/impi:
2017.1.132.lua

As for impi built with iccifortcuda it gets installed in

hpcswadm@hpcv18$ls -R 
/nfs/grid/software/testing/RHEL7/easybuild/modules/all/Compiler/intel-CUDA/
/nfs/grid/software/testing/RHEL7/easybuild/modules/all/Compiler/intel-CUDA/:
2017.1.132-GCC-5.2.0-7.5.18

/nfs/grid/software/testing/RHEL7/easybuild/modules/all/Compiler/intel-CUDA/2017.1.132-GCC-5.2.0-7.5.18:
impi

/nfs/grid/software/testing/RHEL7/easybuild/modules/all/Compiler/intel-CUDA/2017.1.132-GCC-5.2.0-7.5.18/impi:
2017.1.132.lua

The problem is when loading iimpic toolchain it loads up icc and ifort modules 
along with impi that belongs to the module tree from intel and not intel-CUDA. 
I am not sure if this is a problem, but it seems like the impi is not being 
picked up correctly.

hpcswadm@hpcv18$ml av iimpi
------------------------------------- 
/nfs/grid/software/testing/RHEL7/easybuild/modules/all/Core 
-------------------------------------
   iimpi/2017.01-GCC-5.2.0 (TC)    iimpic/2017.01-GCC-5.2.0 (TC)

hpcswadm@hpcv18$ml

Currently Loaded Modules:
  1) EasyBuild/3.1.0

hpcswadm@hpcv18$ml iimpic
Currently Loaded Modules:
  1) EasyBuild/3.1.0   3) icc/2017.1.132-GCC-5.2.0   (I)   5) impi/2017.1.132 
(I)   7) iimpic/2017.01-GCC-5.2.0 (
TC)
  2) GCC/5.2.0         4) ifort/2017.1.132-GCC-5.2.0 (I)   6) CUDA/7.5.18

hpcswadm@hpcv18$which mpicc
/nfs/grid/software/testing/RHEL7/easybuild/software/Compiler/intel/2017.1.132-GCC-5.2.0/impi/2017.1.132/bin64/mpicc

The one that should be loaded is from
/nfs/grid/software/testing/RHEL7/easybuild/software/Compiler/intel-CUDA/2017.1.132-GCC-5.2.0-7.5.18/impi/2017.1.132/bin64/mpicc

I think the impi module should not sit inside intel directory or somehow icc 
and ifort MODULEPATH need to be changed to intel-CUDA when loading iimpic
/nfs/grid/software/testing/RHEL7/easybuild/modules/all/Compiler/intel/2017.1.132-GCC-5.2.0
 ----------------------
   impi/2017.1.132 (I,L)

Anyone else come across this issue.


Shahzeb Siddiqui
HPC Linux Engineer
B2220-447.2
Groton, CT




--
Dr. Alan O'Cais
E-CAM Software Manager
Juelich Supercomputing Centre
Forschungszentrum Juelich GmbH
52425 Juelich, Germany

Phone: +49 2461 61 5213
Fax: +49 2461 61 6656
E-mail: a.oc...@fz-juelich.de<mailto:a.oc...@fz-juelich.de>
WWW:    
http://www.fz-juelich.de/ias/jsc/EN<https://urldefense.proofpoint.com/v2/url?u=http-3A__www.fz-2Djuelich.de_ias_jsc_EN&d=DwMFaQ&c=UE1eNsedaKncO0Yl_u8bfw&r=RMJdCm7m5fiPWhajwKUnEW5yn4eK2YdUWW-MLVShghg&m=CsWNr_6qdkJE_RoT54a_jmrskakWb47pfZcmQpcT4-Q&s=uaDU1IrFmBcfzH691zqnnIIsDG_OoIzF-6l1aLSfHT4&e=>


------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------
Forschungszentrum Juelich GmbH
52425 Juelich
Sitz der Gesellschaft: Juelich
Eingetragen im Handelsregister des Amtsgerichts Dueren Nr. HR B 3498
Vorsitzender des Aufsichtsrats: MinDir Dr. Karl Eugen Huthmacher
Geschaeftsfuehrung: Prof. Dr.-Ing. Wolfgang Marquardt (Vorsitzender),
Karsten Beneke (stellv. Vorsitzender), Prof. Dr.-Ing. Harald Bolt,
Prof. Dr. Sebastian M. Schmidt
------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------

Reply via email to