Skip to content

Brainstorm meeting (June 26th 2020)

Kenneth Hoste edited this page Jun 26, 2020 · 1 revision
  • Fri June 26th 2020, 3pm-5pm CEST

  • attending: Alan, Caspar, Kenneth

  • How to define EESSI software stack?

    • subdir per CPU arch?

    • ideally we want all software everywhere

    • leverage last EB release as much as possible

    • list of easyconfigs (not copies of easyconfigs?)

      • central list (all CPU archs)
      • exceptions + configuration per CPU arch
    • use hooks to customize stuff

      • EasyBuild version-specific hooks implementations
      • software-specific hooks?
        • eb --hooks=eesii_hooks/*.py
        • openmpi_hook.py
          if name == 'OpenMPI':
            ...
    • easyblocks & easyconfigs

      • only for fixes that are being pushed upstream
      • keep track of PRs + person who follows up in a comment
      • structured so follow-up can be automated (merged? included in release?)
    • build list

      foo-bar1.2 1.2.3-foss-2020a ALL
      bar.eb EXCEPT=aarch64,haswell
      three.eb ONLY=skylake
      four.eb
      
      # fixed easyconfigs
      aarch64/four.eb  # like JSC overlay
      
    • environment variables through hooks?

    • don't use eb --robot, drive installations through a Python script that uses EasyBuild as a library

    • do we aim for only native builds?

      • probably...
      • cross-compiling can be painful
      • emulation of archs through QEMU is another option
    • pilot

      OpenFOAM 7-foss-2020a ALL
      GROMACS 2020-foss-2020a ALL
      TensorFlow 2.1-foss-2020a EXCEPT=gpu
      TensorFlow 2.1-fosscuda-2020a ONLY=gpu
      
    • non-GPU Skylake box: x86_64/skylake_avx512, x86_64/haswell (?) Skylake box with V100: x86_64/skylake-volta, x86_64/skylake, x86_64/haswell

    • building for AVX2 on Skylake (e.g. NAMD, GROMACS)

      NAMD 1.0-foss-2020a MAP={skylake_avx512,cascadelake}:optarch=avx2
      
    • versioned build lists in the end?

      • similar to generations of easyconfigs
  • action points

    • define build list in Python dict (build-list-2020a.py)
      • maybe revise JSON/YAML/TOML later?
      • comments?
    • driver script
      • parses build list
      • determines installpath
      • EasyBuild configuration
      • installs missing easyconfigs (in order)
    • init script
      • prepares env for current host for clients
    • on generoso
    • tests?
Clone this wiki locally