You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 11 Next »

Detailed specification of the task, requirements and comments are here: https://trello.com/c/c5tyJ2ke

After task is finished, this page should contain step by step instruction for each and every installation

1.  Installation of SPACK

  1. Load GCC 7.3.0:

    module load gnu/7.3.0
  2. Prepare directories:

    $: mkdir -p <ROOT_DIR>/{cache,libs,modules,spack,stage}-{<compiler_names>}
    $: mkdir -p <ROOT_DIR>/cache-{<compiler_names>}/{cache,var,test}
    $: tree <ROOT_DIR/
    <ROOT_DIR>/
    ├── cache-compiler_x
    │   ├── cache
    │   ├── test
    │   └── var
    ├── cache-compiler_y
    │   ├── cache
    │   ├── test
    │   └── var
    ├── libs-compiler_x
    ├── libs-compiler_y
    ├── modules-compiler_x
    ├── modules-compiler_y
    ├── spack-compiler_x
    ├── spack-compiler_y
    ├── stage-compiler_x
    └── stage-compiler_y
  3. Clone spack repository to spack-gcc :

    git clone https://github.com/spack/spack.git spack-compiler_name
  4. Go into spack-gcc directory:

    cd spack-compiler_name
  5. Checkout desired version of spack :

    git checkout v0.19.0
  6. Set-up spack configuration:

    1. Go to directory where default configuration files are stored (assuming you're still inside spack-compiler_name repository):

      cd etc/spack/defaults/
    2. Edit config.yaml :

      vim config.yaml

      You need to change the root of the install_tree, projections for allbuild_stage dir, test_stage dir, source_cache dir and misc_cache dir.
      Example:

      1. root of the install_tree :

        config:
          # This is the path to the root of the Spack install tree.
          # You can use $spack here to refer to the root of the spack instance.
          install_tree:
            root: <path_prefix>/<ROOT_DIR>/libs-compiler_name
      2. projections :

        projections:
              all: "${PACKAGE}/${VERSION}/${COMPILERNAME}/${COMPILERVER}/${HASH}"
      3. build_stage :

          build_stage:
            - <path_prefix>/<ROOT_DIR>/stage-compiler_name
      4. test_stage :

          test_stage: <path_prefix>/<ROOT_DIR>/cache-compiler_name/test
      5. source_cache :

          source_cache: <path_prefix>/<ROOT_DIR>/cache-compiler_name/var/cache
      6. misc_cache :

          misc_cache: <path_prefix>/<ROOT_DIR>/cache-compiler_name/cache
    3. Edit modules.yaml :

      vim modules.yaml

      Change the roots for the tcl modules:

      1. Example: 

          # These are configurations for the module set named "default"
          default:
            # Where to install modules
            roots:
             tcl:    <path_prefix>/<ROOT_DIR>/modules-compiler_name
    4. Edit linux/modules.yaml :

      vim linux/modules.yaml

      Here you have to fill the whole body just to set the module structure projections:

      modules:
        default:
          arch_folder: false
          tcl:
            projections:
              all: '{name}/{version}/{compiler.name}/{compiler.version}/sha'
          prefix_inspections:
            lib:
              - LD_LIBRARY_PATH
            lib64:
              - LD_LIBRARY_PATH
  7. Change the directory to the top of the spack repository:

    cd ../../../
    
  8. Source spack :

    source share/spack/setup-env.sh
  9. Check the spack version - should be 0.19.0 :

    spack --version

2. Marconi + SPACK + GNU

This instruction covers all actions and commands from logging into the Marconi server to installing imasenv.

  1. Logging into the Marconi :

    ssh <USER_NAME>@login.marconi.cineca.it
  2. Change location to $WORK directory, which should point to /marconi_work/FUSIO_HLST :

    $: cd $WORK
    $: pwd
    /marconi_work/FUSIO_HLST
  3. Load GCC 7.3.0:

    module load gnu/7.3.0
  4. Prepare directories:

    $: mkdir -p IMAS_software/{cache,libs,modules,spack,stage}-{gcc,intel}
    $: mkdir -p IMAS_software/cache-{gcc,intel}/{cache,var,test}
    $: tree IMAS_software/
    IMAS_software/
    ├── cache-gcc
    │   ├── cache
    │   ├── test
    │   └── var
    ├── cache-intel
    │   ├── cache
    │   ├── test
    │   └── var
    ├── libs-gcc
    ├── libs-intel
    ├── modules-gcc
    ├── modules-intel
    ├── spack-gcc
    ├── spack-intel
    ├── stage-gcc
    └── stage-intel
  5. Clone spack repository to spack-gcc :

    git clone https://github.com/spack/spack.git spack-gcc
  6. Go into spack-gcc directory:

    cd spack-gcc
  7. Checkout desired version of spack :

    git checkout v0.19.0
  8. Set-up spack configuration:

    1. Go to directory where default configuration files are stored (assuming you're still inside spack-gcc repository):

      cd etc/spack/defaults/
    2. Edit config.yaml :

      vim config.yaml

      You need to change the root of the install_tree, projections for allbuild_stage dir, test_stage dir, source_cache dir and misc_cache dir.
      Example:

      1. root of the install_tree :

        config:
          # This is the path to the root of the Spack install tree.
          # You can use $spack here to refer to the root of the spack instance.
          install_tree:
            root: /marconi_work/FUSIO_HLST/IMAS_software/libs-gcc
      2. projections :

        projections:
              all: "${PACKAGE}/${VERSION}/${COMPILERNAME}/${COMPILERVER}/${HASH}"
      3. build_stage :

          build_stage:
            - /marconi_work/FUSIO_HLST/IMAS_software/stage-gcc
      4. test_stage :

          test_stage: /marconi_work/FUSIO_HLST/IMAS_software/cache-gcc/test
      5. source_cache :

          source_cache: /marconi_work/FUSIO_HLST/IMAS_software/cache-gcc/var/cache
      6. misc_cache :

          misc_cache: /marconi_work/FUSIO_HLST/IMAS_software/cache-gcc/cache
    3. Edit modules.yaml :

      vim modules.yaml

      Change the roots for the tcl modules:

      1. Example: 

          # These are configurations for the module set named "default"
          default:
            # Where to install modules
            roots:
             tcl:    /marconi_work/FUSIO_HLST/IMAS_software/modules-gcc
    4. Edit linux/modules.yaml :

      vim linux/modules.yaml

      Here you have to fill the whole body just to set the module structure projections:

      modules:
        default:
          arch_folder: false
          tcl:
            projections:
              all: '{name}/{version}/{compiler.name}/{compiler.version}/sha'
          prefix_inspections:
            lib:
              - LD_LIBRARY_PATH
            lib64:
              - LD_LIBRARY_PATH
  9. Change the directory to the top of the spack repository:

    cd ../../../
    
  10. Source spack :

    source share/spack/setup-env.sh
  11. Check the spack version - should be 0.19.0 :

    spack --version
  12. Install Lapack :

    spack install netlib-lapack %gcc@7.3.0 cflags="-fPIC" cxxflags="-fPIC" cppflags="-fPIC"
  13. Install Blas :

    spack install -j 1 netlib-xblas %gcc@7.3.0 cflags="-fPIC" cxxflags="-fPIC" cppflags="-fPIC"
  14. Install Python with tkinter support:

    spack install python@3.9.15 +tkinter %gcc@7.3.0 cflags="-fPIC" cxxflags="-fPIC" cppflags="-fPIC"
  15. Install py-scipy :

    spack install --fail-fast py-scipy %gcc@7.3.0 cflags="-fPIC" cxxflags="-fPIC" cppflags="-fPIC"
  16. Install py-matplotlib :

    spack install --fail-fast py-matplotlib backend=tkagg %gcc@7.3.0 cflags="-fPIC" cxxflags="-fPIC" cppflags="-fPIC"
  17. Install py-pyyaml :

    spack install --fail-fast py-pyyaml %gcc@7.3.0 cflags="-fPIC" cxxflags="-fPIC" cppflags="-fPIC"
  18. Install hdf5 :

    spack install --fail-fast hdf5@1.12.2 %gcc@7.3.0 +threadsafe +cxx +fortran cflags="'-fPIC -pthread'" cxxflags="'-fPIC -pthread'" cppflags="'-fPIC -pthread'"

3. Marconi + SPACK + INTEL

4. Gateway + SPACK + GNU

5. Gateway + SPACK + INTEL

  • No labels