On 2/20/20 1:01 PM, Loris Bennett wrote:
> Åke Sandgren <[email protected]> writes:
> 
>> On 2/13/20 4:32 PM, Loris Bennett wrote:
>>> PS: Slightly strangely, EB has a patch for PMIx 2.2.1 but no actual EC:
>>
>> Now available in
>> https://github.com/easybuilders/easybuild-easyconfigs/pull/9877
> 
> Am I going to need ECs for all the versions of PMIx I need combined with
> all the toolchains I'm using?  Or should using --minimal-toolchains
> allow me to get away with PMIx which are just dependent on GCCcore?

You will need easyconfigs for PMIx of version x for whatever GCCcore
version is used in the toolchain you build something for.
We use PMIx-3.1.4 for the OpenMPI version used in foss(cuda)/2019b since
that version of OpenMPI understands PMIx 3.1.4 (i.e. OpenMPI 3.1.4 does
understand PMIx 3.1.4, but OpenMPI 3.1.2 and 3.1.3 only knows PMIx 3.0.x

There is a reason for the somewhat complicated rules for OpenMPI vs PMIx
in our hooks. The ones in PR is slightly old and I could send you our
current setup if you want it.

> If I try
> 
>   [build@g004 ~]$ eb TensorFlow-2.1.0-fosscuda-2019b-Python-3.7.4.eb --robot 
> --force --dry-run --minimal-toolchains
>   == temporary log file in case of crash /tmp/eb-i7YVXd/easybuild-Gj_6g8.log
>   == Running parse hook for TensorFlow-2.1.0-fosscuda-2019b-Python-3.7.4.eb...
>   == Running parse hook for fosscuda-2019b.eb...
>   == Running parse hook for GCC-8.3.0.eb...
>   == Running parse hook for CUDA-10.1.243-GCC-8.3.0.eb...
>   == Running parse hook for GCC-8.3.0.eb...
>   == Running parse hook for OpenMPI-3.1.4-gcccuda-2019b.eb...
>   == Running parse hook for gcccuda-2019b.eb...
>   == Running parse hook for GCCcore-8.3.0.eb...
>   == Running parse hook for binutils-2.32-GCCcore-8.3.0.eb...
>   == Running parse hook for M4-1.4.18.eb...
>   == Running parse hook for binutils-2.32.eb...
>   == Running parse hook for GCCcore-8.3.0.eb...
> 
>   WARNING: Failed to determine toolchain hierarchy for fosscuda/2019b when 
> determining subtoolchain for dependency 'Bazel': 'Failed to process 
> easyconfig 
> /trinity/shared/easybuild/software/EasyBuild/4.1.1/easybuild/easyconfigs/o/OpenMPI/OpenMPI-3.1.4-gcccuda-2019b.eb:
>  Failed to determine minimal toolchain for dep PMIx 2.1.3'
> 
>   ERROR: Failed to process easyconfig 
> /trinity/shared/easybuild/software/EasyBuild/4.1.1/easybuild/easyconfigs/t/TensorFlow/TensorFlow-2.1.0-fosscuda-2019b-Python-3.7.4.eb:
>  Failed to determine minimal toolchain for dep Bazel 0.29.1
> 
> However, it seems like the right EC for Bazel is available:
> 
>   [build@g004 ~]$ eb -S ^Bazel-0.29.1-GCCcore*
>   
> CFGS1=/trinity/shared/easybuild/software/EasyBuild/4.1.1/easybuild/easyconfigs/b/Bazel
>    * $CFGS1/Bazel-0.29.1-GCCcore-8.2.0.eb
>    * $CFGS1/Bazel-0.29.1-GCCcore-8.3.0.eb
> 
> Or is --minimal-toolchains not the right approach here?

--minimal-toolchains only tells EB to start looking at the lowest
toolchain/compiler level, i.e. GCCcore, and search upwards to the
topmost level, foss/intel, for easyconfigs. By default it searches top-down.

-- 
Ake Sandgren, HPC2N, Umea University, S-90187 Umea, Sweden
Internet: [email protected]   Phone: +46 90 7866134 Fax: +46 90-580 14
Mobile: +46 70 7716134 WWW: http://www.hpc2n.umu.se

Reply via email to