On 20/12/2018 09:44, Alan O'Cais wrote:
Hi all,

We've been essentially doing what Mikael has suggested for a few years at JSC. I see a lot of merit in how they deal with Python 2/3 at ComputeCanada, having to currently choose one or the other at install time creates unnecessary duplication of a lot of software packages.

I've also felt for some time that we could be splitting groups of python packages off from the core Python installation (for example, at JSC we already bundle all the SciPy packages), but for this to be effective without causing lots of headaches it would have to be done unilaterally. One could I suppose take the approach of GCCcore/GCC (the actual compiler is in GCCcore, GCC is a bundle that includes this as a dep), with `Pythoncore` (or whatever) being a dependency of the bundle `Python` which includes all the relevant packages. Such an approach would keep the general structure we already have.

At the end of the day though, if we implemented any of this in the shipped easyconfig repo it would be a major design choice and perhaps disruptive for a lot of our users. The EB user meeting is probably the right place to discuss exactly how we might move forward on this and whether we act in the short or medium term.

Very much plus one on this. It's also a good topic for one of the future EasyBuild conf calls, but then the people who care most about this (e.g. Mikael, Bart, Damian) should join.

If we want to make a disruptive change on how we deal with Python software, we have a great opportunity coming up with EasyBuild v4.0 (which I expect/hope to release by summer 2019).

We could look into both Python at GCCcore + ComputeCanada's approach to dealing with multiple Python versions, and provide opt-in or opt-out configuration options for different alternatives, if deemed necessary.

I've added a note on this in https://github.com/easybuilders/easybuild/issues/447.


regards,

Kenneth


Enjoy the holidays all,

Alan

On Sat, 15 Dec 2018 at 02:43, Mikael Öhman <[email protected] <mailto:[email protected]>> wrote:

    @Bart
    While I agree with basically everything you have said, I think there
    is diminishing returns here. I'm not to concerned with an extra
    numpy, but primarily with theentire dependency graph that gets
    pulled up to toolchain level due to basic libpython

    @Jack

        It has been (and still is )in the works....
        https://github.com/easybuilders/easybuild-easyconfigs/pull/4962
        https://github.com/easybuilders/easybuild-easyconfigs/pull/5072
        Python-2.7.15-GCCcore-7.3.0-bare.eb   was included in EB 3.7.1.
        (meant as a builddependency only)


    Yes, I know of these, but I disagree with this approach; I.M.O the
    existance of this package would barely make any difference
    whatsoever, as most things affected here, like Mesa, needs a runtime
    dep.

        Its tricky. ...


    I.M.H.O, it's really not tricky at all. Split the current Python
    module; put the stuff that can go into GCCcore there (including the
    interpreter itself), and keep any package that benefits from the
    full toolchain there.
    No tricks, no shadowing of libraries, no build-deps, no changes to EB.

    For 2018b, I did this for our clusters; I literally just took the
    existing Python easyconfig, and split the list of packages. Then as
    I encountered Mesa, Qt, etc. that now could then be moved down to
    GCCcore, i did so as well.
    There was only one actual issue, and that was the link flags for
    distutils;
    https://github.com/easybuilders/easybuild-easyblocks/pull/1455 (the
    fix is very simple)

    As a concrete example, I simply think we replace what we basically
    have today:
    - Python-2.7.15-intel-2018b.eb (incl. numpy and friends)
    - Python-2.7.15-foss-2018b.eb (incl. numpy and friends)
    - Python-2.7.15-fosscuda-2018b.eb (incl. numpy and friends)
    - Mesa-...-intel-2018b-Python-2.7.15.eb + many more
    - Mesa-...-foss-2018b-Python-2.7.15.eb + many more
    - Mesa-...-fosscuda-2018b-Python-2.7.15.eb + many more

    with:
    - Python-2.7.15-GCCcore-7.3.0.eb  (excl numpy and friends)
    - Mesa-...-GCCcore-7.3.0-Python-2.7.15.eb + many more
    - numpy-intel-2018b-Python-2.7.15.eb
    - numpy-foss-2018b-Python-2.7.15.eb
    - numpy-fosscuda-2018b-Python-2.7.15.eb
    (or any other equivalent solution which lets libpython exist as a
    normal runtime dep at GCCcore level)
    As a side-effect of this, there wouldn't be any need to create a
    special Python-bare just for build deps.



--
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: [email protected] <mailto:[email protected]>
WWW: http://www.fz-juelich.de/ias/jsc/EN


------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------
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