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