Hi all,

many thanks for your insights, this is all really interesting and helps me better explain this to our users :)

Concerning Qt, I see that PyQt relies on the full toolchain because of Python, but all the Qt5 easyconfigs in the official repo are also using full toolchains:
https://github.com/easybuilders/easybuild-easyconfigs/tree/master/easybuild/easyconfigs/q/Qt5
even though Python is not a dependency for these.

Couldn't at least this be changed to GCCcore then, or would this lead to trouble for people not using --minimal-toolchains?

Best,
Maik

Am 21.06.2018 um 01:54 schrieb Bart Oldeman:
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] <mailto:[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 <http://www.vanderbilt.edu/accre>

    On 2018-06-20 10:19:58-05:00 [email protected]
    <mailto:[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] 
<mailto:amp%3blt%[email protected]>&amp;gt;
        To:     Maik Schmidt &amp;lt;[email protected]
        <mailto:amp%3blt%[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 Research
        [email protected] <mailto:[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] <mailto:[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] 
<mailto:[email protected]>&amp;gt;&amp;lt;/[email protected] 
<mailto:[email protected]>&amp;gt;



--
Dr. Bart E. Oldeman | [email protected] <mailto:[email protected]> | [email protected] <mailto:[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


--
Maik Schmidt
HPC Services

Technische Universität Dresden
Zentrum für Informationsdienste und Hochleistungsrechnen (ZIH)
Willers-Bau A116
D-01062 Dresden
Telefon: +49 351 463-32836

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

Reply via email to