From 7f6ae2ba194c9b9f8dc840ad32059f7d29ff3944 Mon Sep 17 00:00:00 2001 From: Pramod Kumbhar Date: Mon, 5 Nov 2018 14:45:00 +0100 Subject: [PATCH 01/25] Adding base packages.yaml --- configs/compilers/packages.yaml | 115 ++++++++++++++++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 configs/compilers/packages.yaml diff --git a/configs/compilers/packages.yaml b/configs/compilers/packages.yaml new file mode 100644 index 00000000..8b74cc29 --- /dev/null +++ b/configs/compilers/packages.yaml @@ -0,0 +1,115 @@ +packages: + autoconf: + paths: + autoconf@2.69: /usr + version: [2.69] + automake: + paths: + automake@1.13.4: /usr + version: [1.13.4] + bison: + paths: + bison@3.0.4: /usr + version: [3.0.4] + bzip2: + paths: + bzip2@1.0.6: /usr + version: [1.0.6] + cairo: + paths: + cairo@1.8.10: /usr + version: [1.8.10] + curl: + paths: + curl@7.29.0: /usr + version: [7.29.0] + flex: + paths: + flex@2.5.37: /usr + version: [2.5.37] + fontconfig: + paths: + fontconfig@2.10.95: /usr + version: [2.10.95] + glib: + paths: + glib@2.50.3: /usr + version: [2.50.3] + gtkplus: + paths: + gtkplus@2.24.31: /usr + version: [2.24.31] + libjpeg: + paths: + libjpeg@1.2.90: /usr + version: [1.2.90] + libgcrypt: + paths: + libgcrypt@1.5.3: /usr + version: [1.5.3] + libmng: + paths: + libmng@1.0.10: /usr + version: [1.0.10] + libtool: + paths: + libtool@2.4.2: /usr + version: [2.4.2] + libxml2: + paths: + libxml2@2.9.1: /usr + version: [2.9.1] + m4: + paths: + m4@1.4.16: /usr + version: [1.4.16] + ncurses: + paths: + ncurses@5.9: /usr + version: [5.9] + openssl: + paths: + openssl@1.0.2k: /usr + version: [1.0.2k] + pango: + paths: + pango@1.40.4: /usr + version: [1.40.4] + pcre: + paths: + pcre@8.32+jit+utf: /usr + version: [8.32] + perl: + paths: + perl@5.16.3: /usr + version: [5.16.3] + pkg-config: + paths: + pkg-config@0.27.1: /usr + version: [0.27.1] + slurm: + paths: + slurm@17.02: /usr + buildable: False + version: [17.02] + tar: + paths: + tar@1.26: /usr + version: [1.26] + tcl: + paths: + tcl@8.5.13: /usr + version: [8.5.13] + tk: + paths: + tk@8.5.13: /usr + version: [8.5.13] + xz: + paths: + xz@5.2: /usr + version: [5.2] + all: + compiler: [intel@18.0.1, gcc@6.4.0] + providers: + mpi: [hpe-mpi, intel-mpi] + scalapack: [intel-mkl, netlib-scalapack] From 653b4e28f3a500f23abe4ae79925cb393d223091 Mon Sep 17 00:00:00 2001 From: Pramod Kumbhar Date: Tue, 6 Nov 2018 10:12:51 +0100 Subject: [PATCH 02/25] rename compiler-toolchains.yaml.in to compiler-toolchains.yaml --- packages/build-dep-packages.yaml | 2 +- .../{compiler-toolchains.yaml.in => compiler-toolchains.yaml} | 0 packages/parallel-libraries.yaml | 2 +- packages/python-packages.yaml | 2 +- packages/serial-libraries.yaml | 2 +- 5 files changed, 4 insertions(+), 4 deletions(-) rename packages/{compiler-toolchains.yaml.in => compiler-toolchains.yaml} (100%) diff --git a/packages/build-dep-packages.yaml b/packages/build-dep-packages.yaml index 6674487e..5b7fae58 100644 --- a/packages/build-dep-packages.yaml +++ b/packages/build-dep-packages.yaml @@ -9,7 +9,7 @@ axis: - python # toolchain combinations -combinations: !include packages/compiler-toolchains.yaml.in +combinations: !include packages/compiler-toolchains.yaml # list of packages to build packages: diff --git a/packages/compiler-toolchains.yaml.in b/packages/compiler-toolchains.yaml similarity index 100% rename from packages/compiler-toolchains.yaml.in rename to packages/compiler-toolchains.yaml diff --git a/packages/parallel-libraries.yaml b/packages/parallel-libraries.yaml index 16d396b8..17f13676 100644 --- a/packages/parallel-libraries.yaml +++ b/packages/parallel-libraries.yaml @@ -9,7 +9,7 @@ axis: - python # toolchain combinations -combinations: !include packages/compiler-toolchains.yaml.in +combinations: !include packages/compiler-toolchains.yaml parallel-packages: ¶llel-specs specs: diff --git a/packages/python-packages.yaml b/packages/python-packages.yaml index a5278802..be409d6a 100644 --- a/packages/python-packages.yaml +++ b/packages/python-packages.yaml @@ -7,7 +7,7 @@ axis: - python # toolchain combinations -combinations: !include packages/compiler-toolchains.yaml.in +combinations: !include packages/compiler-toolchains.yaml serial-packages: &python-specs specs: diff --git a/packages/serial-libraries.yaml b/packages/serial-libraries.yaml index 096158b9..a92a0675 100644 --- a/packages/serial-libraries.yaml +++ b/packages/serial-libraries.yaml @@ -7,7 +7,7 @@ axis: - python # toolchain combinations -combinations: !include packages/compiler-toolchains.yaml.in +combinations: !include packages/compiler-toolchains.yaml serial-packages: &serial-specs specs: From 7fab23c6fad2e94ff603acb9e402540c4a0db62c Mon Sep 17 00:00:00 2001 From: Pramod Kumbhar Date: Tue, 6 Nov 2018 20:33:35 +0100 Subject: [PATCH 03/25] Rename configurations; remove extra compilers and add missing packages --- configs/compilers/config.yaml | 8 - configs/compilers/packages.yaml | 115 --------- configs/config.yaml | 16 +- configs/packages.yaml | 229 +++++++++--------- configs/repos.yaml | 2 - ...{compiler-packages.yaml => compilers.yaml} | 8 +- packages/hpc-packages.yaml | 46 ++++ packages/parallel-libraries.yaml | 39 +-- packages/python-packages.yaml | 26 +- packages/serial-libraries.yaml | 46 +--- ...ld-dep-packages.yaml => system-tools.yaml} | 9 +- ...mpiler-toolchains.yaml => toolchains.yaml} | 19 +- 12 files changed, 212 insertions(+), 351 deletions(-) delete mode 100644 configs/compilers/config.yaml delete mode 100644 configs/compilers/packages.yaml delete mode 100644 configs/repos.yaml rename packages/{compiler-packages.yaml => compilers.yaml} (74%) create mode 100644 packages/hpc-packages.yaml rename packages/{build-dep-packages.yaml => system-tools.yaml} (78%) rename packages/{compiler-toolchains.yaml => toolchains.yaml} (70%) diff --git a/configs/compilers/config.yaml b/configs/compilers/config.yaml deleted file mode 100644 index 1c9872c9..00000000 --- a/configs/compilers/config.yaml +++ /dev/null @@ -1,8 +0,0 @@ -config: - install_tree: $SOFTS_DIR_PATH/install - source_cache: $SOFTS_DIR_PATH/.cache - module_roots: - tcl: $SOFTS_DIR_PATH/modules/tcl - lmod: $SOFTS_DIR_PATH/modules/lmod - install_path_scheme: '${COMPILERNAME}-${COMPILERVER}/${PACKAGE}-${VERSION}-${HASH:6}' - build_jobs: 36 diff --git a/configs/compilers/packages.yaml b/configs/compilers/packages.yaml deleted file mode 100644 index 8b74cc29..00000000 --- a/configs/compilers/packages.yaml +++ /dev/null @@ -1,115 +0,0 @@ -packages: - autoconf: - paths: - autoconf@2.69: /usr - version: [2.69] - automake: - paths: - automake@1.13.4: /usr - version: [1.13.4] - bison: - paths: - bison@3.0.4: /usr - version: [3.0.4] - bzip2: - paths: - bzip2@1.0.6: /usr - version: [1.0.6] - cairo: - paths: - cairo@1.8.10: /usr - version: [1.8.10] - curl: - paths: - curl@7.29.0: /usr - version: [7.29.0] - flex: - paths: - flex@2.5.37: /usr - version: [2.5.37] - fontconfig: - paths: - fontconfig@2.10.95: /usr - version: [2.10.95] - glib: - paths: - glib@2.50.3: /usr - version: [2.50.3] - gtkplus: - paths: - gtkplus@2.24.31: /usr - version: [2.24.31] - libjpeg: - paths: - libjpeg@1.2.90: /usr - version: [1.2.90] - libgcrypt: - paths: - libgcrypt@1.5.3: /usr - version: [1.5.3] - libmng: - paths: - libmng@1.0.10: /usr - version: [1.0.10] - libtool: - paths: - libtool@2.4.2: /usr - version: [2.4.2] - libxml2: - paths: - libxml2@2.9.1: /usr - version: [2.9.1] - m4: - paths: - m4@1.4.16: /usr - version: [1.4.16] - ncurses: - paths: - ncurses@5.9: /usr - version: [5.9] - openssl: - paths: - openssl@1.0.2k: /usr - version: [1.0.2k] - pango: - paths: - pango@1.40.4: /usr - version: [1.40.4] - pcre: - paths: - pcre@8.32+jit+utf: /usr - version: [8.32] - perl: - paths: - perl@5.16.3: /usr - version: [5.16.3] - pkg-config: - paths: - pkg-config@0.27.1: /usr - version: [0.27.1] - slurm: - paths: - slurm@17.02: /usr - buildable: False - version: [17.02] - tar: - paths: - tar@1.26: /usr - version: [1.26] - tcl: - paths: - tcl@8.5.13: /usr - version: [8.5.13] - tk: - paths: - tk@8.5.13: /usr - version: [8.5.13] - xz: - paths: - xz@5.2: /usr - version: [5.2] - all: - compiler: [intel@18.0.1, gcc@6.4.0] - providers: - mpi: [hpe-mpi, intel-mpi] - scalapack: [intel-mkl, netlib-scalapack] diff --git a/configs/config.yaml b/configs/config.yaml index df93eb96..1c9872c9 100644 --- a/configs/config.yaml +++ b/configs/config.yaml @@ -1,12 +1,8 @@ config: - # Root of the installation tree - install_tree: /ssoft/spack/paien/v2/opt/spack/ - - # Root of the module files + install_tree: $SOFTS_DIR_PATH/install + source_cache: $SOFTS_DIR_PATH/.cache module_roots: - tcl: /ssoft/spack/paien/v2/share/spack/modules - lmod: /ssoft/spack/paien/v2/share/spack/lmod - dotkit: /ssoft/spack/paien/v2/share/spack/dotkit - - build_stage: - - /tmp/paien.v2 \ No newline at end of file + tcl: $SOFTS_DIR_PATH/modules/tcl + lmod: $SOFTS_DIR_PATH/modules/lmod + install_path_scheme: '${COMPILERNAME}-${COMPILERVER}/${PACKAGE}-${VERSION}-${HASH:6}' + build_jobs: 36 diff --git a/configs/packages.yaml b/configs/packages.yaml index d9767d52..56da56a0 100644 --- a/configs/packages.yaml +++ b/configs/packages.yaml @@ -1,112 +1,119 @@ packages: - - #### - # Common libraries that we delegate to the OS - #### - - openssl: - buildable: False - paths: - openssl@system: /usr/lib64 - - jdk: - buildable: False - paths: - jdk@8u141-b16: /usr/lib/jvm/jre - - #### - # Intel compilers and libraries - #### - - intel: - buildable: False - paths: - intel@18.0.2%gcc@4.8.5: /ssoft/spack/external/intel/2018.2/compilers_and_libraries_2018.2.199/linux - - intel-mpi: - buildable: False - paths: - intel-mpi@2018.2.199 %intel@18.0.2: /ssoft/spack/external/intel/2018.2/impi/2018.2.199 - - intel-mkl: - buildable: False - paths: - intel-mkl @2018.2.199 %intel@18.0.2: /ssoft/spack/external/intel/2018.2/compilers_and_libraries_2018.2.199/linux/mkl - intel-mkl threads=openmp @2018.2.199 %intel@18.0.2: /ssoft/spack/external/intel/2018.2/compilers_and_libraries_2018.2.199/linux/mkl - - #### - # Third party software - #### - - # TODO: Abaqus needs to be reinstalled with the intel@2018 - # TODO: first available window is beginning of July - # abaqus: - # buildable: False - # version: ['@6.14-1'] - # paths: - # abaqus@6.14-1%intel@17.0.2: /ssoft/spack/external/abaqus/6.14-1 - - adf: - buildable: False - paths: - adf@2017.111 %gcc@4.8.5: /ssoft/spack/external/adf/adf2017.111 - - ansys: - buildable: False - paths: - ansys@17.1%gcc@4.8.5: /ssoft/spack/external/ansys/17.1/v171 - - cfdplusplus: - buildable: False - paths: - cfdplusplus@16.1%gcc@4.8.5: /ssoft/spack/external/CFD++/2016.05 - - comsol: - buildable: False - paths: - comsol@5.3 %gcc@4.8.5: /ssoft/spack/external/comsol/5.3 - - fdtd: - buildable: False - paths: - fdtd@8.20.1703 %gcc@4.8.5: /ssoft/spack/external/fdtd/8.20.1703 - fdtd@8.19.1416-1 %gcc@4.8.5: /ssoft/spack/external/fdtd/8.19.1416-1 - # installed due to segfault with other versions INC0204566 - fdtd@8.12.527 %gcc@4.8.5: /ssoft/spack/external/fdtd/8.12.527 - - likwid: - buildable: False - version: ['@4.3.0'] - paths: - likwid@4.3.0 %gcc@4.8.5: /ssoft/spack/external/LIKWID/4.3.0 - - gaussian: - buildable: False - paths: - gaussian@g16-A.03 %gcc@4.8.5: /ssoft/spack/external/gaussian/g16-A.03 - - matlab: - buildable: False - paths: - matlab@R2018a %gcc@4.8.5: /ssoft/spack/external/MATLAB/R2018a - - maple: - buildable: False - paths: - maple@2017 %gcc@4.8.5: /ssoft/spack/external/Maple/2017 - - mathematica: - buildable: False - paths: - mathematica@9.0.1 %gcc@4.8.5: /ssoft/spack/external/Mathematica/9.0.1 - mathematica@11.1.1 %gcc@4.8.5: /ssoft/spack/external/Mathematica/11.1.1 - - smr: - buildable: False - paths: - smr@2017.06 %gcc@4.8.5: /ssoft/spack/external/SMR/2017.06 - - totalview: - buildable: False - paths: - totalview@2017.2.11 %gcc@4.8.5: /ssoft/spack/external/toolworks/totalview.2017.2.11 + autoconf: + paths: + autoconf@2.69: /usr + version: [2.69] + automake: + paths: + automake@1.13.4: /usr + version: [1.13.4] + bison: + paths: + bison@3.0.4: /usr + version: [3.0.4] + bzip2: + paths: + bzip2@1.0.6: /usr + version: [1.0.6] + cairo: + paths: + cairo@1.8.10: /usr + version: [1.8.10] + curl: + paths: + curl@7.29.0: /usr + version: [7.29.0] + flex: + paths: + flex@2.5.37: /usr + version: [2.5.37] + fontconfig: + paths: + fontconfig@2.10.95: /usr + version: [2.10.95] + glib: + paths: + glib@2.50.3: /usr + version: [2.50.3] + gtkplus: + paths: + gtkplus@2.24.31: /usr + version: [2.24.31] + libjpeg: + paths: + libjpeg@1.2.90: /usr + version: [1.2.90] + libgcrypt: + paths: + libgcrypt@1.5.3: /usr + version: [1.5.3] + libmng: + paths: + libmng@1.0.10: /usr + version: [1.0.10] + libtool: + paths: + libtool@2.4.2: /usr + version: [2.4.2] + libxml2: + paths: + libxml2@2.9.1: /usr + version: [2.9.1] + m4: + paths: + m4@1.4.16: /usr + version: [1.4.16] + ncurses: + paths: + ncurses@5.9: /usr + version: [5.9] + openssl: + paths: + openssl@1.0.2k: /usr + version: [1.0.2k] + pango: + paths: + pango@1.40.4: /usr + version: [1.40.4] + pcre: + paths: + pcre@8.32+jit+utf: /usr + version: [8.32] + perl: + paths: + perl@5.16.3: /usr + version: [5.16.3] + pkg-config: + paths: + pkg-config@0.27.1: /usr + version: [0.27.1] + slurm: + paths: + slurm@17.02: /usr + buildable: False + version: [17.02] + steps: + variants: +lapack+petsc+mpi + tar: + paths: + tar@1.26: /usr + version: [1.26] + tcl: + paths: + tcl@8.5.13: /usr + version: [8.5.13] + tk: + paths: + tk@8.5.13: /usr + version: [8.5.13] + trilinos: + variants: +kokkos+teuchos~amesos~hypre~superlu-dist~mumps~metis~suite-sparse + xz: + paths: + xz@5.2: /usr + version: [5.2] + all: + compiler: [intel@18.0.1, gcc@6.4.0] + providers: + mpi: [hpe-mpi, intel-mpi] + scalapack: [intel-mkl, netlib-scalapack] diff --git a/configs/repos.yaml b/configs/repos.yaml deleted file mode 100644 index 4ac9b5e1..00000000 --- a/configs/repos.yaml +++ /dev/null @@ -1,2 +0,0 @@ -repos: -- /ssoft/spack/paien/scitas-repository/scitasexternal diff --git a/packages/compiler-packages.yaml b/packages/compilers.yaml similarity index 74% rename from packages/compiler-packages.yaml rename to packages/compilers.yaml index 3c5fe089..8d1ebf52 100644 --- a/packages/compiler-packages.yaml +++ b/packages/compilers.yaml @@ -30,14 +30,8 @@ packages: - compiler specs: - gcc@8.2.0 - - gcc@7.3.0 - gcc@6.4.0 - - gcc@5.5.0 - intel-parallel-studio+advisor+clck+daal+gdb+inspector+ipp+itac+mkl+mpi+rpath+shared+tbb+vtune@cluster.2018.3 - - intel-parallel-studio+advisor+clck+daal+gdb+inspector+ipp+itac+mkl+mpi+rpath+shared+tbb+vtune@cluster.2017.7 - intel@18.0.3 - - intel@17.0.7 - - llvm@6.0.1 - - llvm@5.0.1 + - llvm@7.0.0 - pgi+network+nvidia+mpi@18.4 - - pgi+network+nvidia+mpi@17.10 diff --git a/packages/hpc-packages.yaml b/packages/hpc-packages.yaml new file mode 100644 index 00000000..14d449fe --- /dev/null +++ b/packages/hpc-packages.yaml @@ -0,0 +1,46 @@ +# Build all parallel libraries + +# axis that defines software deployment strategy +axis: + - architecture + - compiler + - mpi + - lapack + - python + +# toolchain combinations +combinations: !include packages/toolchains.yaml + +parallel-packages: ¶llel-specs + specs: + - functionalizer@3.11.0 + - neurodamus@plasticity + - neurodamus@master + - neurodamus@hippocampus + - neuron@2018-10 + - spykfunc@0.11.0 + - touchdetector@4.3.3 + +# list of packages to build +packages: + # with default gnu, intel toolchains + mpi + gnu-intel-stable-parallel: + target_matrix: + - gnu-stable + - intel-stable + requires: + - architecture + - compiler + <<: *parallel-specs + + # with default gnu, intel toolchains + mpi + lapack + gnu-intel-stable-parallel-lapack: + target_matrix: + - gnu-stable + - intel-stable + requires: + - architecture + - compiler + - lapack + specs: + - steps@3.3.0+petsc diff --git a/packages/parallel-libraries.yaml b/packages/parallel-libraries.yaml index 17f13676..e153e81d 100644 --- a/packages/parallel-libraries.yaml +++ b/packages/parallel-libraries.yaml @@ -9,47 +9,32 @@ axis: - python # toolchain combinations -combinations: !include packages/compiler-toolchains.yaml - -parallel-packages: ¶llel-specs - specs: - - hdf5+mpi@1.10.2 - - omega-h@9.17.2 - - petsc+int64+mpi@3.9.3 - - trilinos+kokkos+teuchos~amesos~hypre~superlu-dist~mumps~metis~suite-sparse@12.12.1 +combinations: !include packages/toolchains.yaml # list of packages to build packages: - # with default gnu, intel toolchains + # with default gnu, intel toolchains + mpi gnu-intel-stable-parallel: target_matrix: - gnu-stable - intel-stable - - intel-knl-stable requires: - architecture - compiler - mpi - <<: *parallel-specs - # with default pgi toolchain - pgi-stable-parallel: + specs: + - hdf5+mpi@1.10.2 + + # with default gnu, intel toolchains + mpi + lapack + gnu-intel-stable-parallel-lapack: target_matrix: - - pgi-stable + - gnu-stable + - intel-stable requires: - architecture - compiler - - mpi - <<: *parallel-specs - blacklist: + - lapack + specs: - omega-h@9.17.2 - petsc+int64+mpi@3.9.3 - - trilinos+kokkos+teuchos@12.12.1 - # with default llvm toolchain - llvm-stable-parallel: - target_matrix: - - llvm-stable - requires: - - architecture - - compiler - - mpi - <<: *parallel-specs + - trilinos@12.12.1 diff --git a/packages/python-packages.yaml b/packages/python-packages.yaml index be409d6a..65b26abf 100644 --- a/packages/python-packages.yaml +++ b/packages/python-packages.yaml @@ -7,36 +7,46 @@ axis: - python # toolchain combinations -combinations: !include packages/compiler-toolchains.yaml +combinations: !include packages/toolchains.yaml serial-packages: &python-specs specs: - py-argcomplete - py-argparse + - py-backports-functools-lru-cache + - py-bb5 - py-beautifulsoup4 - py-bokeh - py-click + - py-clustershell - py-coverage - py-cpuinfo - py-csvkit - py-cython - py-cpuinfo - py-dateutil + - py-deap + - py-docopt + - py-efel - py-elasticsearch - py-elephant - py-enum34 - py-fastaindex - py-flake8 + - py-funcsigs - py-future - py-gcovr - py-gnuplot - py-h5py + - py-hdfs - py-ipykernel + - py-ipyparallel - py-ipython - py-ipython-genutils - py-ipywidgets - py-ipython - py-jinja2 + - py-jprops - py-jupyter-client - py-jupyter-console - py-jupyter-core @@ -58,15 +68,23 @@ serial-packages: &python-specs - py-pillow - py-pip - py-ply + - py-progress + - py-py4j + - py-pyarrow - py-pynn + - py-pyspark - py-pytest - py-pyyaml - py-regex + - py-requests + - py-seaborn - py-setuptools + - py-sh - py-shapely - py-simplejson - py-six - py-slurm-pipeline + - py-sparkmanager - py-sphinx - py-sphinx-bootstrap-theme - py-sphinx-rtd-theme @@ -86,8 +104,6 @@ packages: stable-serial: target_matrix: - gnu-stable - - intel-stable - - intel-knl-stable requires: - architecture - compiler @@ -96,8 +112,6 @@ packages: stable-serial-lapack: target_matrix: - gnu-stable - - intel-stable - - intel-knl-stable requires: - architecture - compiler @@ -113,8 +127,6 @@ packages: stable-parallel: target_matrix: - gnu-stable - - intel-stable - - intel-knl-stable requires: - architecture - compiler diff --git a/packages/serial-libraries.yaml b/packages/serial-libraries.yaml index a92a0675..9a956423 100644 --- a/packages/serial-libraries.yaml +++ b/packages/serial-libraries.yaml @@ -7,22 +7,24 @@ axis: - python # toolchain combinations -combinations: !include packages/compiler-toolchains.yaml +combinations: !include packages/toolchains.yaml serial-packages: &serial-specs specs: - - boost~mpi~python@1.68.0 + - arrow@0.11.0 + - boost~mpi@1.68.0 + - cuda@9.2.88 - hdf5~mpi@1.10.2 + - hadoop@2.9.0 - highfive~mpi@1.6 - hpe-mpi@2.16 - intel-mpi@2018.1.163 - intel-mkl@2018.1.163 + - jdk@1.8.0_191-b12 - libxml2@2.9.8 - - mvapich2@2.3 process_managers=slurm fabrics=mrail file_systems=gpfs threads=multiple - parquet@1.4.0 - - python@2.7.15 - - python@3.6.5 - qt@5.10.0 + - spark@2.3.2rc2 - zlib@1.2.11 # list of packages to build @@ -35,37 +37,3 @@ packages: - architecture - compiler <<: *serial-specs - # with default intel toolchains - intel-stable-serial: - target_matrix: - - intel-stable - - intel-knl-stable - requires: - - architecture - - compiler - <<: *serial-specs - blacklist: - - qt@5.10.0 - # with default pgi toolchain - pgi-stable-serial: - target_matrix: - - llvm-stable - requires: - - architecture - - compiler - <<: *serial-specs - blacklist: - - intel-mkl@2018.1.163 - - parquet@1.4.0 - - qt@5.10.0 - # with default llvm toolchain - llvm-stable-serial: - target_matrix: - - llvm-stable - requires: - - architecture - - compiler - <<: *serial-specs - blacklist: - - parquet@1.4.0 - - qt@5.10.0 diff --git a/packages/build-dep-packages.yaml b/packages/system-tools.yaml similarity index 78% rename from packages/build-dep-packages.yaml rename to packages/system-tools.yaml index 5b7fae58..b6dac4de 100644 --- a/packages/build-dep-packages.yaml +++ b/packages/system-tools.yaml @@ -9,7 +9,7 @@ axis: - python # toolchain combinations -combinations: !include packages/compiler-toolchains.yaml +combinations: !include packages/toolchains.yaml # list of packages to build packages: @@ -23,25 +23,18 @@ packages: specs: - autoconf@2.69 - automake@1.16.1 - - astyle@3.1 - bison@3.0.5 - cmake@3.12.2 - - cuda@9.2.88 - - cuda@8.0.61 - - darshan-util - environment-modules@3.2.10 - flex@2.6.3 - gdb@8.2 - gettext@0.19.8.1 - git@2.18.0 - - iozone@3_465 - - jdk@10.0.2_13 - libtool@2.4.6 - lmod@7.8 - m4@1.4.18 - ninja@1.8.2 - pkg-config@0.29.2 - - spark@2.3.0+hadoop - tcl@8.6.8 - tk@8.6.8 - util-macros@1.19.1 diff --git a/packages/compiler-toolchains.yaml b/packages/toolchains.yaml similarity index 70% rename from packages/compiler-toolchains.yaml rename to packages/toolchains.yaml index 3cc0284d..4759b2b0 100644 --- a/packages/compiler-toolchains.yaml +++ b/packages/toolchains.yaml @@ -14,55 +14,40 @@ core: gnu-stable: architecture: - x86_64 - - x86_64 compiler: - gcc@6.4.0 - - gcc@6.4.0 mpi: - hpe-mpi@2.16 - - mvapich2@2.3 process_managers=slurm fabrics=mrail file_systems=gpfs threads=multiple lapack: - openblas@0.2.20 - - openblas@0.2.20 python: - python@3.6.5 - - python@2.7.15 # stable intel toolchain intel-stable: architecture: - x86_64 - - x86_64 compiler: - - intel@18.0.1 - - intel@18.0.1 + - intel@18.0.3 mpi: - hpe-mpi@2.16 - - mvapich2@2.3 process_managers=slurm fabrics=mrail file_systems=gpfs threads=multiple lapack: - intel-mkl@2018.1.163 - - intel-mkl@2018.1.163 python: - python@3.6.5 - - python@2.7.15 # stable intel knl toolchain intel-knl-stable: architecture: - x86_64_knl - - x86_64_knl compiler: - - intel@18.0.1 - - intel@18.0.1 + - intel@18.0.3 mpi: - hpe-mpi@2.16 - - hpe-mpi@2.16 lapack: - intel-mkl@2018.1.163 - - intel-mkl@2018.1.163 python: - python@3.6.5 - - python@2.7.15 # stable PGI toolchain pgi-stable: From ef980a072fb5cfe0e7ae0cabfae4d920286722ab Mon Sep 17 00:00:00 2001 From: Pramod Kumbhar Date: Tue, 6 Nov 2018 23:02:40 +0100 Subject: [PATCH 04/25] Update README and toolchains.yaml --- README.md | 80 +++++++++++----------------------------- packages/toolchains.yaml | 2 - 2 files changed, 21 insertions(+), 61 deletions(-) diff --git a/README.md b/README.md index 111a1a2e..9a66c79c 100644 --- a/README.md +++ b/README.md @@ -78,17 +78,16 @@ These axis represent how the hierarchical modules (e.g. with LMOD) are exposed t * different python versions could be used for compiling package : python@2.7.16, python@3.6.5 -We define compiler toolchains in [packages/compiler-toolchains.yaml](packages/compiler-toolchains.yaml) as: +We define compiler toolchains in [packages/toolchains.yaml](packages/toolchains.yaml) as: ```yaml +# core toolchain typically represent system compilers core: architecture: - x86_64 - - x86_64_knl compiler: - gcc@4.8.5 - - gcc@4.8.5 mpi: None lapack: None python: None @@ -97,32 +96,28 @@ core: gnu-stable: architecture: - x86_64 - - x86_64 compiler: - gcc@6.4.0 - - gcc@6.4.0 mpi: - hpe-mpi@2.16 - - mvapich2@2.3 process_managers=slurm fabrics=mrail file_systems=gpfs threads=multiple lapack: - openblas@0.2.20 - - openblas@0.2.20 python: - python@3.6.5 - - python@2.7.15 ``` The `core` toolchain typically represent system compiler. This compiler is used only to bootstrap/install other compilers and some basic utility packages. And hence it doesn't provide any mpi, lapack or python packages. -The next toolchain `gnu-stable` represent default GNU compiler. We are going to provide two mpi libraries and two python versions. Note that the length of each axis should be same (and hence there are duplicate entries). +The next toolchain `gnu-stable` represent default GNU compiler. We are going to provide single version of HPE mpi library and python version. #### Packages Specifications -Once compiler toolchains are defined, we can define packages to build for each toolchain as: +Once compiler toolchains are defined, we can define packages to build for each toolchain. For example, we define compiler packages as: ``` +# list of packages to build packages: compilers: target_matrix: @@ -132,22 +127,16 @@ packages: - compiler specs: - gcc@8.2.0 - - gcc@7.3.0 - gcc@6.4.0 - - gcc@5.5.0 - intel-parallel-studio+advisor+clck+daal+gdb+inspector+ipp+itac+mkl+mpi+rpath+shared+tbb+vtune@cluster.2018.3 - - intel-parallel-studio+advisor+clck+daal+gdb+inspector+ipp+itac+mkl+mpi+rpath+shared+tbb+vtune@cluster.2017.7 - intel@18.0.3 - - intel@17.0.7 - - llvm@6.0.1 - - llvm@5.0.1 + - llvm@7.0.0 - pgi+network+nvidia+mpi@18.4 - - pgi+network+nvidia+mpi@17.10 ``` Here is brief summary of what's going on: -* `compilers` here is a just tag +* `compilers` under packages is just a tag * `target_matrix` indicates which compiler toolchain we are going to use (see Toolchain Specifications) * `requires` indicates which axis will be used while building the packages * `specs` indicates which packages we are going to build @@ -157,67 +146,41 @@ It would be more clear if we look at the package specs generated with `spackd` c To see which packages will be installed, for example, to install all compilers on the system: ``` -→ spackd --input packages/compiler-packages.yaml packages x86_64 - +→ spackd --input packages/compilers.yaml packages x86_64 gcc@8.2.0 %gcc@4.8.5 target=x86_64 -gcc@7.3.0 %gcc@4.8.5 target=x86_64 gcc@6.4.0 %gcc@4.8.5 target=x86_64 -gcc@5.5.0 %gcc@4.8.5 target=x86_64 intel-parallel-studio+advisor+clck+daal+gdb+inspector+ipp+itac+mkl+mpi+rpath+shared+tbb+vtune@cluster.2018.3 %gcc@4.8.5 target=x86_64 -intel-parallel-studio+advisor+clck+daal+gdb+inspector+ipp+itac+mkl+mpi+rpath+shared+tbb+vtune@cluster.2017.7 %gcc@4.8.5 target=x86_64 intel@18.0.3 %gcc@4.8.5 target=x86_64 -intel@17.0.7 %gcc@4.8.5 target=x86_64 -llvm@6.0.1 %gcc@4.8.5 target=x86_64 -llvm@5.0.1 %gcc@4.8.5 target=x86_64 +llvm@7.0.0 %gcc@4.8.5 target=x86_64 pgi+network+nvidia+mpi@18.4 %gcc@4.8.5 target=x86_64 -pgi+network+nvidia+mpi@17.10 %gcc@4.8.5 target=x86_64 ``` These specs can be the used to install packages using `spack install` command. This become more useful when multiple compilers and mpi libraries come into picture, for example, to install all parallel libraries on the system : ``` → spackd --input packages/parallel-libraries.yaml packages x86_64 - -hdf5+mpi@1.10.2 ^hpe-mpi@2.16 %clang@6.0.1 target=x86_64 -omega-h@9.17.2 ^hpe-mpi@2.16 %clang@6.0.1 target=x86_64 -... -hdf5+mpi@1.10.2 ^hpe-mpi@2.16 %intel@18.0.1 target=x86_64 -omega-h@9.17.2 ^hpe-mpi@2.16 %intel@18.0.1 target=x86_64 -... +hdf5+mpi@1.10.2 ^hpe-mpi@2.16 %intel@18.0.3 target=x86_64 hdf5+mpi@1.10.2 ^hpe-mpi@2.16 %gcc@6.4.0 target=x86_64 -omega-h@9.17.2 ^hpe-mpi@2.16 %gcc@6.4.0 target=x86_64 -... -hdf5+mpi@1.10.2 ^mvapich2@2.3 process_managers=slurm fabrics=mrail file_systems=gpfs threads=multiple %gcc@6.4.0 target=x86_64 -omega-h@9.17.2 ^mvapich2@2.3 process_managers=slurm fabrics=mrail file_systems=gpfs threads=multiple %gcc@6.4.0 target=x86_64 -.... -``` - -Similarly, packages for `x86_64_knl` target can be generated with : - -``` - → spackd --input packages/parallel-libraries.yaml packages x86_64_knl - -hdf5+mpi@1.10.2 ^hpe-mpi@2.16 %intel@18.0.1 target=x86_64_knl -omega-h@9.17.2 ^hpe-mpi@2.16 %intel@18.0.1 target=x86_64_knl -petsc+int64+mpi@3.9.3 ^hpe-mpi@2.16 %intel@18.0.1 target=x86_64_knl -trilinos+kokkos+teuchos@12.12.1 ^hpe-mpi@2.16 %intel@18.0.1 target=x86_64_knl +omega-h@9.17.2 ^openblas@0.2.20 %gcc@6.4.0 target=x86_64 +petsc+int64+mpi@3.9.3 ^openblas@0.2.20 %gcc@6.4.0 target=x86_64 +trilinos@12.12.1 ^openblas@0.2.20 %gcc@6.4.0 target=x86_64 +omega-h@9.17.2 ^intel-mkl@2018.1.163 %intel@18.0.3 target=x86_64 +petsc+int64+mpi@3.9.3 ^intel-mkl@2018.1.163 %intel@18.0.3 target=x86_64 +trilinos@12.12.1 ^intel-mkl@2018.1.163 %intel@18.0.3 target=x86_64 ``` -The specs become complicated but they are complete considering architecture, compiler and mpi dependecies. - - #### Whole Software Stack Here is list of all packages (in order) that we will be installing : ``` -spackd --input packages/compiler-packages.yaml packages x86_64 --output compiler-packages.txt -spackd --input packages/build-dep-packages.yaml packages x86_64 --output buiild-dep-packages.txt +spackd --input packages/compilers.yaml packages x86_64 --output compilers.txt +spackd --input packages/system-tools.yaml packages x86_64 --output system-tools.txt spackd --input packages/serial-libraries.yaml packages x86_64 --output serial-libraries.txt spackd --input packages/python-packages.yaml packages x86_64 --output python-packages.txt spackd --input packages/parallel-libraries.yaml packages x86_64 --output parallel-libraries.txt +spackd --input packages/hpc-packages.yaml packages x86_64 --output hpc-packages.txt ``` -Similarly for target `x86_64_knl`. #### Todo : Deployment Workflow @@ -238,7 +201,6 @@ x86_64 → spackd --input packages/parallel-libraries.yaml compilers x86_64 clang@6.0.1%gcc@4.8.5 target=x86_64 gcc@6.4.0%gcc@4.8.5 target=x86_64 -intel@18.0.1%gcc@4.8.5 target=x86_64 -intel@18.0.1-knl%gcc@4.8.5 target=x86_64 +intel@18.0.3%gcc@4.8.5 target=x86_64 pgi@18.4%gcc@4.8.5 target=x86_64 -``` +``` \ No newline at end of file diff --git a/packages/toolchains.yaml b/packages/toolchains.yaml index 4759b2b0..72183f71 100644 --- a/packages/toolchains.yaml +++ b/packages/toolchains.yaml @@ -2,10 +2,8 @@ core: architecture: - x86_64 - - x86_64_knl compiler: - gcc@4.8.5 - - gcc@4.8.5 mpi: None lapack: None python: None From 5331e5b9f72e91fa64841a1713620b0322de368e Mon Sep 17 00:00:00 2001 From: Pramod Kumbhar Date: Tue, 6 Nov 2018 23:18:02 +0100 Subject: [PATCH 05/25] Add packages added by Werner and rename yaml file --- README.md | 4 ++-- .../{hpc-packages.yaml => bbp-packages.yaml} | 21 ++++++++++++++++--- 2 files changed, 20 insertions(+), 5 deletions(-) rename packages/{hpc-packages.yaml => bbp-packages.yaml} (69%) diff --git a/README.md b/README.md index 9a66c79c..9baa2ca8 100644 --- a/README.md +++ b/README.md @@ -179,7 +179,7 @@ spackd --input packages/system-tools.yaml packages x86_64 --output system-tools. spackd --input packages/serial-libraries.yaml packages x86_64 --output serial-libraries.txt spackd --input packages/python-packages.yaml packages x86_64 --output python-packages.txt spackd --input packages/parallel-libraries.yaml packages x86_64 --output parallel-libraries.txt -spackd --input packages/hpc-packages.yaml packages x86_64 --output hpc-packages.txt +spackd --input packages/bbp-packages.yaml packages x86_64 --output bbp-packages.txt ``` #### Todo : Deployment Workflow @@ -203,4 +203,4 @@ clang@6.0.1%gcc@4.8.5 target=x86_64 gcc@6.4.0%gcc@4.8.5 target=x86_64 intel@18.0.3%gcc@4.8.5 target=x86_64 pgi@18.4%gcc@4.8.5 target=x86_64 -``` \ No newline at end of file +``` diff --git a/packages/hpc-packages.yaml b/packages/bbp-packages.yaml similarity index 69% rename from packages/hpc-packages.yaml rename to packages/bbp-packages.yaml index 14d449fe..5d648455 100644 --- a/packages/hpc-packages.yaml +++ b/packages/bbp-packages.yaml @@ -1,4 +1,4 @@ -# Build all parallel libraries +# Build packages from HPC team # axis that defines software deployment strategy axis: @@ -24,7 +24,7 @@ parallel-packages: ¶llel-specs # list of packages to build packages: # with default gnu, intel toolchains + mpi - gnu-intel-stable-parallel: + gnu-intel-parallel: target_matrix: - gnu-stable - intel-stable @@ -34,7 +34,7 @@ packages: <<: *parallel-specs # with default gnu, intel toolchains + mpi + lapack - gnu-intel-stable-parallel-lapack: + gnu-intel-lapack-parallel: target_matrix: - gnu-stable - intel-stable @@ -44,3 +44,18 @@ packages: - lapack specs: - steps@3.3.0+petsc + + # packages from nse tream + gnu-intel-lapack-python-parallel: + target_matrix: + - gnu-stable + - intel-stable + requires: + - architecture + - compiler + - lapack + - python + specs: + - py-bluepymm@0.6.35 + - py-bluepyopt@1.6.56 + - py-efel@3.0.22 From 54b858a7893523b2980c22ca116a9bdba4d1f441 Mon Sep 17 00:00:00 2001 From: Tristan Carel Date: Wed, 7 Nov 2018 10:34:43 +0100 Subject: [PATCH 06/25] bbp-packages: add zee@develop --- packages/bbp-packages.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/bbp-packages.yaml b/packages/bbp-packages.yaml index 5d648455..4075d488 100644 --- a/packages/bbp-packages.yaml +++ b/packages/bbp-packages.yaml @@ -44,6 +44,7 @@ packages: - lapack specs: - steps@3.3.0+petsc + - zee@develop # packages from nse tream gnu-intel-lapack-python-parallel: From fd55baf88cc6d02b0ebd53e1f9501942e9f6b8d4 Mon Sep 17 00:00:00 2001 From: Tristan Carel Date: Wed, 7 Nov 2018 10:34:53 +0100 Subject: [PATCH 07/25] README: fix typos --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9baa2ca8..b36c6678 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ ### SpackD : Deploying Software Stack with Spack -This is work-in-progress instructions for deploying softwrae stack with Spack. +This is work-in-progress instructions for deploying software stack with Spack. ###### CREDIT : Based on [spack-packagelist](https://github.com/epfl-scitas/spack-packagelist) @@ -190,7 +190,7 @@ Here is how deployment workflow should look like : #### Todo : Jenkins Pipeline Workflow -See exisiting scripts in `scripts/` directory and `Jenkinsfile`. Those should be refactored for new workflow. +See existing scripts in `scripts/` directory and `Jenkinsfile`. Those should be refactored for new workflow. #### Other Commands From 70ea444c8e7f991b87395c1de71692159c3ba21b Mon Sep 17 00:00:00 2001 From: Pramod Kumbhar Date: Wed, 7 Nov 2018 22:11:10 +0100 Subject: [PATCH 08/25] Fix concretisation issues with Python 3.6.5 --- configs/packages.yaml | 5 +++++ packages/bbp-packages.yaml | 4 ++-- packages/compilers.yaml | 4 ++-- packages/python-packages.yaml | 2 -- packages/toolchains.yaml | 4 ++-- 5 files changed, 11 insertions(+), 8 deletions(-) diff --git a/configs/packages.yaml b/configs/packages.yaml index 56da56a0..91a3b2a8 100644 --- a/configs/packages.yaml +++ b/configs/packages.yaml @@ -67,6 +67,11 @@ packages: paths: ncurses@5.9: /usr version: [5.9] + # can not be installed with python 3 + node-js: + paths: + node-js@6.12.2: /usr + version: [6.12.2] openssl: paths: openssl@1.0.2k: /usr diff --git a/packages/bbp-packages.yaml b/packages/bbp-packages.yaml index 4075d488..ad3cfae0 100644 --- a/packages/bbp-packages.yaml +++ b/packages/bbp-packages.yaml @@ -15,8 +15,8 @@ parallel-packages: ¶llel-specs specs: - functionalizer@3.11.0 - neurodamus@plasticity - - neurodamus@master - - neurodamus@hippocampus + - neurodamus@master~coreneuron + - neurodamus@hippocampus~coreneuron - neuron@2018-10 - spykfunc@0.11.0 - touchdetector@4.3.3 diff --git a/packages/compilers.yaml b/packages/compilers.yaml index 8d1ebf52..cd98ee4f 100644 --- a/packages/compilers.yaml +++ b/packages/compilers.yaml @@ -31,7 +31,7 @@ packages: specs: - gcc@8.2.0 - gcc@6.4.0 - - intel-parallel-studio+advisor+clck+daal+gdb+inspector+ipp+itac+mkl+mpi+rpath+shared+tbb+vtune@cluster.2018.3 - - intel@18.0.3 + - intel-parallel-studio+advisor+clck+daal+gdb+inspector+ipp+itac+mkl+mpi+rpath+shared+tbb+vtune@cluster.2018.1 + - intel@18.0.1 - llvm@7.0.0 - pgi+network+nvidia+mpi@18.4 diff --git a/packages/python-packages.yaml b/packages/python-packages.yaml index 65b26abf..8ab1f0d6 100644 --- a/packages/python-packages.yaml +++ b/packages/python-packages.yaml @@ -13,7 +13,6 @@ serial-packages: &python-specs specs: - py-argcomplete - py-argparse - - py-backports-functools-lru-cache - py-bb5 - py-beautifulsoup4 - py-bokeh @@ -64,7 +63,6 @@ serial-packages: &python-specs - py-numba - py-pandas - py-perf - - py-pil - py-pillow - py-pip - py-ply diff --git a/packages/toolchains.yaml b/packages/toolchains.yaml index 72183f71..9ed60e57 100644 --- a/packages/toolchains.yaml +++ b/packages/toolchains.yaml @@ -26,7 +26,7 @@ intel-stable: architecture: - x86_64 compiler: - - intel@18.0.3 + - intel@18.0.1 mpi: - hpe-mpi@2.16 lapack: @@ -39,7 +39,7 @@ intel-knl-stable: architecture: - x86_64_knl compiler: - - intel@18.0.3 + - intel@18.0.1 mpi: - hpe-mpi@2.16 lapack: From 333bef29771016939f6f978a04141f90cbb82063 Mon Sep 17 00:00:00 2001 From: Pramod Kumbhar Date: Thu, 8 Nov 2018 00:52:04 +0100 Subject: [PATCH 09/25] Add hpe-mpi; add shell scripts created for testing --- check_specs.sh | 29 +++++++++++++++++++++ configs/packages.yaml | 4 +++ create_mirror.sh | 36 ++++++++++++++++++++++++++ install_specs.sh | 36 ++++++++++++++++++++++++++ setup_env.sh | 60 +++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 165 insertions(+) create mode 100755 check_specs.sh create mode 100755 create_mirror.sh create mode 100755 install_specs.sh create mode 100755 setup_env.sh diff --git a/check_specs.sh b/check_specs.sh new file mode 100755 index 00000000..0e0f39cf --- /dev/null +++ b/check_specs.sh @@ -0,0 +1,29 @@ +#!/bin/bash +set +e +source "setup_env.sh" + + +check_specs() { + package_list=$1 + to_be_installed=$(spack filter --not-installed $(cat $package_list)) + + if [[ -z "${to_be_installed}" ]] + then + echo "All specs already installed" + else + echo "spack spec -Il $to_be_installed" + spack spec -Il $to_be_installed + fi +} + + +cd $WORKSPACE/HOME_DIR/spack-deploy +for category in "${package_categories[@]}" +do + package_list=`basename $category .yaml`.txt + echo "Checking installed packages in category $category" + check_specs $package_list +done + + +echo -e "Spec concretisation check finished" diff --git a/configs/packages.yaml b/configs/packages.yaml index 91a3b2a8..a37a460e 100644 --- a/configs/packages.yaml +++ b/configs/packages.yaml @@ -39,6 +39,10 @@ packages: paths: gtkplus@2.24.31: /usr version: [2.24.31] + hpe-mpi: + paths: + hpe-mpi@2.16: /opt/hpe/hpc/mpt/mpt-2.16 + version: [2.16] libjpeg: paths: libjpeg@1.2.90: /usr diff --git a/create_mirror.sh b/create_mirror.sh new file mode 100755 index 00000000..04125dec --- /dev/null +++ b/create_mirror.sh @@ -0,0 +1,36 @@ +#!/bin/bash +set +e +source "setup_env.sh" + + +create_mirror() { + package_list=$1 + to_be_installed=$(spack filter --not-installed $(cat $package_list)) + + if [[ -z "${to_be_installed}" ]] + then + echo "All specs already installed" + else + echo "Populating mirror" + spack mirror create -D -d ${SPACK_MIRROR_DIR} $to_be_installed + fi +} + + +cd $WORKSPACE/HOME_DIR/spack-deploy +for category in "${package_categories[@]}" +do + # skip compilers for now + if [[ $category = *"compilers"* ]]; then + continue + fi + + package_list=`basename $category .yaml`.txt + echo "Creating mirror for packages in category $category" + create_mirror $package_list +done + +# register mirror with spack +spack mirror add --scope=site central_mirror ${SPACK_MIRROR_DIR} || echo "Scope already added!" + +echo -e "Mirror creation finished" diff --git a/install_specs.sh b/install_specs.sh new file mode 100755 index 00000000..60e8c255 --- /dev/null +++ b/install_specs.sh @@ -0,0 +1,36 @@ +#!/bin/bash +set +e +source "setup_env.sh" + +install_specs() { + package_list=$1 + category=$2 + to_be_installed=$(spack filter --not-installed $(cat $package_list)) + + if [[ -z "${to_be_installed}" ]] + then + echo "All specs already installed" + else + echo "Installing packages " + spack spec -Il ${to_be_installed} + spack install --log-format=junit --log-file=${category}.xml ${to_be_installed} + fi +} + +# use mirror with spack +spack mirror add --scope=site central_mirror ${SPACK_MIRROR_DIR} || echo "Scope already added!" + +cd $WORKSPACE/HOME_DIR/spack-deploy +for category in "${package_categories[@]}" +do + # skip compilers for now + if [[ $category = *"compilers"* ]]; then + continue + fi + + package_list=`basename $category .yaml`.txt + echo "Installing packages in category $category" + install_specs $package_list $category +done + +echo -e "All specs installed" diff --git a/setup_env.sh b/setup_env.sh new file mode 100755 index 00000000..647ce71d --- /dev/null +++ b/setup_env.sh @@ -0,0 +1,60 @@ +#!/bin/bash +set -e + +############################## SPACK REPOSITORY ############################# +export WORKSPACE=`pwd` + +echo " +===================================================================== +Preparing environment... +=====================================================================" + +export PATH=`pwd`:$PATH +export WORKSPACE=`pwd`/workspace +export SOFTS_DIR_PATH=$WORKSPACE/deployment +export SPACK_MIRROR_DIR=$WORKSPACE/mirror +mkdir -p $WORKSPACE/HOME_DIR $SOFTS_DIR_PATH $SPACK_MIRROR_DIR + +# new $HOME to avoid conflict with ~/.spack +export HOME=$WORKSPACE/HOME_DIR +rm -rf $HOME/.spack +cd $HOME + +# clone both spack related repos +if [ ! -d spack ]; then + git clone https://github.com/BlueBrain/spack.git + git clone https://github.com/pramodk/spack-deploy.git -b base-packages +fi + +export SPACK_ROOT=`pwd`/spack +export PATH=$SPACK_ROOT/bin:$PATH + +# copy config files +mkdir -p $SPACK_ROOT/etc/spack/defaults/linux +cp $SPACK_ROOT/sysconfig/bb5/users/* $SPACK_ROOT/etc/spack/defaults/linux/ +cp $WORKSPACE/HOME_DIR/spack-deploy/configs/packages.yaml $SPACK_ROOT/etc/spack/defaults/linux/ + +source $SPACK_ROOT/share/spack/setup-env.sh + +# create virtualenv +SPACKD_VIRTUALENV_PATH=`pwd`/venv +if [ ! -d $SPACKD_VIRTUALENV_PATH ]; then + virtualenv -p $(which python) ${SPACKD_VIRTUALENV_PATH} --clear + . ${SPACKD_VIRTUALENV_PATH}/bin/activate + curl https://bootstrap.pypa.io/get-pip.py | python +fi + +. ${SPACKD_VIRTUALENV_PATH}/bin/activate +pip install -U spack-deploy/ + +# create list of all packages +declare -a package_categories=(compilers.yaml system-tools.yaml serial-libraries.yaml python-packages.yaml parallel-libraries.yaml bbp-packages.yaml) + +cd $WORKSPACE/HOME_DIR/spack-deploy +for config in "${package_categories[@]}" +do + package_list=`basename $config .yaml`.txt + spackd --input packages/$config packages x86_64 --output $package_list +done + +deactivate From 05575fe7e8b8a73028254cba1101c0e625d82a03 Mon Sep 17 00:00:00 2001 From: Pramod Kumbhar Date: Thu, 8 Nov 2018 16:07:41 +0100 Subject: [PATCH 10/25] changes while tetsing on bb5 --- configs/packages.yaml | 8 ++++---- install_specs.sh | 8 +++++++- packages/python-packages.yaml | 8 ++++---- packages/system-tools.yaml | 1 - setup_env.sh | 4 ++-- 5 files changed, 17 insertions(+), 12 deletions(-) diff --git a/configs/packages.yaml b/configs/packages.yaml index a37a460e..c1c361e6 100644 --- a/configs/packages.yaml +++ b/configs/packages.yaml @@ -107,10 +107,10 @@ packages: paths: tar@1.26: /usr version: [1.26] - tcl: - paths: - tcl@8.5.13: /usr - version: [8.5.13] + #tcl: + # paths: + # tcl@8.5.13: /usr + # version: [8.5.13] tk: paths: tk@8.5.13: /usr diff --git a/install_specs.sh b/install_specs.sh index 60e8c255..fcd654d8 100755 --- a/install_specs.sh +++ b/install_specs.sh @@ -1,5 +1,5 @@ #!/bin/bash -set +e +set -e source "setup_env.sh" install_specs() { @@ -14,6 +14,12 @@ install_specs() { echo "Installing packages " spack spec -Il ${to_be_installed} spack install --log-format=junit --log-file=${category}.xml ${to_be_installed} + #spack filter --not-installed $(cat $package_list) > todo.txt + #while read -r package + #do + # spack spec -Il ${package} + # spack install --log-format=junit --log-file=${category}.xml ${package} + #done < todo.txt fi } diff --git a/packages/python-packages.yaml b/packages/python-packages.yaml index 8ab1f0d6..649eb6b5 100644 --- a/packages/python-packages.yaml +++ b/packages/python-packages.yaml @@ -60,7 +60,7 @@ serial-packages: &python-specs - py-neo - py-networkx - py-nose - - py-numba + #- py-numba - py-pandas - py-perf - py-pillow @@ -119,9 +119,9 @@ packages: - py-numpy@1.15.1 - py-scipy@1.1.0 ^py-numpy@1.15.1 - py-matplotlib@2.2.3 ^py-numpy@1.15.1 - - py-scikit-learn@0.19.1 ^py-numpy@1.15.1 ^py-scipy@1.1.0 - - py-theano@1.0.2 ^py-numpy@1.15.1 ^py-scipy@1.1.0 - - py-pytorch@0.4.0 ^py-numpy@1.15.1 + #- py-scikit-learn@0.19.1 ^py-numpy@1.15.1 ^py-scipy@1.1.0 + #- py-theano@1.0.2 ^py-numpy@1.15.1 ^py-scipy@1.1.0 + #- py-pytorch@0.4.0 ^py-numpy@1.15.1 stable-parallel: target_matrix: - gnu-stable diff --git a/packages/system-tools.yaml b/packages/system-tools.yaml index b6dac4de..4b8d8f5e 100644 --- a/packages/system-tools.yaml +++ b/packages/system-tools.yaml @@ -31,7 +31,6 @@ packages: - gettext@0.19.8.1 - git@2.18.0 - libtool@2.4.6 - - lmod@7.8 - m4@1.4.18 - ninja@1.8.2 - pkg-config@0.29.2 diff --git a/setup_env.sh b/setup_env.sh index 647ce71d..a2f927d1 100755 --- a/setup_env.sh +++ b/setup_env.sh @@ -17,12 +17,12 @@ mkdir -p $WORKSPACE/HOME_DIR $SOFTS_DIR_PATH $SPACK_MIRROR_DIR # new $HOME to avoid conflict with ~/.spack export HOME=$WORKSPACE/HOME_DIR -rm -rf $HOME/.spack +#rm -rf $HOME/.spack cd $HOME # clone both spack related repos if [ ! -d spack ]; then - git clone https://github.com/BlueBrain/spack.git + git clone https://github.com/BlueBrain/spack.git -b fix/python-packages git clone https://github.com/pramodk/spack-deploy.git -b base-packages fi From 3bccf3f1485fc4eb167042205731063b72d7b520 Mon Sep 17 00:00:00 2001 From: Pramod Kumbhar Date: Thu, 8 Nov 2018 17:37:53 +0100 Subject: [PATCH 11/25] Changes from test --- packages/bbp-packages.yaml | 1 + packages/python-packages.yaml | 2 +- setup_env.sh | 6 ++++-- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/bbp-packages.yaml b/packages/bbp-packages.yaml index ad3cfae0..79dd75b5 100644 --- a/packages/bbp-packages.yaml +++ b/packages/bbp-packages.yaml @@ -20,6 +20,7 @@ parallel-packages: ¶llel-specs - neuron@2018-10 - spykfunc@0.11.0 - touchdetector@4.3.3 + - parquet-converters@0.1 # list of packages to build packages: diff --git a/packages/python-packages.yaml b/packages/python-packages.yaml index 649eb6b5..d4c04521 100644 --- a/packages/python-packages.yaml +++ b/packages/python-packages.yaml @@ -94,7 +94,7 @@ serial-packages: &python-specs - py-virtualenvwrapper - py-wheel - py-yapf - - py-zmq + #- py-zmq # list of packages to build packages: diff --git a/setup_env.sh b/setup_env.sh index a2f927d1..57487a31 100755 --- a/setup_env.sh +++ b/setup_env.sh @@ -1,5 +1,4 @@ #!/bin/bash -set -e ############################## SPACK REPOSITORY ############################# export WORKSPACE=`pwd` @@ -12,9 +11,12 @@ Preparing environment... export PATH=`pwd`:$PATH export WORKSPACE=`pwd`/workspace export SOFTS_DIR_PATH=$WORKSPACE/deployment -export SPACK_MIRROR_DIR=$WORKSPACE/mirror mkdir -p $WORKSPACE/HOME_DIR $SOFTS_DIR_PATH $SPACK_MIRROR_DIR +# TODO : Change this +#export SPACK_MIRROR_DIR=$WORKSPACE/mirror +export SPACK_MIRROR_DIR=/gpfs/bbp.cscs.ch/apps/hpc/test/central-mirror + # new $HOME to avoid conflict with ~/.spack export HOME=$WORKSPACE/HOME_DIR #rm -rf $HOME/.spack From b027c7765ab4d81ff3d312e59a80d9ed83d80813 Mon Sep 17 00:00:00 2001 From: Pramod Kumbhar Date: Thu, 8 Nov 2018 20:56:25 +0100 Subject: [PATCH 12/25] parquet requires python provider; remove compiler preferences --- configs/packages.yaml | 1 - packages/serial-libraries.yaml | 10 +++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/configs/packages.yaml b/configs/packages.yaml index c1c361e6..509cd7fa 100644 --- a/configs/packages.yaml +++ b/configs/packages.yaml @@ -122,7 +122,6 @@ packages: xz@5.2: /usr version: [5.2] all: - compiler: [intel@18.0.1, gcc@6.4.0] providers: mpi: [hpe-mpi, intel-mpi] scalapack: [intel-mkl, netlib-scalapack] diff --git a/packages/serial-libraries.yaml b/packages/serial-libraries.yaml index 9a956423..e0d6939d 100644 --- a/packages/serial-libraries.yaml +++ b/packages/serial-libraries.yaml @@ -22,7 +22,6 @@ serial-packages: &serial-specs - intel-mkl@2018.1.163 - jdk@1.8.0_191-b12 - libxml2@2.9.8 - - parquet@1.4.0 - qt@5.10.0 - spark@2.3.2rc2 - zlib@1.2.11 @@ -37,3 +36,12 @@ packages: - architecture - compiler <<: *serial-specs + gnu-stable-serial-python: + target_matrix: + - gnu-stable + requires: + - architecture + - compiler + - python + specs: + - parquet@1.4.0 From 9496bb4110396e99eb411a38e3432ae5313cc54d Mon Sep 17 00:00:00 2001 From: Pramod Kumbhar Date: Thu, 8 Nov 2018 23:34:03 +0100 Subject: [PATCH 13/25] Remove mpi env variables --- install_specs.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/install_specs.sh b/install_specs.sh index fcd654d8..070efa60 100755 --- a/install_specs.sh +++ b/install_specs.sh @@ -1,5 +1,5 @@ #!/bin/bash -set -e +set +e source "setup_env.sh" install_specs() { @@ -26,6 +26,9 @@ install_specs() { # use mirror with spack spack mirror add --scope=site central_mirror ${SPACK_MIRROR_DIR} || echo "Scope already added!" +# unset mpi variables +unset `env | awk -F= '/^\w/ {print $1}' | egrep '(PMI|SLURM_)' | xargs` + cd $WORKSPACE/HOME_DIR/spack-deploy for category in "${package_categories[@]}" do From f0d4896da9c19737ede5d7bd7730587ec90ce5e7 Mon Sep 17 00:00:00 2001 From: Pramod Kumbhar Date: Fri, 9 Nov 2018 06:32:02 +0100 Subject: [PATCH 14/25] Update omega-h --- create_mirror.sh | 5 ++--- install_specs.sh | 2 +- packages/parallel-libraries.yaml | 2 +- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/create_mirror.sh b/create_mirror.sh index 04125dec..76485561 100755 --- a/create_mirror.sh +++ b/create_mirror.sh @@ -16,6 +16,8 @@ create_mirror() { fi } +# register mirror with spack +spack mirror add --scope=site central_mirror ${SPACK_MIRROR_DIR} || echo "Mirror in scope already added!" cd $WORKSPACE/HOME_DIR/spack-deploy for category in "${package_categories[@]}" @@ -30,7 +32,4 @@ do create_mirror $package_list done -# register mirror with spack -spack mirror add --scope=site central_mirror ${SPACK_MIRROR_DIR} || echo "Scope already added!" - echo -e "Mirror creation finished" diff --git a/install_specs.sh b/install_specs.sh index 070efa60..5372b994 100755 --- a/install_specs.sh +++ b/install_specs.sh @@ -24,7 +24,7 @@ install_specs() { } # use mirror with spack -spack mirror add --scope=site central_mirror ${SPACK_MIRROR_DIR} || echo "Scope already added!" +spack mirror add --scope=site central_mirror ${SPACK_MIRROR_DIR} || echo "Mirror in scope already added!" # unset mpi variables unset `env | awk -F= '/^\w/ {print $1}' | egrep '(PMI|SLURM_)' | xargs` diff --git a/packages/parallel-libraries.yaml b/packages/parallel-libraries.yaml index e153e81d..2ae0cfed 100644 --- a/packages/parallel-libraries.yaml +++ b/packages/parallel-libraries.yaml @@ -35,6 +35,6 @@ packages: - compiler - lapack specs: - - omega-h@9.17.2 + - omega-h@9.22.1 - petsc+int64+mpi@3.9.3 - trilinos@12.12.1 From f66d5c4858ca8f892b95a0352f4e7b31ff21dfc1 Mon Sep 17 00:00:00 2001 From: Pramod Kumbhar Date: Fri, 9 Nov 2018 06:40:50 +0100 Subject: [PATCH 15/25] Add compiler preferences with gcc as first --- configs/packages.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/configs/packages.yaml b/configs/packages.yaml index 509cd7fa..c027f591 100644 --- a/configs/packages.yaml +++ b/configs/packages.yaml @@ -123,5 +123,6 @@ packages: version: [5.2] all: providers: + compiler: [gcc@6.4.0, intel@18.0.1] mpi: [hpe-mpi, intel-mpi] scalapack: [intel-mkl, netlib-scalapack] From f01e3a9130070c91fafeb8ee31abac04177b2ec4 Mon Sep 17 00:00:00 2001 From: Pramod Kumbhar Date: Fri, 9 Nov 2018 06:55:51 +0100 Subject: [PATCH 16/25] Fix wrong config in packages.yaml --- configs/packages.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configs/packages.yaml b/configs/packages.yaml index c027f591..f0f102b8 100644 --- a/configs/packages.yaml +++ b/configs/packages.yaml @@ -122,7 +122,7 @@ packages: xz@5.2: /usr version: [5.2] all: + compiler: [gcc@6.4.0, intel@18.0.1] providers: - compiler: [gcc@6.4.0, intel@18.0.1] mpi: [hpe-mpi, intel-mpi] scalapack: [intel-mkl, netlib-scalapack] From e2b4a950065f4081afd1c075ce29ae6d9b87f216 Mon Sep 17 00:00:00 2001 From: Pramod Kumbhar Date: Fri, 9 Nov 2018 22:41:11 +0100 Subject: [PATCH 17/25] Refine all specs : all with gcc and minimal set with Intel --- packages/bbp-packages.yaml | 80 ++++++++---- packages/compilers.yaml | 4 +- packages/parallel-libraries.yaml | 47 +++++-- packages/python-packages.yaml | 212 ++++++++++++++++--------------- packages/serial-libraries.yaml | 63 +++++---- packages/system-tools.yaml | 37 ++++-- 6 files changed, 265 insertions(+), 178 deletions(-) diff --git a/packages/bbp-packages.yaml b/packages/bbp-packages.yaml index 79dd75b5..c98caa49 100644 --- a/packages/bbp-packages.yaml +++ b/packages/bbp-packages.yaml @@ -1,6 +1,5 @@ -# Build packages from HPC team +# Package configurations for BBP Software Stack -# axis that defines software deployment strategy axis: - architecture - compiler @@ -8,56 +7,83 @@ axis: - lapack - python -# toolchain combinations combinations: !include packages/toolchains.yaml -parallel-packages: ¶llel-specs - specs: - - functionalizer@3.11.0 - - neurodamus@plasticity - - neurodamus@master~coreneuron - - neurodamus@hippocampus~coreneuron - - neuron@2018-10 - - spykfunc@0.11.0 - - touchdetector@4.3.3 - - parquet-converters@0.1 - -# list of packages to build packages: - # with default gnu, intel toolchains + mpi - gnu-intel-parallel: + + #### circuit building #### + + gnu-stable-serial: target_matrix: - gnu-stable - - intel-stable requires: - architecture - compiler - <<: *parallel-specs + specs: + - spykfunc@0.11.0 - # with default gnu, intel toolchains + mpi + lapack - gnu-intel-lapack-parallel: + gnu-stable-parallel: + target_matrix: + - gnu-stable + requires: + - architecture + - compiler + - mpi + specs: + - functionalizer@3.11.0 + - touchdetector@4.3.3 + - parquet-converters@0.1 + + #### sub-cellular #### + + gnu-stable-lapack-python-parallel: target_matrix: - gnu-stable - - intel-stable requires: - architecture - compiler - lapack + - mpi + - python specs: - steps@3.3.0+petsc + + gnu-stable-lapack-parallel: + target_matrix: + - gnu-stable + requires: + - architecture + - compiler + - lapack + specs: - zee@develop - # packages from nse tream - gnu-intel-lapack-python-parallel: + gnu-stable-lapack-python-parallel: target_matrix: - gnu-stable - - intel-stable requires: - architecture - compiler - lapack - python specs: - - py-bluepymm@0.6.35 - - py-bluepyopt@1.6.56 + - py-bluepymm@0.6.35 ^neuron~mpi + - py-bluepyopt@1.6.56 ^neuron~mpi - py-efel@3.0.22 + + #### cellular #### + + gnu-intel-stable-parallel: + target_matrix: + - gnu-stable + - intel-stable + requires: + - architecture + - compiler + - mpi + specs: + - neurodamus@plasticity + - neurodamus@master~coreneuron + - neurodamus@hippocampus~coreneuron + - neuron@2018-10 + - synapsetool@0.3.2 diff --git a/packages/compilers.yaml b/packages/compilers.yaml index cd98ee4f..b8a51e7c 100644 --- a/packages/compilers.yaml +++ b/packages/compilers.yaml @@ -1,4 +1,4 @@ -# Build all compilers packages +# Compiler Specs # axis that defines software deployment strategy axis: @@ -20,7 +20,7 @@ combinations: lapack: None python: None -# list of packages to build +# list of compilers to build packages: compilers: target_matrix: diff --git a/packages/parallel-libraries.yaml b/packages/parallel-libraries.yaml index 2ae0cfed..f048da14 100644 --- a/packages/parallel-libraries.yaml +++ b/packages/parallel-libraries.yaml @@ -1,6 +1,5 @@ -# Build all parallel libraries +# Packages and libraries require MPI -# axis that defines software deployment strategy axis: - architecture - compiler @@ -8,33 +7,57 @@ axis: - lapack - python -# toolchain combinations combinations: !include packages/toolchains.yaml -# list of packages to build packages: - # with default gnu, intel toolchains + mpi - gnu-intel-stable-parallel: + + gnu-stable-parallel: target_matrix: - gnu-stable - - intel-stable requires: - architecture - compiler - mpi specs: - hdf5+mpi@1.10.2 + - highfive@1.6 + - hypre@2.15.1 + - matio@1.5.9 + - netcdf@4.6.1 + - omega-h@9.22.1 + - parmetis@4.0.3 - # with default gnu, intel toolchains + mpi + lapack - gnu-intel-stable-parallel-lapack: + gnu-stable-parallel-lapack: target_matrix: - gnu-stable - - intel-stable requires: - architecture - compiler + - mpi - lapack specs: - - omega-h@9.22.1 + - superlu-dist@6.0.0 + - trilinos@xsdk-0.4.0-rc1 + + gnu-stable-parallel-lapack-python: + target_matrix: + - gnu-stable + requires: + - architecture + - compiler + - lapack + - mpi + - python + specs: - petsc+int64+mpi@3.9.3 - - trilinos@12.12.1 + + gnu-intel-stable-parallel: + target_matrix: + - gnu-stable + - intel-stable + requires: + - architecture + - compiler + - mpi + specs: + - neuron@2018-10 diff --git a/packages/python-packages.yaml b/packages/python-packages.yaml index d4c04521..19bdef1f 100644 --- a/packages/python-packages.yaml +++ b/packages/python-packages.yaml @@ -1,4 +1,5 @@ -# axis that defines software deployment strategy +# Python packages + axis: - architecture - compiler @@ -6,108 +7,114 @@ axis: - lapack - python -# toolchain combinations combinations: !include packages/toolchains.yaml -serial-packages: &python-specs - specs: - - py-argcomplete - - py-argparse - - py-bb5 - - py-beautifulsoup4 - - py-bokeh - - py-click - - py-clustershell - - py-coverage - - py-cpuinfo - - py-csvkit - - py-cython - - py-cpuinfo - - py-dateutil - - py-deap - - py-docopt - - py-efel - - py-elasticsearch - - py-elephant - - py-enum34 - - py-fastaindex - - py-flake8 - - py-funcsigs - - py-future - - py-gcovr - - py-gnuplot - - py-h5py - - py-hdfs - - py-ipykernel - - py-ipyparallel - - py-ipython - - py-ipython-genutils - - py-ipywidgets - - py-ipython - - py-jinja2 - - py-jprops - - py-jupyter-client - - py-jupyter-console - - py-jupyter-core - - py-jupyter-notebook - - py-lazy-property - - py-line-profiler - - py-lxml - - py-markdown - - py-matplotlib - - py-memory-profiler - - py-multiprocess - - py-neo - - py-networkx - - py-nose - #- py-numba - - py-pandas - - py-perf - - py-pillow - - py-pip - - py-ply - - py-progress - - py-py4j - - py-pyarrow - - py-pynn - - py-pyspark - - py-pytest - - py-pyyaml - - py-regex - - py-requests - - py-seaborn - - py-setuptools - - py-sh - - py-shapely - - py-simplejson - - py-six - - py-slurm-pipeline - - py-sparkmanager - - py-sphinx - - py-sphinx-bootstrap-theme - - py-sphinx-rtd-theme - - py-symengine - - py-sympy - - py-toml - - py-virtualenv - - py-virtualenv-clone - - py-virtualenvwrapper - - py-wheel - - py-yapf - #- py-zmq - -# list of packages to build packages: - # with default gnu, intel and intel-knl toolchain - stable-serial: + + gnu-stable-serial: target_matrix: - gnu-stable requires: - architecture - compiler - python - <<: *python-specs - stable-serial-lapack: + specs: + - py-appnope + - py-argcomplete + - py-argparse + - py-babel + - py-bb5 + - py-beautifulsoup4 + - py-bokeh + - py-cffi + - py-click + - py-clustershell + - py-coverage + - py-cpuinfo + - py-csvkit + - py-cycler + - py-cython + - py-cpuinfo + - py-dateutil + - py-deap + - py-decorator + - py-docopt + - py-efel + - py-elasticsearch + - py-elephant + - py-enum34 + - py-fastaindex + - py-flake8 + - py-funcsigs + - py-future + - py-futures + - py-gcovr + - py-gnuplot + - py-h5py + - py-hdfs + - py-ipykernel + - py-ipyparallel + - py-ipython + - py-ipython-genutils + - py-ipywidgets + - py-ipython + - py-jinja2 + - py-jprops + - py-jupyter-client + - py-jupyter-console + - py-jupyter-core + - py-jupyter-notebook + - py-lazy-property + - py-line-profiler + - py-lxml + - py-markdown + - py-matplotlib + - py-memory-profiler + - py-mpmath + - py-multiprocess + - py-neo + - py-networkx + - py-nose + - py-pandas + - py-perf + - py-pillow + - py-pip + - py-ply + - py-progress + - py-py4j + - py-pyarrow + - py-pynn + - py-pyspark + - py-pytest + - py-pyyaml + - py-regex + - py-requests + - py-seaborn + - py-setuptools + - py-setuptools-scm + - py-sh + - py-shapely + - py-simplejson + - py-six + - py-slurm-pipeline + - py-sparkmanager + - py-sphinx + - py-sphinx-bootstrap-theme + - py-sphinx-rtd-theme + - py-sqlalchemy + - py-symengine + - py-sympy + - py-toml + - py-tornado + - py-urllib3 + - py-virtualenv + - py-virtualenv-clone + - py-virtualenvwrapper + - py-wheel + - py-yapf + - py-zmq + + gnu-stable-serial-lapack: target_matrix: - gnu-stable requires: @@ -116,13 +123,14 @@ packages: - lapack - python specs: - - py-numpy@1.15.1 - - py-scipy@1.1.0 ^py-numpy@1.15.1 - - py-matplotlib@2.2.3 ^py-numpy@1.15.1 - #- py-scikit-learn@0.19.1 ^py-numpy@1.15.1 ^py-scipy@1.1.0 - #- py-theano@1.0.2 ^py-numpy@1.15.1 ^py-scipy@1.1.0 - #- py-pytorch@0.4.0 ^py-numpy@1.15.1 - stable-parallel: + - py-numpy@1.15.2 + - py-scipy@1.1.0 ^py-numpy@1.15.2 + - py-matplotlib@3.0.0 ^py-numpy@1.15.2 + - py-scikit-learn@0.20.0 ^py-numpy@1.15.2 ^py-scipy@1.1.0 + - py-theano@1.0.2 ^py-numpy@1.15.2 ^py-scipy@1.1.0 + - py-pytorch@0.4.0 ^py-numpy@1.15.1 + + gnu-stable-parallel-python: target_matrix: - gnu-stable requires: @@ -131,4 +139,4 @@ packages: - mpi - python specs: - - py-mpi4py@3.0.0 + - py-mpi4py@3.0.0 diff --git a/packages/serial-libraries.yaml b/packages/serial-libraries.yaml index e0d6939d..f446f7ed 100644 --- a/packages/serial-libraries.yaml +++ b/packages/serial-libraries.yaml @@ -1,4 +1,5 @@ -# axis that defines software deployment strategy +# Serial libraries and packages + axis: - architecture - compiler @@ -6,42 +7,52 @@ axis: - lapack - python -# toolchain combinations combinations: !include packages/toolchains.yaml -serial-packages: &serial-specs - specs: - - arrow@0.11.0 - - boost~mpi@1.68.0 - - cuda@9.2.88 - - hdf5~mpi@1.10.2 - - hadoop@2.9.0 - - highfive~mpi@1.6 - - hpe-mpi@2.16 - - intel-mpi@2018.1.163 - - intel-mkl@2018.1.163 - - jdk@1.8.0_191-b12 - - libxml2@2.9.8 - - qt@5.10.0 - - spark@2.3.2rc2 - - zlib@1.2.11 - -# list of packages to build packages: - # with default gnu toolchain + gnu-stable-serial: target_matrix: - gnu-stable requires: - architecture - compiler - <<: *serial-specs - gnu-stable-serial-python: + specs: + - arrow@0.11.0 + - boost~mpi@1.68.0 + - bzip2@1.0.6 + - cuda@9.2.88 + - gmsh+oce~mpi@3.0.6 + - hdf5~mpi@1.10.2 + - hadoop@2.9.0 + - highfive~mpi@1.6 + - hpe-mpi@2.16 + - intel-mpi@2018.1.163 + - intel-mkl@2018.1.163 + - jdk@1.8.0_191-b12 + - libjpeg@1.2.90 + - libjpeg@1.2.90 + - libxml2@2.9.8 + - libxslt@1.1.29 + - metis@5.1.0 + - ncurses@5.9 + - neuron~mpi@2018-10 + - openblas@0.2.20 + - python@3.6.5 + - qhull@2015.2 + - qt@5.10.0 + - readline@7.0 + - spark@2.3.2rc2 + - sqlite@3.23.1 + - symengine@0.3.0 + - zeromq@4.2.5 + - zlib@1.2.11 + + intel-stable-serial: target_matrix: - - gnu-stable + - intel-stable requires: - architecture - compiler - - python specs: - - parquet@1.4.0 + - neuron~mpi@2018-10 diff --git a/packages/system-tools.yaml b/packages/system-tools.yaml index 4b8d8f5e..d97c96cf 100644 --- a/packages/system-tools.yaml +++ b/packages/system-tools.yaml @@ -1,6 +1,5 @@ -# Common (build) dependency packages +# Common dependency packages -# axis that defines software deployment strategy axis: - architecture - compiler @@ -8,33 +7,53 @@ axis: - lapack - python -# toolchain combinations combinations: !include packages/toolchains.yaml -# list of packages to build packages: - # all serial packages with system compiler - gnu-core-serial: + + gnu-stable-serial: target_matrix: - - core + - gnu-stable requires: - architecture - compiler specs: - autoconf@2.69 - automake@1.16.1 + - binutils@2.31.1 - bison@3.0.5 - cmake@3.12.2 - environment-modules@3.2.10 - flex@2.6.3 - - gdb@8.2 + - gdbm@1.14.1 - gettext@0.19.8.1 - git@2.18.0 + - gmp@6.1.2 + - help2man@1.47.4 + - isl@0.18 - libtool@2.4.6 + - libx11@1.6.5 - m4@1.4.18 - - ninja@1.8.2 + - mpc@1.1.0 + - node-js@6.12.2 + - npm@3.10.9 - pkg-config@0.29.2 + - swig@3.0.12 - tcl@8.6.8 + - texinfo@6.5 - tk@8.6.8 - util-macros@1.19.1 - valgrind~mpi@3.13.0 + + gnu-stable-python-serial: + target_matrix: + - gnu-stable + requires: + - architecture + - compiler + - python + specs: + - gdb@8.2 + - ninja@1.8.2 + - py-lit@0.5.0 + - py-setuptools@40.4.3 From 534fe7d3e5191b8476be047918b1a44ca0e5e470 Mon Sep 17 00:00:00 2001 From: Pramod Kumbhar Date: Sat, 10 Nov 2018 17:31:29 +0100 Subject: [PATCH 18/25] Add petsc and trilinois variant/version preferences in packages.yaml; update package specs --- configs/packages.yaml | 3 +++ packages/bbp-packages.yaml | 17 +++++++++++++++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/configs/packages.yaml b/configs/packages.yaml index f0f102b8..4afa9e3f 100644 --- a/configs/packages.yaml +++ b/configs/packages.yaml @@ -92,6 +92,8 @@ packages: paths: perl@5.16.3: /usr version: [5.16.3] + petsc: + variants: +patchmpi64 pkg-config: paths: pkg-config@0.27.1: /usr @@ -117,6 +119,7 @@ packages: version: [8.5.13] trilinos: variants: +kokkos+teuchos~amesos~hypre~superlu-dist~mumps~metis~suite-sparse + version: [xsdk-0.4.0-rc1] xz: paths: xz@5.2: /usr diff --git a/packages/bbp-packages.yaml b/packages/bbp-packages.yaml index c98caa49..10cc3798 100644 --- a/packages/bbp-packages.yaml +++ b/packages/bbp-packages.yaml @@ -19,6 +19,7 @@ packages: requires: - architecture - compiler + - python specs: - spykfunc@0.11.0 @@ -32,7 +33,17 @@ packages: specs: - functionalizer@3.11.0 - touchdetector@4.3.3 - - parquet-converters@0.1 + + gnu-stable-parallel-python: + target_matrix: + - gnu-stable + requires: + - architecture + - compiler + - mpi + - python + specs: + - parquet-converters@0.2 #### sub-cellular #### @@ -54,7 +65,9 @@ packages: requires: - architecture - compiler + - mpi - lapack + - python specs: - zee@develop @@ -67,7 +80,7 @@ packages: - lapack - python specs: - - py-bluepymm@0.6.35 ^neuron~mpi + - py-bluepymm@0.6.38 ^neuron~mpi - py-bluepyopt@1.6.56 ^neuron~mpi - py-efel@3.0.22 From 707719b9b344b6aa1da407cc9010c919437be926 Mon Sep 17 00:00:00 2001 From: Pramod Kumbhar Date: Sat, 10 Nov 2018 17:54:57 +0100 Subject: [PATCH 19/25] Remove hypre --- packages/parallel-libraries.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/parallel-libraries.yaml b/packages/parallel-libraries.yaml index f048da14..5a21459e 100644 --- a/packages/parallel-libraries.yaml +++ b/packages/parallel-libraries.yaml @@ -21,7 +21,6 @@ packages: specs: - hdf5+mpi@1.10.2 - highfive@1.6 - - hypre@2.15.1 - matio@1.5.9 - netcdf@4.6.1 - omega-h@9.22.1 From 0ba4e3de80d9066ab5e7ea83a6cbeff789f8afef Mon Sep 17 00:00:00 2001 From: Pramod Kumbhar Date: Sun, 11 Nov 2018 02:06:18 +0100 Subject: [PATCH 20/25] Downgrade python packages for current develop and remove non python3.6.5 incompatible packages --- packages/parallel-libraries.yaml | 2 +- packages/python-packages.yaml | 11 ++++------- packages/system-tools.yaml | 2 +- 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/packages/parallel-libraries.yaml b/packages/parallel-libraries.yaml index 5a21459e..4bd8d5f9 100644 --- a/packages/parallel-libraries.yaml +++ b/packages/parallel-libraries.yaml @@ -35,7 +35,7 @@ packages: - mpi - lapack specs: - - superlu-dist@6.0.0 + - superlu-dist@5.4.0 - trilinos@xsdk-0.4.0-rc1 gnu-stable-parallel-lapack-python: diff --git a/packages/python-packages.yaml b/packages/python-packages.yaml index 19bdef1f..86675a74 100644 --- a/packages/python-packages.yaml +++ b/packages/python-packages.yaml @@ -19,7 +19,6 @@ packages: - compiler - python specs: - - py-appnope - py-argcomplete - py-argparse - py-babel @@ -42,14 +41,12 @@ packages: - py-efel - py-elasticsearch - py-elephant - - py-enum34 - py-fastaindex - py-flake8 - py-funcsigs - py-future - py-futures - py-gcovr - - py-gnuplot - py-h5py - py-hdfs - py-ipykernel @@ -123,10 +120,10 @@ packages: - lapack - python specs: - - py-numpy@1.15.2 - - py-scipy@1.1.0 ^py-numpy@1.15.2 - - py-matplotlib@3.0.0 ^py-numpy@1.15.2 - - py-scikit-learn@0.20.0 ^py-numpy@1.15.2 ^py-scipy@1.1.0 + - py-numpy@1.15.1 + - py-scipy@1.1.0 ^py-numpy@1.15.1 + - py-matplotlib@2.2.3 ^py-numpy@1.15.1 + - py-scikit-learn@0.19.1 ^py-numpy@1.15.1 ^py-scipy@1.1.0 - py-theano@1.0.2 ^py-numpy@1.15.2 ^py-scipy@1.1.0 - py-pytorch@0.4.0 ^py-numpy@1.15.1 diff --git a/packages/system-tools.yaml b/packages/system-tools.yaml index d97c96cf..a44364e0 100644 --- a/packages/system-tools.yaml +++ b/packages/system-tools.yaml @@ -56,4 +56,4 @@ packages: - gdb@8.2 - ninja@1.8.2 - py-lit@0.5.0 - - py-setuptools@40.4.3 + - py-setuptools@40.2.0 From 606648195c707519fc824fe0f58853d61c9f1272 Mon Sep 17 00:00:00 2001 From: Pramod Kumbhar Date: Sun, 11 Nov 2018 20:14:00 +0100 Subject: [PATCH 21/25] Fix theano numpy depndency and steps yaml config --- packages/bbp-packages.yaml | 2 +- packages/python-packages.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/bbp-packages.yaml b/packages/bbp-packages.yaml index 10cc3798..050b5e5f 100644 --- a/packages/bbp-packages.yaml +++ b/packages/bbp-packages.yaml @@ -71,7 +71,7 @@ packages: specs: - zee@develop - gnu-stable-lapack-python-parallel: + gnu-stable-lapack-python: target_matrix: - gnu-stable requires: diff --git a/packages/python-packages.yaml b/packages/python-packages.yaml index 86675a74..ccb57ba4 100644 --- a/packages/python-packages.yaml +++ b/packages/python-packages.yaml @@ -124,7 +124,7 @@ packages: - py-scipy@1.1.0 ^py-numpy@1.15.1 - py-matplotlib@2.2.3 ^py-numpy@1.15.1 - py-scikit-learn@0.19.1 ^py-numpy@1.15.1 ^py-scipy@1.1.0 - - py-theano@1.0.2 ^py-numpy@1.15.2 ^py-scipy@1.1.0 + - py-theano@1.0.2 ^py-numpy@1.15.1 ^py-scipy@1.1.0 - py-pytorch@0.4.0 ^py-numpy@1.15.1 gnu-stable-parallel-python: From c78ba5999bea70d86e4f4eca811a287533d8eb62 Mon Sep 17 00:00:00 2001 From: Pramod Kumbhar Date: Sun, 11 Nov 2018 22:57:51 +0100 Subject: [PATCH 22/25] Added date-time for log file --- create_mirror.sh | 2 +- install_specs.sh | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/create_mirror.sh b/create_mirror.sh index 76485561..3256f716 100755 --- a/create_mirror.sh +++ b/create_mirror.sh @@ -1,5 +1,5 @@ #!/bin/bash -set +e +set -e source "setup_env.sh" diff --git a/install_specs.sh b/install_specs.sh index 5372b994..912d865e 100755 --- a/install_specs.sh +++ b/install_specs.sh @@ -2,6 +2,8 @@ set +e source "setup_env.sh" +timestamp=`date +"%a-%d-%m-%Y-%H-%M"` + install_specs() { package_list=$1 category=$2 @@ -13,7 +15,7 @@ install_specs() { else echo "Installing packages " spack spec -Il ${to_be_installed} - spack install --log-format=junit --log-file=${category}.xml ${to_be_installed} + spack install --log-format=junit --log-file=${category}.${timestamp}.xml ${to_be_installed} #spack filter --not-installed $(cat $package_list) > todo.txt #while read -r package #do From 91305103023dd0b49fd6fd3b229d20a222568b39 Mon Sep 17 00:00:00 2001 From: Pramod Kumbhar Date: Sun, 18 Nov 2018 17:38:15 +0100 Subject: [PATCH 23/25] Update installations with: - intel 18.0.1 -> 18.0.3 - configure compilers, specifically pgi for uc2 - config.yaml install scheme changed - central mirror added at the begining --- configs/config.yaml | 5 +++- create_mirror.sh | 2 -- install_specs.sh | 62 ++++++++++++++++++++++++++++++++++------ packages/compilers.yaml | 4 +-- packages/toolchains.yaml | 4 +-- setup_env.sh | 6 +++- 6 files changed, 66 insertions(+), 17 deletions(-) diff --git a/configs/config.yaml b/configs/config.yaml index 1c9872c9..9f793dca 100644 --- a/configs/config.yaml +++ b/configs/config.yaml @@ -4,5 +4,8 @@ config: module_roots: tcl: $SOFTS_DIR_PATH/modules/tcl lmod: $SOFTS_DIR_PATH/modules/lmod - install_path_scheme: '${COMPILERNAME}-${COMPILERVER}/${PACKAGE}-${VERSION}-${HASH:6}' + build_stage: + - $tempdir + - $SOFTS_DIR_PATH/.stage + install_path_scheme: '${ARCHITECTURE}/${COMPILERNAME}-${COMPILERVER}/${PACKAGE}-${VERSION}-${HASH:10}' build_jobs: 36 diff --git a/create_mirror.sh b/create_mirror.sh index 3256f716..2bee95ba 100755 --- a/create_mirror.sh +++ b/create_mirror.sh @@ -16,8 +16,6 @@ create_mirror() { fi } -# register mirror with spack -spack mirror add --scope=site central_mirror ${SPACK_MIRROR_DIR} || echo "Mirror in scope already added!" cd $WORKSPACE/HOME_DIR/spack-deploy for category in "${package_categories[@]}" diff --git a/install_specs.sh b/install_specs.sh index 912d865e..121dcbfa 100755 --- a/install_specs.sh +++ b/install_specs.sh @@ -1,9 +1,56 @@ #!/bin/bash -set +e +set -e source "setup_env.sh" timestamp=`date +"%a-%d-%m-%Y-%H-%M"` +configure_compilers() { + GCC_DIR=`spack location --install-dir gcc@6.4.0` + + if [ ! -d $GCC_DIR ]; then + echo "Error : gcc@6.4.0 not installed ?" + exit 1 + fi + + while read -r line; do + set +o nounset + spack load ${line} + set -o nounset + if [[ ${line} != *"intel-parallel-studio"* ]]; then + spack compiler find --scope=user + fi + + if [[ ${line} = *"intel"* ]]; then + # update intel modules to use gcc@6.4.0 in .cfg files + install_dir=$(spack location --install-dir ${line}) + for f in $(find ${install_dir} -name "icc.cfg" -o -name "icpc.cfg" -o -name "ifort.cfg"); do + if ! grep -q "${GCC_DIR}" $f; then + echo "-gcc-name=${GCC_DIR}/bin/gcc" >> ${f} + echo "-Xlinker -rpath=${GCC_DIR}/lib" >> ${f} + echo "-Xlinker -rpath=${GCC_DIR}/lib64" >> ${f} + echo "[CFG] Updated ${f} with newer GCC" + fi + done + elif [[ ${line} = *"pgi"* ]]; then + #update pgi modules for network installation (on uc2 nodes) + PGI_DIR=$(dirname $(which makelocalrc)) + makelocalrc ${PGI_DIR} -gcc ${GCC_DIR}/bin/gcc -gpp ${GCC_DIR}/bin/g++ -g77 ${GCC_DIR}/bin/gfortran -x -net + + #configure pgi network license + template=`find $PGI_DIR -name localrc* | tail -n 1` + for node in bbpv1 bbpv2 r2i3n0 r2i3n1 r2i3n2 r2i3n3 r2i3n4 r2i3n5 r2i3n6 + do + cp $template $PGI_DIR/localrc.$node || echo "Same file" + done + fi + spack unload ${line} + done + + sed -i 's#.*f\(77\|c\): null# f\1: /usr/bin/gfortran#' ${HOME}/.spack/compilers.yaml +} + + + install_specs() { package_list=$1 category=$2 @@ -22,23 +69,20 @@ install_specs() { # spack spec -Il ${package} # spack install --log-format=junit --log-file=${category}.xml ${package} #done < todo.txt + + if [[ $category = *"compilers"* ]]; then + echo "Configuring compilers " + configure_compilers <<< "${to_be_installed}" + fi fi } -# use mirror with spack -spack mirror add --scope=site central_mirror ${SPACK_MIRROR_DIR} || echo "Mirror in scope already added!" - # unset mpi variables unset `env | awk -F= '/^\w/ {print $1}' | egrep '(PMI|SLURM_)' | xargs` cd $WORKSPACE/HOME_DIR/spack-deploy for category in "${package_categories[@]}" do - # skip compilers for now - if [[ $category = *"compilers"* ]]; then - continue - fi - package_list=`basename $category .yaml`.txt echo "Installing packages in category $category" install_specs $package_list $category diff --git a/packages/compilers.yaml b/packages/compilers.yaml index b8a51e7c..5c92bdc7 100644 --- a/packages/compilers.yaml +++ b/packages/compilers.yaml @@ -31,7 +31,7 @@ packages: specs: - gcc@8.2.0 - gcc@6.4.0 - - intel-parallel-studio+advisor+clck+daal+gdb+inspector+ipp+itac+mkl+mpi+rpath+shared+tbb+vtune@cluster.2018.1 - - intel@18.0.1 + - intel-parallel-studio+advisor+clck+daal+gdb+inspector+ipp+itac+mkl+mpi+rpath+shared+tbb+vtune@cluster.2018.3 + - intel@18.0.3 - llvm@7.0.0 - pgi+network+nvidia+mpi@18.4 diff --git a/packages/toolchains.yaml b/packages/toolchains.yaml index 9ed60e57..72183f71 100644 --- a/packages/toolchains.yaml +++ b/packages/toolchains.yaml @@ -26,7 +26,7 @@ intel-stable: architecture: - x86_64 compiler: - - intel@18.0.1 + - intel@18.0.3 mpi: - hpe-mpi@2.16 lapack: @@ -39,7 +39,7 @@ intel-knl-stable: architecture: - x86_64_knl compiler: - - intel@18.0.1 + - intel@18.0.3 mpi: - hpe-mpi@2.16 lapack: diff --git a/setup_env.sh b/setup_env.sh index 57487a31..93340336 100755 --- a/setup_env.sh +++ b/setup_env.sh @@ -26,6 +26,7 @@ cd $HOME if [ ! -d spack ]; then git clone https://github.com/BlueBrain/spack.git -b fix/python-packages git clone https://github.com/pramodk/spack-deploy.git -b base-packages + git clone ssh://bbpcode.epfl.ch/user/kumbhar/spack-licenses spack/etc/spack/licenses fi export SPACK_ROOT=`pwd`/spack @@ -33,8 +34,8 @@ export PATH=$SPACK_ROOT/bin:$PATH # copy config files mkdir -p $SPACK_ROOT/etc/spack/defaults/linux -cp $SPACK_ROOT/sysconfig/bb5/users/* $SPACK_ROOT/etc/spack/defaults/linux/ cp $WORKSPACE/HOME_DIR/spack-deploy/configs/packages.yaml $SPACK_ROOT/etc/spack/defaults/linux/ +cp $WORKSPACE/HOME_DIR/spack-deploy/configs/config.yaml $SPACK_ROOT/etc/spack/defaults/linux/ source $SPACK_ROOT/share/spack/setup-env.sh @@ -60,3 +61,6 @@ do done deactivate + +# use mirror with spack +spack mirror add --scope=site central_mirror ${SPACK_MIRROR_DIR} || echo "Mirror in scope already added!" From 7228236d47f367c774f1b99513120ddf1d2df53c Mon Sep 17 00:00:00 2001 From: Pramod Kumbhar Date: Mon, 19 Nov 2018 05:01:28 +0100 Subject: [PATCH 24/25] Fix specs to avoid duplicate installs --- packages/bbp-packages.yaml | 3 ++- packages/parallel-libraries.yaml | 4 ++-- packages/python-packages.yaml | 2 +- packages/serial-libraries.yaml | 21 ++++++++++++++++----- packages/toolchains.yaml | 6 +++--- 5 files changed, 24 insertions(+), 12 deletions(-) diff --git a/packages/bbp-packages.yaml b/packages/bbp-packages.yaml index 050b5e5f..7d4e60d8 100644 --- a/packages/bbp-packages.yaml +++ b/packages/bbp-packages.yaml @@ -86,7 +86,7 @@ packages: #### cellular #### - gnu-intel-stable-parallel: + gnu-intel-stable-python-parallel: target_matrix: - gnu-stable - intel-stable @@ -94,6 +94,7 @@ packages: - architecture - compiler - mpi + - python specs: - neurodamus@plasticity - neurodamus@master~coreneuron diff --git a/packages/parallel-libraries.yaml b/packages/parallel-libraries.yaml index 4bd8d5f9..761b8d27 100644 --- a/packages/parallel-libraries.yaml +++ b/packages/parallel-libraries.yaml @@ -19,7 +19,7 @@ packages: - compiler - mpi specs: - - hdf5+mpi@1.10.2 + - hdf5+mpi@1.10.3 - highfive@1.6 - matio@1.5.9 - netcdf@4.6.1 @@ -48,7 +48,7 @@ packages: - mpi - python specs: - - petsc+int64+mpi@3.9.3 + - petsc+int64+mpi@3.10.1 gnu-intel-stable-parallel: target_matrix: diff --git a/packages/python-packages.yaml b/packages/python-packages.yaml index ccb57ba4..3df98bdc 100644 --- a/packages/python-packages.yaml +++ b/packages/python-packages.yaml @@ -47,7 +47,7 @@ packages: - py-future - py-futures - py-gcovr - - py-h5py + - py-h5py~mpi - py-hdfs - py-ipykernel - py-ipyparallel diff --git a/packages/serial-libraries.yaml b/packages/serial-libraries.yaml index f446f7ed..e3fa8347 100644 --- a/packages/serial-libraries.yaml +++ b/packages/serial-libraries.yaml @@ -18,12 +18,12 @@ packages: - architecture - compiler specs: - - arrow@0.11.0 + - arrow+parquet~python@0.11.0 - boost~mpi@1.68.0 - bzip2@1.0.6 - cuda@9.2.88 - gmsh+oce~mpi@3.0.6 - - hdf5~mpi@1.10.2 + - hdf5~mpi@1.10.3 - hadoop@2.9.0 - highfive~mpi@1.6 - hpe-mpi@2.16 @@ -36,8 +36,7 @@ packages: - libxslt@1.1.29 - metis@5.1.0 - ncurses@5.9 - - neuron~mpi@2018-10 - - openblas@0.2.20 + - openblas@0.3.3 - python@3.6.5 - qhull@2015.2 - qt@5.10.0 @@ -48,11 +47,23 @@ packages: - zeromq@4.2.5 - zlib@1.2.11 - intel-stable-serial: + gnu-stable-serial-python: + target_matrix: + - gnu-stable + requires: + - architecture + - compiler + - python + specs: + - arrow+parquet+python@0.11.0 + - neuron~mpi@2018-10 + + intel-stable-serial-python: target_matrix: - intel-stable requires: - architecture - compiler + - python specs: - neuron~mpi@2018-10 diff --git a/packages/toolchains.yaml b/packages/toolchains.yaml index 72183f71..6c3faa25 100644 --- a/packages/toolchains.yaml +++ b/packages/toolchains.yaml @@ -17,7 +17,7 @@ gnu-stable: mpi: - hpe-mpi@2.16 lapack: - - openblas@0.2.20 + - openblas@0.3.3 python: - python@3.6.5 @@ -56,7 +56,7 @@ pgi-stable: mpi: - hpe-mpi@2.16 lapack: - - openblas@0.2.20 + - openblas@0.3.3 python: - python@2.7.15 @@ -69,6 +69,6 @@ llvm-stable: mpi: - hpe-mpi@2.16 lapack: - - openblas@0.2.20 + - openblas@0.3.3 python: - python@2.7.15 From 2f20af4784a9a8a24f4f78ae1cc7e6d06c98d0bb Mon Sep 17 00:00:00 2001 From: Pramod Kumbhar Date: Mon, 19 Nov 2018 05:36:47 +0100 Subject: [PATCH 25/25] spackd should print compiler specs before all depndencies --- spackd.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/spackd.py b/spackd.py index b94898fd..de026b93 100755 --- a/spackd.py +++ b/spackd.py @@ -226,4 +226,9 @@ def packages(ctx, target, output, only): penv = ProductionEnvironment(ctx.parent.configuration, only=only) for item in filter(lambda x: x.architecture == target, penv.items()): - output.write(item.spec + ' %' + item.compiler + ' target=' + item.architecture + '\n') + # compiler spec should come before all dependencies + if '^' in item.spec: + spec = item.spec.replace(' ^', ' %%%s ^' % item.compiler, 1) + else: + spec = item.spec + ' %' + item.compiler + output.write(spec + ' target=' + item.architecture + '\n')