Hi Maik,

there is already an in-between solution for Python that sits at the
compiler level using the "golf" toolchain which is a subset of "foss"
(everything except MPI, so GCC + OpenBLAS + LAPACK + FFTW, but no ScaLAPACK
and no FFTW with MPI).
https://github.com/easybuilders/easybuild-easyconfigs/blob/master/easybuild/easyconfigs/p/Python/Python-3.6.4-golf-2018a.eb
it's identical to foss-2018a except for mpi4py.

I've got some PRs in transit to get the remaining pieces in there:
iimkl + Python 3.6.4 built with it (subset of "intel")
https://github.com/easybuilders/easybuild-easyconfigs/pull/6092
which depends on this easyblock PR:
https://github.com/easybuilders/easybuild-easyblocks/pull/1393
 (which Kenneth reviewed but then fell through the cracks)

and last but not least my toolchain PRs to allow multiple subtoolchains:
https://github.com/easybuilders/easybuild-framework/pull/2466

this allows a lot of sharing e.g. for goolfc (=fosscuda):
goolf => subtoolchains: gompi and golf
goolfc => subtoolchains: gompic and golfc
golfc => subtoolchains: gcccuda and golf
so with this structure anything compiled without MPI and without CUDA, but
with linear algebra, can be shared.

Cheers,
Bart



On Wed, 20 Jun 2018 at 08:59, Vanzo, Davide <[email protected]>
wrote:

> Maik,
>
> I double Jack's explanation on why QT5 is built at the highest toolchain
> level. Similarly in our stack we moved Python to the GCC/iccifort level by
> removing the packages that depend on MPI/FFTW and install Qt5 with the
> GCC/iccofort toolchains.
> Moving Python to a lower toolchain in the official easyconfig repo is
> something that we have been discussing for a while and we are making steps
> in that directions. In the meantime nothing stops you to do are we and Jack
> did.
>
> As for CUDA, the use of toolchains like `fosscuda` and `intelcuda` allow
> to avoid the need of adding version suffixes for MPI and all other software
> built with CUDA support. In our case we prefer to avoid version suffixes as
> much as we can since they introduce unnecessary complication for our users.
> Obviously this is possible only if you are using hierarchical modules.
>
> --
> *Davide Vanzo, PhD*
> *Application Developer*
> *Adjunct Assistant Professor of Chemical and Biomolecular Engineering*
> Advanced Computing Center for Research and Education (ACCRE)
> Vanderbilt University - Hill Center 201
> (615)-875-9137
> www.vanderbilt.edu/accre
>
>
> On 2018-06-20 10:19:58-05:00 [email protected] wrote:
>
> [oops.... meant to send to the list]
>
>
> -------- Forwarded Message --------
> Subject:      Re: [easybuild] Minimal vs full toolchain, Qt, CUDA etc.
> Date:         Wed, 20 Jun 2018 09:56:06 -0500
> From:         Jack Perdue &amp;lt;[email protected]&amp;gt;
> To:   Maik Schmidt &amp;lt;[email protected]&amp;gt;
>
>
>
> Howdy Maik,
>
> Here we use a stripped down Python as a builddependency to build:
>
>  &amp;amp;nbsp; Qt5-5.10.1-GCCcore-6.4.0-Python-2.7.14-bare.eb
> and
>  &amp;amp;nbsp; Qt5-5.10.1-GCCcore-6.4.0-Python-3.6.3-bare.eb
>
> By default, the full Python needs MPI/maths (for numpy) so
> if you build Qt with the regular Python you have to promote
> the toolchain.&amp;amp;nbsp; Python-bare just provides the basics.
>
> Works fairly well.
>
> There are other initiatives in EB to clean this up
> using Python-core and the like.&amp;amp;nbsp; But this is what
> we've been using for now.
>
> As for CUDA.... I wondered the same.... the answer was that
> OpenMPI has hooks for CUDA so if you include CUDA early
> in the toolchain (while building OpenMPI) then you get
> some MPI-enabled CUDA.&amp;amp;nbsp; I/we haven't much experience
> with that yet (curious to see what TensorFlow can do) but
> that's the reasoning for that (though I do wish it was easier
> like you suggest)
>
> As ever, there are examples at:
>
>  &amp;amp;nbsp; 
> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.siliconslick.com%2Feasybuild%2Feasyconfigs%2F&amp;amp;amp;data=02%7C01%7Cdavide.vanzo%40vanderbilt.edu%7C969e7c72f65249da661e08d5d6c145e8%7Cba5a7f39e3be4ab3b45067fa80faecad%7C0%7C1%7C636651047945281105&amp;amp;amp;sdata=uZgbznCATjG8G%2BC6o5Pxkvz1UtS2qIJ8NiLSqYVn9Ys%3D&amp;amp;amp;reserved=0
>
> See ada and terra.
>
> Jack Perdue
> Lead Systems Administrator
> High Performance Research Computing
> TAMU Division of [email protected]    
> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fhprc.tamu.edu&amp;amp;amp;data=02%7C01%7Cdavide.vanzo%40vanderbilt.edu%7C969e7c72f65249da661e08d5d6c145e8%7Cba5a7f39e3be4ab3b45067fa80faecad%7C0%7C1%7C636651047945281105&amp;amp;amp;sdata=7DXnIKRWuF6BXcxiI1YSxFxdv7M8W8Gdb116krNrxUQ%3D&amp;amp;amp;reserved=0
> HPRC Helpdesk: [email protected]
>
> On 06/20/2018 09:21 AM, Maik Schmidt wrote:
> &amp;amp;gt; Hi, I've been asked by one of our users why Qt5 is built with 
> the full
> &amp;amp;gt; toolchain (foss or intel) even though it does not really use MPI 
> or
> &amp;amp;gt; MKL for that matter. I've looked at the dependencies of Qt 
> itself and
> &amp;amp;gt; apparently he is correct, why is this not GCCcore? There's no 
> reason
> &amp;amp;gt; to use the full toolchain here, right?
> &amp;amp;gt;
> &amp;amp;gt; On another note, what has been the reasoning behind introducing 
> an
> &amp;amp;gt; entire new toolchain only to add CUDA? it really makes not much 
> sense
> &amp;amp;gt; to me, because then I have to build a lot of duplicate software 
> that
> &amp;amp;gt; doesn't even need CUDA just to support this toolchain (foss vs
> &amp;amp;gt; fosscuda)... e.g. why would I need a HDF5 -fosscuda if it is 
> exactly
> &amp;amp;gt; the same as the -foss version?
> &amp;amp;gt;
> &amp;amp;gt; The solution with just adding a versionsuffix and CUDA as a 
> dependency
> &amp;amp;gt; to software requiring it seemed much cleaner to me, but maybe I'm
> &amp;amp;gt; missing something here...
> &amp;amp;gt;
> &amp;amp;gt; Thanks for your input,
> &amp;amp;gt;
> &amp;amp;gt; Maik
> &amp;amp;gt;
>
> &amp;lt;/[email protected]&amp;gt;&amp;lt;/[email protected]&amp;gt;
>
>

-- 
Dr. Bart E. Oldeman | [email protected] | [email protected]
Scientific Computing Analyst / Analyste en calcul scientifique
McGill HPC Centre / Centre de Calcul Haute Performance de McGill |
http://www.hpc.mcgill.ca
Calcul Québec | http://www.calculquebec.ca
Compute/Calcul Canada | http://www.computecanada.ca
Tel/Tél: 514-396-8926 | Fax/Télécopieur: 514-396-8934

Reply via email to