Update basic usage and modules tutorial (#9807)

* "spack install" now uses cache by default, update examples accordingly
* Replace some example packages with others
* Packing tutorial reference to "spack env" replaced with "spack build-env"
* Command line prompts in examples are shortened
* Example output (including paths) are updated to be more relevant to training environment
This commit is contained in:
Greg Becker 2018-11-11 20:58:50 -08:00 committed by Peter Scheibel
parent 2a5d5fda26
commit dfd0e96508
3 changed files with 1151 additions and 1150 deletions

File diff suppressed because it is too large Load Diff

View File

@ -149,78 +149,16 @@ how Spack can help with similar situations, as they will happen on real HPC clus
For instance, it's often preferable for Spack to use vendor-provided MPI For instance, it's often preferable for Spack to use vendor-provided MPI
implementations than to build one itself. implementations than to build one itself.
The best way to follow along is to use a Docker image, which comes To keep the set of software we're dealing with manageable, we're going
with Spack and all the software used in the following parts already to uninstall everything from earlier in the tutorial.
pre-installed. If you want to proceed this way, read :ref:`module_file_tutorial_use_docker`.
If you don't have Docker installed or for any other reason you .. code-block: console
prefer to work locally, follow instead :ref:`module_file_tutorial_work_locally`
to know how to clone Spack and install the software.
Be aware that the set-up will take longer and that the details of the snippets
below assume the Docker image and may need changes to work in your particular
environment.
.. _module_file_tutorial_use_docker: $ spack uninstall -ay
^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^
Use a Docker image
^^^^^^^^^^^^^^^^^^
The fastest way to set-up your environment is to :ref:`use a Docker image <workflow_create_docker_image>`:
.. code-block:: console
$ docker pull spack/module-tutorial:latest
$ docker run --rm -h module-file-tutorial -it spack/module-tutorial:latest
root@module-file-tutorial:/#
If you arrived at this point you should be ready to start, as all the software needed is
pre-installed in the image:
.. code-block:: console
root@module-file-tutorial:/# which spack
/usr/local/bin/spack
root@module-file-tutorial:/# spack find
==> 43 installed packages.
-- linux-ubuntu16.04-x86_64 / gcc@5.4.0 -------------------------
autoconf@2.69 gdbm@1.14.1 isl@0.19 lmod@7.7.29 lua-luaposix@33.4.0 mpfr@4.0.1 pkgconf@1.4.2 zlib@1.2.11
automake@1.16.1 git@2.9.4 libsigsegv@2.11 lua@5.3.4 m4@1.4.18 ncurses@6.1 readline@7.0
gcc@7.2.0 gmp@6.1.2 libtool@2.4.6 lua-luafilesystem@1_6_3 mpc@1.1.0 perl@5.26.2 tcl@8.6.8
-- linux-ubuntu16.04-x86_64 / gcc@7.2.0 -------------------------
bzip2@1.0.6 mpich@3.2.1 netlib-scalapack@2.0.2 netlib-scalapack@2.0.2 openssl@1.0.2o py-scipy@1.1.0 readline@7.0
cmake@3.12.0 ncurses@6.1 netlib-scalapack@2.0.2 openblas@0.3.0 pkgconf@1.4.2 py-setuptools@39.2.0 sqlite@3.23.1
gdbm@1.14.1 netlib-lapack@3.8.0 netlib-scalapack@2.0.2 openmpi@1.10.2 py-numpy@1.14.3 python@2.7.15 zlib@1.2.11
Go to :ref:`module_file_tutorial_non_hierarchical` to proceed with the tutorial.
.. note::
Dockerfile for this image
Those of you that want to build a similar container themselves can find the
``Dockerfile`` and the other resources in Spack's ``share/spack/docs/docker``
folder.
.. _module_file_tutorial_work_locally:
^^^^^^^^^^^^^^^^^^^^^^
Work in a local folder
^^^^^^^^^^^^^^^^^^^^^^
If you don't feel like using a container, you can set-up your environment
locally. Let's start by cloning the Spack repository and moving to the directory
where it was checked out:
.. code-block:: console
$ git clone https://github.com/spack/spack.git
$ cd spack
From here we'll be building the required stack of software.
"""""""""""""""""""
Build a module tool Build a module tool
""""""""""""""""""" ^^^^^^^^^^^^^^^^^^^
The first thing that we need is the module tool. In this case we The first thing that we need is the module tool. In this case we
choose ``lmod`` as it can work with both hierarchical and non-hierarchical choose ``lmod`` as it can work with both hierarchical and non-hierarchical
@ -239,7 +177,8 @@ to remember, we'll employ the command ``spack location`` to retrieve the
$ . $(spack location -i lmod)/lmod/lmod/init/bash $ . $(spack location -i lmod)/lmod/lmod/init/bash
Now we can source the setup file and activate the :ref:`shell support <shell-support>`: Now we can re-source the setup file and Spack modules will be put in
our module path.
.. code-block:: console .. code-block:: console
@ -252,26 +191,15 @@ Now we can source the setup file and activate the :ref:`shell support <shell-sup
to the documentation :ref:`here <InstallEnvironmentModules>`. to the documentation :ref:`here <InstallEnvironmentModules>`.
"""""""""""""""""" ^^^^^^^^^^^^^^^^^^
Add a new compiler Add a new compiler
"""""""""""""""""" ^^^^^^^^^^^^^^^^^^
The second step is to build a recent compiler. On first use, Spack The second step is to build a recent compiler. On first use, Spack
scans the environment and automatically locates the scans the environment and automatically locates the compiler(s)
compiler(s) already available on the system. This is what you'll see already available on the system. For this tutorial, however, we want
on Ubuntu 14.04: to use ``gcc@7.2.0``.
.. code-block:: console
$ uname -a
Linux nuvolari 4.4.0-45-generic #66~14.04.1-Ubuntu SMP Wed Oct 19 15:05:38 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
$ spack compilers
==> Available compilers
-- gcc ----------------------------------------------------------
gcc@4.8
Let's bootstrap a more recent compiler with the one that was automatically detected:
.. code-block:: console .. code-block:: console
@ -300,7 +228,7 @@ You can use this command to double check:
$ module list $ module list
Currently Loaded Modules: Currently Loaded Modules:
1) lmod-7.7-gcc-4.8-okcwjgw 2) gcc-7.2.0-gcc-4.8-twd5nqg 1) gcc-7.2.0-gcc-5.4.0-b7smjjc
Note that the 7-digit hash at the end of the generated module may vary depending Note that the 7-digit hash at the end of the generated module may vary depending
on architecture or package version. Now that we have ``gcc@7.2.0`` in ``PATH`` we on architecture or package version. Now that we have ``gcc@7.2.0`` in ``PATH`` we
@ -309,38 +237,23 @@ can finally add it to the list of compilers known to Spack:
.. code-block:: console .. code-block:: console
$ spack compiler add $ spack compiler add
==> Added 1 new compiler to ~/.spack/linux/compilers.yaml ==> Added 1 new compiler to /home/spack1/.spack/linux/compilers.yaml
gcc@7.2.0 gcc@7.2.0
==> Compilers are defined in the following files:
/home/spack1/.spack/linux/compilers.yaml
$ spack compilers $ spack compiler list
==> Available compilers ==> Available compilers
-- gcc ---------------------------------------------------------- -- clang ubuntu16.04-x86_64 -------------------------------------
gcc@7.2.0 gcc@4.8 clang@3.8.0-2ubuntu4 clang@3.7.1-2ubuntu2
-- gcc ubuntu16.04-x86_64 ---------------------------------------
gcc@7.2.0 gcc@5.4.0 gcc@4.7
"""""""""""""""""""""""""""""""""""""""""""""""""""" ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Build the software that will be used in the tutorial Build the software that will be used in the tutorial
"""""""""""""""""""""""""""""""""""""""""""""""""""" ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The last step is to install the software stack needed later on. To mimic
an external installation of an MPI provider we'll install ``openmpi`` on
the system we are working on. On Ubuntu 14.04 it boils down to:
.. code-block:: console
$ sudo apt-get install openmpi-bin openmpi-common libopenmpi-dev
...
but the exact command varies according to your OS. Then we need to prepare
a ``packages.yaml`` file that instructs Spack to use an externally provided MPI:
.. code-block:: yaml
packages:
openmpi:
buildable: False
paths:
openmpi@1.6: /usr
Finally, we should use Spack to install the packages used in the examples: Finally, we should use Spack to install the packages used in the examples:
@ -363,24 +276,36 @@ If you arrived to this point you should have an environment that looks similar t
.. code-block:: console .. code-block:: console
root@module-file-tutorial:/# module avail $ module avail
-------------------------------------------- /usr/local/share/spack/modules/linux-ubuntu16.04-x86_64 --------------------------------------------- ----------------------------------------------- /home/spack1/spack/share/spack/modules/linux-ubuntu16.04-x86_64 -----------------------------------------------
autoconf-2.69-gcc-5.4.0-cbvv5rj lua-luaposix-33.4.0-gcc-5.4.0-i7w7ynf perl-5.26.2-gcc-5.4.0-n2k4mza autoconf-2.69-gcc-5.4.0-3sx2gxe libsigsegv-2.11-gcc-7.2.0-g67xpfd openssl-1.0.2o-gcc-5.4.0-b4y3w3b
automake-1.16.1-gcc-5.4.0-lykrrr4 m4-1.4.18-gcc-5.4.0-3z33ecf pkgconf-1.4.2-gcc-5.4.0-fovrh7a autoconf-2.69-gcc-7.2.0-yb2makb libtool-2.4.6-gcc-5.4.0-o2pfwjf openssl-1.0.2o-gcc-7.2.0-cvldq3v
bzip2-1.0.6-gcc-7.2.0-mwamumj mpc-1.1.0-gcc-5.4.0-56lbd3h pkgconf-1.4.2-gcc-7.2.0-yoxwmgb automake-1.16.1-gcc-5.4.0-rymw7im libtool-2.4.6-gcc-7.2.0-kt2udm6 pcre-8.42-gcc-5.4.0-gt5lgzi
cmake-3.12.0-gcc-7.2.0-6ovorxs mpfr-4.0.1-gcc-5.4.0-dy5r7hi py-numpy-1.14.3-gcc-7.2.0-t3loxvu automake-1.16.1-gcc-7.2.0-qoowd5q libxml2-2.9.8-gcc-5.4.0-wpexsph perl-5.26.2-gcc-5.4.0-ic2kyoa
gcc-7.2.0-gcc-5.4.0-wwhgyej mpich-3.2.1-gcc-7.2.0-vt5xcat py-scipy-1.1.0-gcc-7.2.0-fdiryak bzip2-1.0.6-gcc-5.4.0-ufczdvs libxml2-2.9.8-gcc-7.2.0-47gf5kk perl-5.26.2-gcc-7.2.0-fdwz5yu
gdbm-1.14.1-gcc-5.4.0-q4fpyuo ncurses-6.1-gcc-5.4.0-3o765ou py-setuptools-39.2.0-gcc-7.2.0-jqhycal bzip2-1.0.6-gcc-7.2.0-mwamumj lmod-7.8-gcc-5.4.0-kmhks3p pkgconf-1.4.2-gcc-5.4.0-fovrh7a
gdbm-1.14.1-gcc-7.2.0-zk5lhob ncurses-6.1-gcc-7.2.0-xcgzqdv python-2.7.15-gcc-7.2.0-c7pnzul cmake-3.12.3-gcc-7.2.0-obqgn2v lua-5.3.4-gcc-5.4.0-cpfeo2w pkgconf-1.4.2-gcc-7.2.0-yoxwmgb
git-2.9.4-gcc-5.4.0-mkaoyhz netlib-lapack-3.8.0-gcc-7.2.0-7apabqu readline-7.0-gcc-5.4.0-nxhwrg7 curl-7.60.0-gcc-5.4.0-vzqreb2 lua-luafilesystem-1_6_3-gcc-5.4.0-alakjim py-numpy-1.15.2-gcc-7.2.0-wbwtcxf
gmp-6.1.2-gcc-5.4.0-qc4qcfz netlib-scalapack-2.0.2-gcc-7.2.0-3bz5rxx readline-7.0-gcc-7.2.0-ccruj2i diffutils-3.6-gcc-5.4.0-2rhuivg lua-luaposix-33.4.0-gcc-5.4.0-7wqhwoc py-scipy-1.1.0-gcc-7.2.0-d5n3cph
isl-0.19-gcc-5.4.0-hsl7f52 netlib-scalapack-2.0.2-gcc-7.2.0-6i5qsqx sqlite-3.23.1-gcc-7.2.0-5ltus3a diffutils-3.6-gcc-7.2.0-eauxwi7 m4-1.4.18-gcc-5.4.0-suf5jtc py-setuptools-40.4.3-gcc-7.2.0-5dbwfwn
libsigsegv-2.11-gcc-5.4.0-fypapcp netlib-scalapack-2.0.2-gcc-7.2.0-uhzmwog tcl-8.6.8-gcc-5.4.0-qhwyccy expat-2.2.5-gcc-5.4.0-emyv67q m4-1.4.18-gcc-7.2.0-wdzvagl python-2.7.15-gcc-7.2.0-ucmr2mn
libtool-2.4.6-gcc-5.4.0-o2pfwjf netlib-scalapack-2.0.2-gcc-7.2.0-z52ltyy zlib-1.2.11-gcc-5.4.0-5nus6kn findutils-4.6.0-gcc-7.2.0-ca4b7zq mpc-1.1.0-gcc-5.4.0-iuf3gc3 readline-7.0-gcc-5.4.0-nxhwrg7
lmod-7.7.29-gcc-5.4.0-wl6mywv openblas-0.3.0-gcc-7.2.0-pdatzbi zlib-1.2.11-gcc-7.2.0-ezuwp4p gcc-7.2.0-gcc-5.4.0-b7smjjc (L) mpfr-3.1.6-gcc-5.4.0-jnt2nnp readline-7.0-gcc-7.2.0-ccruj2i
lua-5.3.4-gcc-5.4.0-izvaota openmpi-1.10.2-gcc-7.2.0-6oewzwj gdbm-1.14.1-gcc-5.4.0-q4fpyuo mpich-3.2.1-gcc-7.2.0-vt5xcat sqlite-3.23.1-gcc-7.2.0-5ltus3a
lua-luafilesystem-1_6_3-gcc-5.4.0-ywlmaou openssl-1.0.2o-gcc-7.2.0-cvldq3v gdbm-1.14.1-gcc-7.2.0-zk5lhob ncurses-6.1-gcc-5.4.0-3o765ou tar-1.30-gcc-5.4.0-dk7lrpo
gettext-0.19.8.1-gcc-5.4.0-tawgous ncurses-6.1-gcc-7.2.0-xcgzqdv tcl-8.6.8-gcc-5.4.0-qhwyccy
git-2.19.1-gcc-5.4.0-p3gjnfa netlib-lapack-3.8.0-gcc-7.2.0-fj7nayd texinfo-6.5-gcc-7.2.0-cuqnfgf
gmp-6.1.2-gcc-5.4.0-qc4qcfz netlib-scalapack-2.0.2-gcc-7.2.0-67nmj7g unzip-6.0-gcc-5.4.0-ba23fbg
hwloc-1.11.9-gcc-7.2.0-gbyc65s netlib-scalapack-2.0.2-gcc-7.2.0-6jgjbyg util-macros-1.19.1-gcc-7.2.0-t62kozq
isl-0.18-gcc-5.4.0-vttqout netlib-scalapack-2.0.2-gcc-7.2.0-prgo67d xz-5.2.4-gcc-5.4.0-teneqii
libbsd-0.8.6-gcc-5.4.0-f4qkkwm netlib-scalapack-2.0.2-gcc-7.2.0-zxpt252 xz-5.2.4-gcc-7.2.0-rql5kog
libiconv-1.15-gcc-5.4.0-u2x3umv numactl-2.0.11-gcc-7.2.0-rifwktk zlib-1.2.11-gcc-5.4.0-5nus6kn
libpciaccess-0.13.5-gcc-7.2.0-riipwi2 openblas-0.3.3-gcc-7.2.0-xxoxfh4 zlib-1.2.11-gcc-7.2.0-ezuwp4p
libsigsegv-2.11-gcc-5.4.0-fypapcp openmpi-3.1.3-gcc-7.2.0-do5xfer
Where:
L: Module is loaded
Use "module spider" to find all possible modules. Use "module spider" to find all possible modules.
Use "module keyword key1 key2 ..." to search for all possible modules matching any of the "keys". Use "module keyword key1 key2 ..." to search for all possible modules matching any of the "keys".
@ -391,24 +316,24 @@ Taking a look at the ``gcc`` module you'll see, for example:
.. code-block:: console .. code-block:: console
root@module-file-tutorial:/# module show gcc-7.2.0-gcc-5.4.0-wwhgyej $ module show gcc-7.2.0-gcc-5.4.0-b7smjjc
---------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------
/usr/local/share/spack/modules/linux-ubuntu16.04-x86_64/gcc-7.2.0-gcc-5.4.0-wwhgyej: /home/spack1/spack/share/spack/modules/linux-ubuntu16.04-x86_64/gcc-7.2.0-gcc-5.4.0-b7smjjc:
---------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------
whatis("The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Ada, and Go, as well as libraries for these languages. ") whatis("The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Ada, and Go, as well as libraries for these languages. ")
prepend_path("PATH","/usr/local/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-wwhgyejrjfjtdsgga3hn246bc64jtr6o/bin") prepend_path("PATH","/home/spack1/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-b7smjjcsmwe5u5fcsvjmonlhlzzctnfs/bin")
prepend_path("MANPATH","/usr/local/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-wwhgyejrjfjtdsgga3hn246bc64jtr6o/share/man") prepend_path("MANPATH","/home/spack1/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-b7smjjcsmwe5u5fcsvjmonlhlzzctnfs/share/man")
prepend_path("LIBRARY_PATH","/usr/local/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-wwhgyejrjfjtdsgga3hn246bc64jtr6o/lib") prepend_path("LD_LIBRARY_PATH","/home/spack1/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-b7smjjcsmwe5u5fcsvjmonlhlzzctnfs/lib")
prepend_path("LD_LIBRARY_PATH","/usr/local/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-wwhgyejrjfjtdsgga3hn246bc64jtr6o/lib") prepend_path("LIBRARY_PATH","/home/spack1/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-b7smjjcsmwe5u5fcsvjmonlhlzzctnfs/lib")
prepend_path("LIBRARY_PATH","/usr/local/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-wwhgyejrjfjtdsgga3hn246bc64jtr6o/lib64") prepend_path("LD_LIBRARY_PATH","/home/spack1/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-b7smjjcsmwe5u5fcsvjmonlhlzzctnfs/lib64")
prepend_path("LD_LIBRARY_PATH","/usr/local/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-wwhgyejrjfjtdsgga3hn246bc64jtr6o/lib64") prepend_path("LIBRARY_PATH","/home/spack1/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-b7smjjcsmwe5u5fcsvjmonlhlzzctnfs/lib64")
prepend_path("CPATH","/usr/local/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-wwhgyejrjfjtdsgga3hn246bc64jtr6o/include") prepend_path("CPATH","/home/spack1/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-b7smjjcsmwe5u5fcsvjmonlhlzzctnfs/include")
prepend_path("CMAKE_PREFIX_PATH","/usr/local/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-wwhgyejrjfjtdsgga3hn246bc64jtr6o/") prepend_path("CMAKE_PREFIX_PATH","/home/spack1/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-b7smjjcsmwe5u5fcsvjmonlhlzzctnfs/")
setenv("CC","/usr/local/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-wwhgyejrjfjtdsgga3hn246bc64jtr6o/bin/gcc") setenv("CC","/home/spack1/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-b7smjjcsmwe5u5fcsvjmonlhlzzctnfs/bin/gcc")
setenv("CXX","/usr/local/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-wwhgyejrjfjtdsgga3hn246bc64jtr6o/bin/g++") setenv("CXX","/home/spack1/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-b7smjjcsmwe5u5fcsvjmonlhlzzctnfs/bin/g++")
setenv("FC","/usr/local/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-wwhgyejrjfjtdsgga3hn246bc64jtr6o/bin/gfortran") setenv("FC","/home/spack1/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-b7smjjcsmwe5u5fcsvjmonlhlzzctnfs/bin/gfortran")
setenv("F77","/usr/local/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-wwhgyejrjfjtdsgga3hn246bc64jtr6o/bin/gfortran") setenv("F77","/home/spack1/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-b7smjjcsmwe5u5fcsvjmonlhlzzctnfs/bin/gfortran")
setenv("F90","/usr/local/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-wwhgyejrjfjtdsgga3hn246bc64jtr6o/bin/gfortran") setenv("F90","/home/spack1/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-b7smjjcsmwe5u5fcsvjmonlhlzzctnfs/bin/gfortran")
help([[The GNU Compiler Collection includes front ends for C, C++, Objective-C, help([[The GNU Compiler Collection includes front ends for C, C++, Objective-C,
Fortran, Ada, and Go, as well as libraries for these languages. Fortran, Ada, and Go, as well as libraries for these languages.
]]) ]])
@ -438,22 +363,26 @@ Next you should regenerate all the module files:
.. code-block:: console .. code-block:: console
root@module-file-tutorial:/# spack module tcl refresh $ spack module tcl refresh
==> You are about to regenerate tcl module files for: ==> You are about to regenerate tcl module files for:
-- linux-ubuntu16.04-x86_64 / gcc@5.4.0 ------------------------- -- linux-ubuntu16.04-x86_64 / gcc@5.4.0 -------------------------
cbvv5rj autoconf@2.69 qc4qcfz gmp@6.1.2 izvaota lua@5.3.4 dy5r7hi mpfr@4.0.1 qhwyccy tcl@8.6.8 3sx2gxe autoconf@2.69 b7smjjc gcc@7.2.0 f4qkkwm libbsd@0.8.6 cpfeo2w lua@5.3.4 3o765ou ncurses@6.1 dk7lrpo tar@1.30
lykrrr4 automake@1.16.1 hsl7f52 isl@0.19 ywlmaou lua-luafilesystem@1_6_3 3o765ou ncurses@6.1 5nus6kn zlib@1.2.11 rymw7im automake@1.16.1 q4fpyuo gdbm@1.14.1 u2x3umv libiconv@1.15 alakjim lua-luafilesystem@1_6_3 b4y3w3b openssl@1.0.2o qhwyccy tcl@8.6.8
wwhgyej gcc@7.2.0 fypapcp libsigsegv@2.11 i7w7ynf lua-luaposix@33.4.0 n2k4mza perl@5.26.2 ufczdvs bzip2@1.0.6 tawgous gettext@0.19.8.1 fypapcp libsigsegv@2.11 7wqhwoc lua-luaposix@33.4.0 gt5lgzi pcre@8.42 ba23fbg unzip@6.0
q4fpyuo gdbm@1.14.1 o2pfwjf libtool@2.4.6 3z33ecf m4@1.4.18 fovrh7a pkgconf@1.4.2 vzqreb2 curl@7.60.0 p3gjnfa git@2.19.1 o2pfwjf libtool@2.4.6 suf5jtc m4@1.4.18 ic2kyoa perl@5.26.2 teneqii xz@5.2.4
mkaoyhz git@2.9.4 wl6mywv lmod@7.7.29 56lbd3h mpc@1.1.0 nxhwrg7 readline@7.0 2rhuivg diffutils@3.6 qc4qcfz gmp@6.1.2 wpexsph libxml2@2.9.8 iuf3gc3 mpc@1.1.0 fovrh7a pkgconf@1.4.2 5nus6kn zlib@1.2.11
emyv67q expat@2.2.5 vttqout isl@0.18 kmhks3p lmod@7.8 jnt2nnp mpfr@3.1.6 nxhwrg7 readline@7.0
-- linux-ubuntu16.04-x86_64 / gcc@7.2.0 ------------------------- -- linux-ubuntu16.04-x86_64 / gcc@7.2.0 -------------------------
mwamumj bzip2@1.0.6 7apabqu netlib-lapack@3.8.0 pdatzbi openblas@0.3.0 fdiryak py-scipy@1.1.0 ezuwp4p zlib@1.2.11 yb2makb autoconf@2.69 riipwi2 libpciaccess@0.13.5 6jgjbyg netlib-scalapack@2.0.2 fdwz5yu perl@5.26.2 cuqnfgf texinfo@6.5
6ovorxs cmake@3.12.0 6i5qsqx netlib-scalapack@2.0.2 6oewzwj openmpi@1.10.2 jqhycal py-setuptools@39.2.0 qoowd5q automake@1.16.1 g67xpfd libsigsegv@2.11 zxpt252 netlib-scalapack@2.0.2 yoxwmgb pkgconf@1.4.2 t62kozq util-macros@1.19.1
zk5lhob gdbm@1.14.1 uhzmwog netlib-scalapack@2.0.2 cvldq3v openssl@1.0.2o c7pnzul python@2.7.15 mwamumj bzip2@1.0.6 kt2udm6 libtool@2.4.6 67nmj7g netlib-scalapack@2.0.2 wbwtcxf py-numpy@1.15.2 rql5kog xz@5.2.4
vt5xcat mpich@3.2.1 3bz5rxx netlib-scalapack@2.0.2 yoxwmgb pkgconf@1.4.2 ccruj2i readline@7.0 obqgn2v cmake@3.12.3 47gf5kk libxml2@2.9.8 prgo67d netlib-scalapack@2.0.2 d5n3cph py-scipy@1.1.0 ezuwp4p zlib@1.2.11
xcgzqdv ncurses@6.1 z52ltyy netlib-scalapack@2.0.2 t3loxvu py-numpy@1.14.3 5ltus3a sqlite@3.23.1 eauxwi7 diffutils@3.6 wdzvagl m4@1.4.18 rifwktk numactl@2.0.11 5dbwfwn py-setuptools@40.4.3
ca4b7zq findutils@4.6.0 vt5xcat mpich@3.2.1 xxoxfh4 openblas@0.3.3 ucmr2mn python@2.7.15
zk5lhob gdbm@1.14.1 xcgzqdv ncurses@6.1 do5xfer openmpi@3.1.3 ccruj2i readline@7.0
gbyc65s hwloc@1.11.9 fj7nayd netlib-lapack@3.8.0 cvldq3v openssl@1.0.2o 5ltus3a sqlite@3.23.1
==> Do you want to proceed? [y/n] y ==> Do you want to proceed? [y/n] y
==> Regenerating tcl module files ==> Regenerating tcl module files
@ -463,21 +392,21 @@ paths have disappeared:
.. code-block:: console .. code-block:: console
root@module-file-tutorial:/# module show gcc-7.2.0-gcc-5.4.0-wwhgyej $ module show gcc-7.2.0-gcc-5.4.0-b7smjjc
---------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------
/usr/local/share/spack/modules/linux-ubuntu16.04-x86_64/gcc-7.2.0-gcc-5.4.0-wwhgyej: /home/spack1/spack/share/spack/modules/linux-ubuntu16.04-x86_64/gcc-7.2.0-gcc-5.4.0-b7smjjc:
---------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------
whatis("The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Ada, and Go, as well as libraries for these languages. ") whatis("The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Ada, and Go, as well as libraries for these languages. ")
prepend_path("PATH","/usr/local/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-wwhgyejrjfjtdsgga3hn246bc64jtr6o/bin") prepend_path("PATH","/home/spack1/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-b7smjjcsmwe5u5fcsvjmonlhlzzctnfs/bin")
prepend_path("MANPATH","/usr/local/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-wwhgyejrjfjtdsgga3hn246bc64jtr6o/share/man") prepend_path("MANPATH","/home/spack1/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-b7smjjcsmwe5u5fcsvjmonlhlzzctnfs/share/man")
prepend_path("LD_LIBRARY_PATH","/usr/local/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-wwhgyejrjfjtdsgga3hn246bc64jtr6o/lib") prepend_path("LD_LIBRARY_PATH","/home/spack1/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-b7smjjcsmwe5u5fcsvjmonlhlzzctnfs/lib")
prepend_path("LD_LIBRARY_PATH","/usr/local/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-wwhgyejrjfjtdsgga3hn246bc64jtr6o/lib64") prepend_path("LD_LIBRARY_PATH","/home/spack1/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-b7smjjcsmwe5u5fcsvjmonlhlzzctnfs/lib64")
prepend_path("CMAKE_PREFIX_PATH","/usr/local/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-wwhgyejrjfjtdsgga3hn246bc64jtr6o/") prepend_path("CMAKE_PREFIX_PATH","/home/spack1/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-b7smjjcsmwe5u5fcsvjmonlhlzzctnfs/")
setenv("CC","/usr/local/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-wwhgyejrjfjtdsgga3hn246bc64jtr6o/bin/gcc") setenv("CC","/home/spack1/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-b7smjjcsmwe5u5fcsvjmonlhlzzctnfs/bin/gcc")
setenv("CXX","/usr/local/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-wwhgyejrjfjtdsgga3hn246bc64jtr6o/bin/g++") setenv("CXX","/home/spack1/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-b7smjjcsmwe5u5fcsvjmonlhlzzctnfs/bin/g++")
setenv("FC","/usr/local/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-wwhgyejrjfjtdsgga3hn246bc64jtr6o/bin/gfortran") setenv("FC","/home/spack1/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-b7smjjcsmwe5u5fcsvjmonlhlzzctnfs/bin/gfortran")
setenv("F77","/usr/local/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-wwhgyejrjfjtdsgga3hn246bc64jtr6o/bin/gfortran") setenv("F77","/home/spack1/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-b7smjjcsmwe5u5fcsvjmonlhlzzctnfs/bin/gfortran")
setenv("F90","/usr/local/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-wwhgyejrjfjtdsgga3hn246bc64jtr6o/bin/gfortran") setenv("F90","/home/spack1/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-b7smjjcsmwe5u5fcsvjmonlhlzzctnfs/bin/gfortran")
help([[The GNU Compiler Collection includes front ends for C, C++, Objective-C, help([[The GNU Compiler Collection includes front ends for C, C++, Objective-C,
Fortran, Ada, and Go, as well as libraries for these languages. Fortran, Ada, and Go, as well as libraries for these languages.
]]) ]])
@ -506,46 +435,55 @@ To do this you should add a ``blacklist`` keyword to ``~/.spack/modules.yaml``:
and regenerate the module files: and regenerate the module files:
This time it is convenient to pass the option ``--delete-tree`` to the command that
regenerates the module files to instruct it to delete the existing tree and regenerate
a new one instead of overwriting the files in the existing directory.
.. code-block:: console .. code-block:: console
root@module-file-tutorial:/# spack module tcl refresh --delete-tree $ spack module tcl refresh --delete-tree
==> You are about to regenerate tcl module files for: ==> You are about to regenerate tcl module files for:
-- linux-ubuntu16.04-x86_64 / gcc@5.4.0 ------------------------- -- linux-ubuntu16.04-x86_64 / gcc@5.4.0 -------------------------
cbvv5rj autoconf@2.69 qc4qcfz gmp@6.1.2 izvaota lua@5.3.4 dy5r7hi mpfr@4.0.1 qhwyccy tcl@8.6.8 3sx2gxe autoconf@2.69 b7smjjc gcc@7.2.0 f4qkkwm libbsd@0.8.6 cpfeo2w lua@5.3.4 3o765ou ncurses@6.1 dk7lrpo tar@1.30
lykrrr4 automake@1.16.1 hsl7f52 isl@0.19 ywlmaou lua-luafilesystem@1_6_3 3o765ou ncurses@6.1 5nus6kn zlib@1.2.11 rymw7im automake@1.16.1 q4fpyuo gdbm@1.14.1 u2x3umv libiconv@1.15 alakjim lua-luafilesystem@1_6_3 b4y3w3b openssl@1.0.2o qhwyccy tcl@8.6.8
wwhgyej gcc@7.2.0 fypapcp libsigsegv@2.11 i7w7ynf lua-luaposix@33.4.0 n2k4mza perl@5.26.2 ufczdvs bzip2@1.0.6 tawgous gettext@0.19.8.1 fypapcp libsigsegv@2.11 7wqhwoc lua-luaposix@33.4.0 gt5lgzi pcre@8.42 ba23fbg unzip@6.0
q4fpyuo gdbm@1.14.1 o2pfwjf libtool@2.4.6 3z33ecf m4@1.4.18 fovrh7a pkgconf@1.4.2 vzqreb2 curl@7.60.0 p3gjnfa git@2.19.1 o2pfwjf libtool@2.4.6 suf5jtc m4@1.4.18 ic2kyoa perl@5.26.2 teneqii xz@5.2.4
mkaoyhz git@2.9.4 wl6mywv lmod@7.7.29 56lbd3h mpc@1.1.0 nxhwrg7 readline@7.0 2rhuivg diffutils@3.6 qc4qcfz gmp@6.1.2 wpexsph libxml2@2.9.8 iuf3gc3 mpc@1.1.0 fovrh7a pkgconf@1.4.2 5nus6kn zlib@1.2.11
emyv67q expat@2.2.5 vttqout isl@0.18 kmhks3p lmod@7.8 jnt2nnp mpfr@3.1.6 nxhwrg7 readline@7.0
-- linux-ubuntu16.04-x86_64 / gcc@7.2.0 ------------------------- -- linux-ubuntu16.04-x86_64 / gcc@7.2.0 -------------------------
mwamumj bzip2@1.0.6 7apabqu netlib-lapack@3.8.0 pdatzbi openblas@0.3.0 fdiryak py-scipy@1.1.0 ezuwp4p zlib@1.2.11 yb2makb autoconf@2.69 riipwi2 libpciaccess@0.13.5 6jgjbyg netlib-scalapack@2.0.2 fdwz5yu perl@5.26.2 cuqnfgf texinfo@6.5
6ovorxs cmake@3.12.0 6i5qsqx netlib-scalapack@2.0.2 6oewzwj openmpi@1.10.2 jqhycal py-setuptools@39.2.0 qoowd5q automake@1.16.1 g67xpfd libsigsegv@2.11 zxpt252 netlib-scalapack@2.0.2 yoxwmgb pkgconf@1.4.2 t62kozq util-macros@1.19.1
zk5lhob gdbm@1.14.1 uhzmwog netlib-scalapack@2.0.2 cvldq3v openssl@1.0.2o c7pnzul python@2.7.15 mwamumj bzip2@1.0.6 kt2udm6 libtool@2.4.6 67nmj7g netlib-scalapack@2.0.2 wbwtcxf py-numpy@1.15.2 rql5kog xz@5.2.4
vt5xcat mpich@3.2.1 3bz5rxx netlib-scalapack@2.0.2 yoxwmgb pkgconf@1.4.2 ccruj2i readline@7.0 obqgn2v cmake@3.12.3 47gf5kk libxml2@2.9.8 prgo67d netlib-scalapack@2.0.2 d5n3cph py-scipy@1.1.0 ezuwp4p zlib@1.2.11
xcgzqdv ncurses@6.1 z52ltyy netlib-scalapack@2.0.2 t3loxvu py-numpy@1.14.3 5ltus3a sqlite@3.23.1 eauxwi7 diffutils@3.6 wdzvagl m4@1.4.18 rifwktk numactl@2.0.11 5dbwfwn py-setuptools@40.4.3
ca4b7zq findutils@4.6.0 vt5xcat mpich@3.2.1 xxoxfh4 openblas@0.3.3 ucmr2mn python@2.7.15
zk5lhob gdbm@1.14.1 xcgzqdv ncurses@6.1 do5xfer openmpi@3.1.3 ccruj2i readline@7.0
gbyc65s hwloc@1.11.9 fj7nayd netlib-lapack@3.8.0 cvldq3v openssl@1.0.2o 5ltus3a sqlite@3.23.1
==> Do you want to proceed? [y/n] y ==> Do you want to proceed? [y/n] y
==> Regenerating tcl module files ==> Regenerating tcl module files
root@module-file-tutorial:/# module avail $ module avail
-------------------------------------------- /usr/local/share/spack/modules/linux-ubuntu16.04-x86_64 --------------------------------------------- ----------------------------------------------- /home/spack1/spack/share/spack/modules/linux-ubuntu16.04-x86_64 -----------------------------------------------
bzip2-1.0.6-gcc-7.2.0-mwamumj netlib-scalapack-2.0.2-gcc-7.2.0-6i5qsqx py-numpy-1.14.3-gcc-7.2.0-t3loxvu autoconf-2.69-gcc-7.2.0-yb2makb m4-1.4.18-gcc-7.2.0-wdzvagl perl-5.26.2-gcc-7.2.0-fdwz5yu
cmake-3.12.0-gcc-7.2.0-6ovorxs netlib-scalapack-2.0.2-gcc-7.2.0-uhzmwog py-scipy-1.1.0-gcc-7.2.0-fdiryak automake-1.16.1-gcc-7.2.0-qoowd5q mpich-3.2.1-gcc-7.2.0-vt5xcat pkgconf-1.4.2-gcc-7.2.0-yoxwmgb
gdbm-1.14.1-gcc-7.2.0-zk5lhob netlib-scalapack-2.0.2-gcc-7.2.0-z52ltyy py-setuptools-39.2.0-gcc-7.2.0-jqhycal bzip2-1.0.6-gcc-7.2.0-mwamumj ncurses-6.1-gcc-7.2.0-xcgzqdv py-numpy-1.15.2-gcc-7.2.0-wbwtcxf
mpich-3.2.1-gcc-7.2.0-vt5xcat openblas-0.3.0-gcc-7.2.0-pdatzbi python-2.7.15-gcc-7.2.0-c7pnzul cmake-3.12.3-gcc-7.2.0-obqgn2v netlib-lapack-3.8.0-gcc-7.2.0-fj7nayd py-scipy-1.1.0-gcc-7.2.0-d5n3cph
ncurses-6.1-gcc-7.2.0-xcgzqdv openmpi-1.10.2-gcc-7.2.0-6oewzwj readline-7.0-gcc-7.2.0-ccruj2i diffutils-3.6-gcc-7.2.0-eauxwi7 netlib-scalapack-2.0.2-gcc-7.2.0-67nmj7g py-setuptools-40.4.3-gcc-7.2.0-5dbwfwn
netlib-lapack-3.8.0-gcc-7.2.0-7apabqu openssl-1.0.2o-gcc-7.2.0-cvldq3v sqlite-3.23.1-gcc-7.2.0-5ltus3a findutils-4.6.0-gcc-7.2.0-ca4b7zq netlib-scalapack-2.0.2-gcc-7.2.0-6jgjbyg python-2.7.15-gcc-7.2.0-ucmr2mn
netlib-scalapack-2.0.2-gcc-7.2.0-3bz5rxx pkgconf-1.4.2-gcc-7.2.0-yoxwmgb zlib-1.2.11-gcc-7.2.0-ezuwp4p gdbm-1.14.1-gcc-7.2.0-zk5lhob netlib-scalapack-2.0.2-gcc-7.2.0-prgo67d readline-7.0-gcc-7.2.0-ccruj2i
hwloc-1.11.9-gcc-7.2.0-gbyc65s netlib-scalapack-2.0.2-gcc-7.2.0-zxpt252 sqlite-3.23.1-gcc-7.2.0-5ltus3a
libpciaccess-0.13.5-gcc-7.2.0-riipwi2 numactl-2.0.11-gcc-7.2.0-rifwktk texinfo-6.5-gcc-7.2.0-cuqnfgf
libsigsegv-2.11-gcc-7.2.0-g67xpfd openblas-0.3.3-gcc-7.2.0-xxoxfh4 util-macros-1.19.1-gcc-7.2.0-t62kozq
libtool-2.4.6-gcc-7.2.0-kt2udm6 openmpi-3.1.3-gcc-7.2.0-do5xfer xz-5.2.4-gcc-7.2.0-rql5kog
libxml2-2.9.8-gcc-7.2.0-47gf5kk openssl-1.0.2o-gcc-7.2.0-cvldq3v zlib-1.2.11-gcc-7.2.0-ezuwp4p
Use "module spider" to find all possible modules. Use "module spider" to find all possible modules.
Use "module keyword key1 key2 ..." to search for all possible modules matching any of the "keys". Use "module keyword key1 key2 ..." to search for all possible modules matching any of the "keys".
This time it is convenient to pass the option ``--delete-tree`` to the command that
regenerates the module files to instruct it to delete the existing tree and regenerate
a new one instead of overwriting the files in the existing directory.
If you look closely you'll see though that we went too far in blacklisting modules: If you look closely you'll see though that we went too far in blacklisting modules:
the module for ``gcc@7.2.0`` disappeared as it was bootstrapped with ``gcc@5.4.0``. To specify the module for ``gcc@7.2.0`` disappeared as it was bootstrapped with ``gcc@5.4.0``. To specify
exceptions to the blacklist rules you can use ``whitelist``: exceptions to the blacklist rules you can use ``whitelist``:
@ -567,7 +505,7 @@ exceptions to the blacklist rules you can use ``whitelist``:
.. code-block:: console .. code-block:: console
root@module-file-tutorial:/# spack module tcl refresh -y $ spack module tcl refresh -y
==> Regenerating tcl module files ==> Regenerating tcl module files
@ -575,15 +513,14 @@ you'll see that now the module for ``gcc@7.2.0`` has reappeared:
.. code-block:: console .. code-block:: console
root@module-file-tutorial:/# module av gcc-7.2.0-gcc-5.4.0-wwhgyej $ module avail gcc-7.2.0-gcc-5.4.0-b7smjjc
-------------------------------------------- /usr/local/share/spack/modules/linux-ubuntu16.04-x86_64 --------------------------------------------- -------------------------------------------- /home/spack1/spack/share/spack/modules/linux-ubuntu16.04-x86_64 ---------------------------------------------
gcc-7.2.0-gcc-5.4.0-wwhgyej gcc-7.2.0-gcc-5.4.0-b7smjjc
Use "module spider" to find all possible modules. Use "module spider" to find all possible modules.
Use "module keyword key1 key2 ..." to search for all possible modules matching any of the "keys". Use "module keyword key1 key2 ..." to search for all possible modules matching any of the "keys".
An additional possibility that you can leverage to unclutter the environment An additional possibility that you can leverage to unclutter the environment
is that of preventing the generation of module files for implicitly installed is that of preventing the generation of module files for implicitly installed
packages. In this case all one needs to do is to add the following line: packages. In this case all one needs to do is to add the following line:
@ -631,10 +568,10 @@ If you try to regenerate the module files now you will get an error:
.. code-block:: console .. code-block:: console
root@module-file-tutorial:/# spack module tcl refresh --delete-tree -y $ spack module tcl refresh --delete-tree -y
==> Error: Name clashes detected in module files: ==> Error: Name clashes detected in module files:
file: /usr/local/share/spack/modules/linux-ubuntu16.04-x86_64/netlib-scalapack-2.0.2-gcc-7.2.0 file: /home/spack1/spack/share/spack/modules/linux-ubuntu16.04-x86_64/netlib-scalapack-2.0.2-gcc-7.2.0
spec: netlib-scalapack@2.0.2%gcc@7.2.0 build_type=RelWithDebInfo ~pic+shared arch=linux-ubuntu16.04-x86_64 spec: netlib-scalapack@2.0.2%gcc@7.2.0 build_type=RelWithDebInfo ~pic+shared arch=linux-ubuntu16.04-x86_64
spec: netlib-scalapack@2.0.2%gcc@7.2.0 build_type=RelWithDebInfo ~pic+shared arch=linux-ubuntu16.04-x86_64 spec: netlib-scalapack@2.0.2%gcc@7.2.0 build_type=RelWithDebInfo ~pic+shared arch=linux-ubuntu16.04-x86_64
spec: netlib-scalapack@2.0.2%gcc@7.2.0 build_type=RelWithDebInfo ~pic+shared arch=linux-ubuntu16.04-x86_64 spec: netlib-scalapack@2.0.2%gcc@7.2.0 build_type=RelWithDebInfo ~pic+shared arch=linux-ubuntu16.04-x86_64
@ -678,18 +615,24 @@ Regenerating module files now we obtain:
.. code-block:: console .. code-block:: console
root@module-file-tutorial:/# spack module tcl refresh --delete-tree -y $ spack module tcl refresh --delete-tree -y
==> Regenerating tcl module files ==> Regenerating tcl module files
$ module avail
root@module-file-tutorial:/# module av ----------------------------------------------- /home/spack1/spack/share/spack/modules/linux-ubuntu16.04-x86_64 -----------------------------------------------
autoconf-2.69-gcc-7.2.0 m4-1.4.18-gcc-7.2.0 pkgconf-1.4.2-gcc-7.2.0
-------------------------------------------- /usr/local/share/spack/modules/linux-ubuntu16.04-x86_64 --------------------------------------------- automake-1.16.1-gcc-7.2.0 mpich-3.2.1-gcc-7.2.0 py-numpy-1.15.2-gcc-7.2.0-openblas
bzip2-1.0.6-gcc-7.2.0 netlib-lapack-3.8.0-gcc-7.2.0 openmpi-1.10.2-gcc-7.2.0 python-2.7.15-gcc-7.2.0 bzip2-1.0.6-gcc-7.2.0 ncurses-6.1-gcc-7.2.0 py-scipy-1.1.0-gcc-7.2.0-openblas
cmake-3.12.0-gcc-7.2.0 netlib-scalapack-2.0.2-gcc-7.2.0-netlib-mpich openssl-1.0.2o-gcc-7.2.0 readline-7.0-gcc-7.2.0 cmake-3.12.3-gcc-7.2.0 netlib-lapack-3.8.0-gcc-7.2.0 py-setuptools-40.4.3-gcc-7.2.0
gcc-7.2.0-gcc-5.4.0 netlib-scalapack-2.0.2-gcc-7.2.0-netlib-openmpi pkgconf-1.4.2-gcc-7.2.0 sqlite-3.23.1-gcc-7.2.0 diffutils-3.6-gcc-7.2.0 netlib-scalapack-2.0.2-gcc-7.2.0-netlib-mpich python-2.7.15-gcc-7.2.0
gdbm-1.14.1-gcc-7.2.0 netlib-scalapack-2.0.2-gcc-7.2.0-openblas-mpich py-numpy-1.14.3-gcc-7.2.0-openblas zlib-1.2.11-gcc-7.2.0 findutils-4.6.0-gcc-7.2.0 netlib-scalapack-2.0.2-gcc-7.2.0-netlib-openmpi readline-7.0-gcc-7.2.0
mpich-3.2.1-gcc-7.2.0 netlib-scalapack-2.0.2-gcc-7.2.0-openblas-openmpi py-scipy-1.1.0-gcc-7.2.0-openblas gcc-7.2.0-gcc-5.4.0 netlib-scalapack-2.0.2-gcc-7.2.0-openblas-mpich sqlite-3.23.1-gcc-7.2.0
ncurses-6.1-gcc-7.2.0 openblas-0.3.0-gcc-7.2.0 py-setuptools-39.2.0-gcc-7.2.0 gdbm-1.14.1-gcc-7.2.0 netlib-scalapack-2.0.2-gcc-7.2.0-openblas-openmpi texinfo-6.5-gcc-7.2.0
hwloc-1.11.9-gcc-7.2.0 numactl-2.0.11-gcc-7.2.0 util-macros-1.19.1-gcc-7.2.0
libpciaccess-0.13.5-gcc-7.2.0 openblas-0.3.3-gcc-7.2.0 xz-5.2.4-gcc-7.2.0
libsigsegv-2.11-gcc-7.2.0 openmpi-3.1.3-gcc-7.2.0 zlib-1.2.11-gcc-7.2.0
libtool-2.4.6-gcc-7.2.0 openssl-1.0.2o-gcc-7.2.0
libxml2-2.9.8-gcc-7.2.0 perl-5.26.2-gcc-7.2.0
Use "module spider" to find all possible modules. Use "module spider" to find all possible modules.
Use "module keyword key1 key2 ..." to search for all possible modules matching any of the "keys". Use "module keyword key1 key2 ..." to search for all possible modules matching any of the "keys".
@ -725,19 +668,24 @@ The final result should look like:
.. code-block:: console .. code-block:: console
root@module-file-tutorial:/# spack module tcl refresh --delete-tree -y $ spack module tcl refresh --delete-tree -y
==> Regenerating tcl module files ==> Regenerating tcl module files
root@module-file-tutorial:/# module av $ module avail
-------------------------------------------- /usr/local/share/spack/modules/linux-ubuntu16.04-x86_64 --------------------------------------------- ----------------------------------------------- /home/spack1/spack/share/spack/modules/linux-ubuntu16.04-x86_64 -----------------------------------------------
bzip2/1.0.6-gcc-7.2.0 netlib-scalapack/2.0.2-gcc-7.2.0-netlib-openmpi py-scipy/1.1.0-gcc-7.2.0-openblas autoconf/2.69-gcc-7.2.0 m4/1.4.18-gcc-7.2.0 pkgconf/1.4.2-gcc-7.2.0
cmake/3.12.0-gcc-7.2.0 netlib-scalapack/2.0.2-gcc-7.2.0-openblas-mpich py-setuptools/39.2.0-gcc-7.2.0 automake/1.16.1-gcc-7.2.0 mpich/3.2.1-gcc-7.2.0 py-numpy/1.15.2-gcc-7.2.0-openblas
gcc/7.2.0-gcc-5.4.0 netlib-scalapack/2.0.2-gcc-7.2.0-openblas-openmpi (D) python/2.7.15-gcc-7.2.0 bzip2/1.0.6-gcc-7.2.0 ncurses/6.1-gcc-7.2.0 py-scipy/1.1.0-gcc-7.2.0-openblas
gdbm/1.14.1-gcc-7.2.0 openblas/0.3.0-gcc-7.2.0 readline/7.0-gcc-7.2.0 cmake/3.12.3-gcc-7.2.0 netlib-lapack/3.8.0-gcc-7.2.0 py-setuptools/40.4.3-gcc-7.2.0
mpich/3.2.1-gcc-7.2.0 openmpi/1.10.2-gcc-7.2.0 sqlite/3.23.1-gcc-7.2.0 diffutils/3.6-gcc-7.2.0 netlib-scalapack/2.0.2-gcc-7.2.0-netlib-mpich python/2.7.15-gcc-7.2.0
ncurses/6.1-gcc-7.2.0 openssl/1.0.2o-gcc-7.2.0 zlib/1.2.11-gcc-7.2.0 findutils/4.6.0-gcc-7.2.0 netlib-scalapack/2.0.2-gcc-7.2.0-netlib-openmpi readline/7.0-gcc-7.2.0
netlib-lapack/3.8.0-gcc-7.2.0 pkgconf/1.4.2-gcc-7.2.0 gcc/7.2.0-gcc-5.4.0 netlib-scalapack/2.0.2-gcc-7.2.0-openblas-mpich sqlite/3.23.1-gcc-7.2.0
netlib-scalapack/2.0.2-gcc-7.2.0-netlib-mpich py-numpy/1.14.3-gcc-7.2.0-openblas gdbm/1.14.1-gcc-7.2.0 netlib-scalapack/2.0.2-gcc-7.2.0-openblas-openmpi (D) texinfo/6.5-gcc-7.2.0
hwloc/1.11.9-gcc-7.2.0 numactl/2.0.11-gcc-7.2.0 util-macros/1.19.1-gcc-7.2.0
libpciaccess/0.13.5-gcc-7.2.0 openblas/0.3.3-gcc-7.2.0 xz/5.2.4-gcc-7.2.0
libsigsegv/2.11-gcc-7.2.0 openmpi/3.1.3-gcc-7.2.0 zlib/1.2.11-gcc-7.2.0
libtool/2.4.6-gcc-7.2.0 openssl/1.0.2o-gcc-7.2.0
libxml2/2.9.8-gcc-7.2.0 perl/5.26.2-gcc-7.2.0
Where: Where:
D: Default Module D: Default Module
@ -799,26 +747,26 @@ Regenerating the module files results in something like:
.. code-block:: console .. code-block:: console
:emphasize-lines: 15 :emphasize-lines: 15
root@module-file-tutorial:/# spack module tcl refresh -y $ spack module tcl refresh -y
==> Regenerating tcl module files ==> Regenerating tcl module files
root@module-file-tutorial:/# module show gcc $ module show gcc
---------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------
/usr/local/share/spack/modules/linux-ubuntu16.04-x86_64/gcc/7.2.0-gcc-5.4.0: /home/spack1/spack/share/spack/modules/linux-ubuntu16.04-x86_64/gcc/7.2.0-gcc-5.4.0:
---------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------
whatis("The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Ada, and Go, as well as libraries for these languages. ") whatis("The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Ada, and Go, as well as libraries for these languages. ")
conflict("gcc") conflict("gcc")
prepend_path("PATH","/usr/local/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-wwhgyejrjfjtdsgga3hn246bc64jtr6o/bin") prepend_path("PATH","/home/spack1/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-b7smjjcsmwe5u5fcsvjmonlhlzzctnfs/bin")
prepend_path("MANPATH","/usr/local/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-wwhgyejrjfjtdsgga3hn246bc64jtr6o/share/man") prepend_path("MANPATH","/home/spack1/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-b7smjjcsmwe5u5fcsvjmonlhlzzctnfs/share/man")
prepend_path("LD_LIBRARY_PATH","/usr/local/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-wwhgyejrjfjtdsgga3hn246bc64jtr6o/lib") prepend_path("LD_LIBRARY_PATH","/home/spack1/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-b7smjjcsmwe5u5fcsvjmonlhlzzctnfs/lib")
prepend_path("LD_LIBRARY_PATH","/usr/local/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-wwhgyejrjfjtdsgga3hn246bc64jtr6o/lib64") prepend_path("LD_LIBRARY_PATH","/home/spack1/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-b7smjjcsmwe5u5fcsvjmonlhlzzctnfs/lib64")
prepend_path("CMAKE_PREFIX_PATH","/usr/local/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-wwhgyejrjfjtdsgga3hn246bc64jtr6o/") prepend_path("CMAKE_PREFIX_PATH","/home/spack1/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-b7smjjcsmwe5u5fcsvjmonlhlzzctnfs/")
setenv("CC","/usr/local/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-wwhgyejrjfjtdsgga3hn246bc64jtr6o/bin/gcc") setenv("CC","/home/spack1/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-b7smjjcsmwe5u5fcsvjmonlhlzzctnfs/bin/gcc")
setenv("CXX","/usr/local/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-wwhgyejrjfjtdsgga3hn246bc64jtr6o/bin/g++") setenv("CXX","/home/spack1/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-b7smjjcsmwe5u5fcsvjmonlhlzzctnfs/bin/g++")
setenv("FC","/usr/local/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-wwhgyejrjfjtdsgga3hn246bc64jtr6o/bin/gfortran") setenv("FC","/home/spack1/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-b7smjjcsmwe5u5fcsvjmonlhlzzctnfs/bin/gfortran")
setenv("F77","/usr/local/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-wwhgyejrjfjtdsgga3hn246bc64jtr6o/bin/gfortran") setenv("F77","/home/spack1/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-b7smjjcsmwe5u5fcsvjmonlhlzzctnfs/bin/gfortran")
setenv("F90","/usr/local/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-wwhgyejrjfjtdsgga3hn246bc64jtr6o/bin/gfortran") setenv("F90","/home/spack1/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-b7smjjcsmwe5u5fcsvjmonlhlzzctnfs/bin/gfortran")
setenv("GCC_ROOT","/usr/local/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-wwhgyejrjfjtdsgga3hn246bc64jtr6o") setenv("GCC_ROOT","/home/spack1/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-b7smjjcsmwe5u5fcsvjmonlhlzzctnfs")
help([[The GNU Compiler Collection includes front ends for C, C++, Objective-C, help([[The GNU Compiler Collection includes front ends for C, C++, Objective-C,
Fortran, Ada, and Go, as well as libraries for these languages. Fortran, Ada, and Go, as well as libraries for these languages.
]]) ]])
@ -875,48 +823,50 @@ This time we will be more selective and regenerate only the ``gcc`` and
.. code-block:: console .. code-block:: console
root@module-file-tutorial:/# spack module tcl refresh -y gcc $ spack module tcl refresh -y gcc
==> Regenerating tcl module files ==> Regenerating tcl module files
root@module-file-tutorial:/# spack module tcl refresh -y openmpi $ spack module tcl refresh -y openmpi
==> Regenerating tcl module files ==> Regenerating tcl module files
root@module-file-tutorial:/# module show gcc $ module show gcc
---------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------
/usr/local/share/spack/modules/linux-ubuntu16.04-x86_64/gcc/7.2.0-gcc-5.4.0: /home/spack1/spack/share/spack/modules/linux-ubuntu16.04-x86_64/gcc/7.2.0-gcc-5.4.0:
---------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------
whatis("The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Ada, and Go, as well as libraries for these languages. ") whatis("The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Ada, and Go, as well as libraries for these languages. ")
conflict("gcc") conflict("gcc")
prepend_path("PATH","/usr/local/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-wwhgyejrjfjtdsgga3hn246bc64jtr6o/bin") prepend_path("PATH","/home/spack1/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-b7smjjcsmwe5u5fcsvjmonlhlzzctnfs/bin")
prepend_path("MANPATH","/usr/local/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-wwhgyejrjfjtdsgga3hn246bc64jtr6o/share/man") prepend_path("MANPATH","/home/spack1/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-b7smjjcsmwe5u5fcsvjmonlhlzzctnfs/share/man")
prepend_path("LD_LIBRARY_PATH","/usr/local/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-wwhgyejrjfjtdsgga3hn246bc64jtr6o/lib") prepend_path("LD_LIBRARY_PATH","/home/spack1/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-b7smjjcsmwe5u5fcsvjmonlhlzzctnfs/lib")
prepend_path("LD_LIBRARY_PATH","/usr/local/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-wwhgyejrjfjtdsgga3hn246bc64jtr6o/lib64") prepend_path("LD_LIBRARY_PATH","/home/spack1/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-b7smjjcsmwe5u5fcsvjmonlhlzzctnfs/lib64")
prepend_path("CMAKE_PREFIX_PATH","/usr/local/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-wwhgyejrjfjtdsgga3hn246bc64jtr6o/") prepend_path("CMAKE_PREFIX_PATH","/home/spack1/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-b7smjjcsmwe5u5fcsvjmonlhlzzctnfs/")
setenv("CC","/usr/local/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-wwhgyejrjfjtdsgga3hn246bc64jtr6o/bin/gcc") setenv("CC","/home/spack1/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-b7smjjcsmwe5u5fcsvjmonlhlzzctnfs/bin/gcc")
setenv("CXX","/usr/local/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-wwhgyejrjfjtdsgga3hn246bc64jtr6o/bin/g++") setenv("CXX","/home/spack1/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-b7smjjcsmwe5u5fcsvjmonlhlzzctnfs/bin/g++")
setenv("FC","/usr/local/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-wwhgyejrjfjtdsgga3hn246bc64jtr6o/bin/gfortran") setenv("FC","/home/spack1/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-b7smjjcsmwe5u5fcsvjmonlhlzzctnfs/bin/gfortran")
setenv("F77","/usr/local/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-wwhgyejrjfjtdsgga3hn246bc64jtr6o/bin/gfortran") setenv("F77","/home/spack1/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-b7smjjcsmwe5u5fcsvjmonlhlzzctnfs/bin/gfortran")
setenv("F90","/usr/local/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-wwhgyejrjfjtdsgga3hn246bc64jtr6o/bin/gfortran") setenv("F90","/home/spack1/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-b7smjjcsmwe5u5fcsvjmonlhlzzctnfs/bin/gfortran")
setenv("GCC_ROOT","/usr/local/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-wwhgyejrjfjtdsgga3hn246bc64jtr6o") setenv("GCC_ROOT","/home/spack1/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/gcc-7.2.0-b7smjjcsmwe5u5fcsvjmonlhlzzctnfs")
setenv("CC","gcc") setenv("CC","gcc")
setenv("CXX","g++") setenv("CXX","g++'")
setenv("FC","gfortran") setenv("FC","gfortran")
setenv("F90","gfortran")
setenv("F77","gfortran") setenv("F77","gfortran")
setenv("F90","gfortran")
help([[The GNU Compiler Collection includes front ends for C, C++, Objective-C, help([[The GNU Compiler Collection includes front ends for C, C++, Objective-C,
Fortran, Ada, and Go, as well as libraries for these languages. Fortran, Ada, and Go, as well as libraries for these languages.
]]) ]])
root@module-file-tutorial:/# module show openmpi $ module show openmpi
---------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------
/usr/local/share/spack/modules/linux-ubuntu16.04-x86_64/openmpi/1.10.2-gcc-7.2.0: /home/spack1/spack/share/spack/modules/linux-ubuntu16.04-x86_64/openmpi/3.1.3-gcc-7.2.0:
---------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------
whatis("An open source Message Passing Interface implementation. ") whatis("An open source Message Passing Interface implementation. ")
conflict("openmpi") conflict("openmpi")
prepend_path("MANPATH","/usr/share/man") prepend_path("PATH","/home/spack1/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-7.2.0/openmpi-3.1.3-do5xfer2whhk7gc26atgs3ozr3ljbvs4/bin")
prepend_path("ACLOCAL_PATH","/usr/share/aclocal") prepend_path("MANPATH","/home/spack1/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-7.2.0/openmpi-3.1.3-do5xfer2whhk7gc26atgs3ozr3ljbvs4/share/man")
prepend_path("PKG_CONFIG_PATH","/usr/lib/pkgconfig") prepend_path("LD_LIBRARY_PATH","/home/spack1/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-7.2.0/openmpi-3.1.3-do5xfer2whhk7gc26atgs3ozr3ljbvs4/lib")
setenv("OPENMPI_ROOT","/usr") prepend_path("PKG_CONFIG_PATH","/home/spack1/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-7.2.0/openmpi-3.1.3-do5xfer2whhk7gc26atgs3ozr3ljbvs4/lib/pkgconfig")
prepend_path("CMAKE_PREFIX_PATH","/home/spack1/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-7.2.0/openmpi-3.1.3-do5xfer2whhk7gc26atgs3ozr3ljbvs4/")
setenv("OPENMPI_ROOT","/home/spack1/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-7.2.0/openmpi-3.1.3-do5xfer2whhk7gc26atgs3ozr3ljbvs4")
setenv("SLURM_MPI_TYPE","pmi2") setenv("SLURM_MPI_TYPE","pmi2")
setenv("OMPI_MCA_btl_openib_warn_default_gid_prefix","0") setenv("OMPI_MCA_btl_openib_warn_default_gid_prefix","0")
help([[An open source Message Passing Interface implementation. The Open MPI help([[An open source Message Passing Interface implementation. The Open MPI
@ -994,9 +944,9 @@ Now the ``py-scipy`` module will be:
.. code-block:: tcl .. code-block:: tcl
#%Module1.0 #%Module1.0
## Module file created by spack (https://github.com/spack/spack) on 2018-07-10 15:15:09.308128 ## Module file created by spack (https://github.com/spack/spack) on 2018-11-11 22:10:48.834221
## ##
## py-scipy@1.1.0%gcc@7.2.0 arch=linux-ubuntu16.04-x86_64 /fdiryak ## py-scipy@1.1.0%gcc@7.2.0 arch=linux-ubuntu16.04-x86_64 /d5n3cph
## ##
@ -1008,33 +958,33 @@ Now the ``py-scipy`` module will be:
puts stderr "routines for numerical integration and optimization." puts stderr "routines for numerical integration and optimization."
} }
if ![ is-loaded python/2.7.15-gcc-7.2.0 ] { if { [ module-info mode load ] && ![ is-loaded python/2.7.15-gcc-7.2.0 ] } {
puts stderr "Autoloading python/2.7.15-gcc-7.2.0" puts stderr "Autoloading python/2.7.15-gcc-7.2.0"
module load python/2.7.15-gcc-7.2.0 module load python/2.7.15-gcc-7.2.0
} }
if ![ is-loaded openblas/0.3.0-gcc-7.2.0 ] { if { [ module-info mode load ] && ![ is-loaded openblas/0.3.3-gcc-7.2.0 ] } {
puts stderr "Autoloading openblas/0.3.0-gcc-7.2.0" puts stderr "Autoloading openblas/0.3.3-gcc-7.2.0"
module load openblas/0.3.0-gcc-7.2.0 module load openblas/0.3.3-gcc-7.2.0
} }
if ![ is-loaded py-numpy/1.14.3-gcc-7.2.0-openblas ] { if { [ module-info mode load ] && ![ is-loaded py-numpy/1.15.2-gcc-7.2.0-openblas ] } {
puts stderr "Autoloading py-numpy/1.14.3-gcc-7.2.0-openblas" puts stderr "Autoloading py-numpy/1.15.2-gcc-7.2.0-openblas"
module load py-numpy/1.14.3-gcc-7.2.0-openblas module load py-numpy/1.15.2-gcc-7.2.0-openblas
} }
conflict py-scipy conflict py-scipy
prepend-path LD_LIBRARY_PATH "/usr/local/opt/spack/linux-ubuntu16.04-x86_64/gcc-7.2.0/py-scipy-1.1.0-fdiryak4ywv2krvqo7uzogfcc6uckkdp/lib" prepend-path LD_LIBRARY_PATH "/home/spack1/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-7.2.0/py-scipy-1.1.0-d5n3cphk2lx2v74ypwb6h7tna7vvgdyn/lib"
prepend-path CMAKE_PREFIX_PATH "/usr/local/opt/spack/linux-ubuntu16.04-x86_64/gcc-7.2.0/py-scipy-1.1.0-fdiryak4ywv2krvqo7uzogfcc6uckkdp/" prepend-path CMAKE_PREFIX_PATH "/home/spack1/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-7.2.0/py-scipy-1.1.0-d5n3cphk2lx2v74ypwb6h7tna7vvgdyn/"
prepend-path PYTHONPATH "/usr/local/opt/spack/linux-ubuntu16.04-x86_64/gcc-7.2.0/py-scipy-1.1.0-fdiryak4ywv2krvqo7uzogfcc6uckkdp/lib/python2.7/site-packages" prepend-path PYTHONPATH "/home/spack1/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-7.2.0/py-scipy-1.1.0-d5n3cphk2lx2v74ypwb6h7tna7vvgdyn/lib/python2.7/site-packages"
setenv PY_SCIPY_ROOT "/usr/local/opt/spack/linux-ubuntu16.04-x86_64/gcc-7.2.0/py-scipy-1.1.0-fdiryak4ywv2krvqo7uzogfcc6uckkdp" setenv PY_SCIPY_ROOT "/home/spack1/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-7.2.0/py-scipy-1.1.0-d5n3cphk2lx2v74ypwb6h7tna7vvgdyn"
and will contain code to autoload all the dependencies: and will contain code to autoload all the dependencies:
.. code-block:: console .. code-block:: console
root@module-file-tutorial:/# module load py-scipy $ module load py-scipy
Autoloading python/2.7.15-gcc-7.2.0 Autoloading python/2.7.15-gcc-7.2.0
Autoloading openblas/0.3.0-gcc-7.2.0 Autoloading openblas/0.3.3-gcc-7.2.0
Autoloading py-numpy/1.14.3-gcc-7.2.0-openblas Autoloading py-numpy/1.15.2-gcc-7.2.0-openblas
In case messages are unwanted during the autoload procedure, it will be In case messages are unwanted during the autoload procedure, it will be
sufficient to omit the line setting ``verbose: True`` in the configuration file above. sufficient to omit the line setting ``verbose: True`` in the configuration file above.
@ -1050,20 +1000,22 @@ all the software is visible at the same time:
.. code-block:: console .. code-block:: console
root@module-file-tutorial:/# module avail $ module avail
-------------------------------------------- /usr/local/share/spack/modules/linux-ubuntu16.04-x86_64 --------------------------------------------- ----------------------------------------------- /home/spack1/spack/share/spack/modules/linux-ubuntu16.04-x86_64 -----------------------------------------------
bzip2/1.0.6-gcc-7.2.0 openblas/0.3.0-gcc-7.2.0 (L) autoconf/2.69-gcc-7.2.0 m4/1.4.18-gcc-7.2.0 pkgconf/1.4.2-gcc-7.2.0
cmake/3.11.4-gcc-7.2.0 openmpi/1.10.2-gcc-7.2.0 automake/1.16.1-gcc-7.2.0 mpich/3.2.1-gcc-7.2.0 py-numpy/1.15.2-gcc-7.2.0-openblas (L)
gcc/7.2.0-gcc-5.4.0 openssl/1.0.2o-gcc-7.2.0 bzip2/1.0.6-gcc-7.2.0 ncurses/6.1-gcc-7.2.0 py-scipy/1.1.0-gcc-7.2.0-openblas (L)
gdbm/1.14.1-gcc-7.2.0 pkgconf/1.4.2-gcc-7.2.0 cmake/3.12.3-gcc-7.2.0 netlib-lapack/3.8.0-gcc-7.2.0 py-setuptools/40.4.3-gcc-7.2.0
mpich/3.2.1-gcc-7.2.0 py-numpy/1.14.3-gcc-7.2.0-openblas (L) diffutils/3.6-gcc-7.2.0 netlib-scalapack/2.0.2-gcc-7.2.0-netlib-mpich python/2.7.15-gcc-7.2.0 (L)
ncurses/6.1-gcc-7.2.0 py-scipy/1.1.0-gcc-7.2.0-openblas (L) findutils/4.6.0-gcc-7.2.0 netlib-scalapack/2.0.2-gcc-7.2.0-netlib-openmpi readline/7.0-gcc-7.2.0
netlib-lapack/3.8.0-gcc-7.2.0 py-setuptools/39.2.0-gcc-7.2.0 gcc/7.2.0-gcc-5.4.0 netlib-scalapack/2.0.2-gcc-7.2.0-openblas-mpich sqlite/3.23.1-gcc-7.2.0
netlib-scalapack/2.0.2-gcc-7.2.0-netlib-mpich python/2.7.15-gcc-7.2.0 (L) gdbm/1.14.1-gcc-7.2.0 netlib-scalapack/2.0.2-gcc-7.2.0-openblas-openmpi (D) texinfo/6.5-gcc-7.2.0
netlib-scalapack/2.0.2-gcc-7.2.0-netlib-openmpi readline/7.0-gcc-7.2.0 hwloc/1.11.9-gcc-7.2.0 numactl/2.0.11-gcc-7.2.0 util-macros/1.19.1-gcc-7.2.0
netlib-scalapack/2.0.2-gcc-7.2.0-openblas-mpich sqlite/3.23.1-gcc-7.2.0 libpciaccess/0.13.5-gcc-7.2.0 openblas/0.3.3-gcc-7.2.0 (L) xz/5.2.4-gcc-7.2.0
netlib-scalapack/2.0.2-gcc-7.2.0-openblas-openmpi (D) zlib/1.2.11-gcc-7.2.0 libsigsegv/2.11-gcc-7.2.0 openmpi/3.1.3-gcc-7.2.0 zlib/1.2.11-gcc-7.2.0
libtool/2.4.6-gcc-7.2.0 openssl/1.0.2o-gcc-7.2.0
libxml2/2.9.8-gcc-7.2.0 perl/5.26.2-gcc-7.2.0
Where: Where:
L: Module is loaded L: Module is loaded
@ -1077,12 +1029,12 @@ that nothing prevents users from loading incompatible sets of modules:
.. code-block:: console .. code-block:: console
root@module-file-tutorial:/# module purge $ module purge
root@module-file-tutorial:/# module load netlib-lapack/3.8.0-gcc-7.2.0 openblas/0.3.0-gcc-7.2.0 $ module load netlib-lapack/3.8.0-gcc-7.2.0 openblas/0.3.3-gcc-7.2.0
root@module-file-tutorial:/# module list $ module list
Currently Loaded Modules: Currently Loaded Modules:
1) netlib-lapack/3.8.0-gcc-7.2.0 2) openblas/0.3.0-gcc-7.2.0 1) netlib-lapack/3.8.0-gcc-7.2.0 2) openblas/0.3.3-gcc-7.2.0
Even if ``conflicts`` directives are carefully placed in module files, they: Even if ``conflicts`` directives are carefully placed in module files, they:
@ -1170,24 +1122,24 @@ If we now regenerate the module files:
.. code-block:: console .. code-block:: console
root@module-file-tutorial:/# spack module lmod refresh --delete-tree -y $ spack module lmod refresh --delete-tree -y
==> Regenerating lmod module files ==> Regenerating lmod module files
and update ``MODULEPATH`` to point to the ``Core``: and update ``MODULEPATH`` to point to the ``Core``:
.. code-block:: console .. code-block:: console
root@module-file-tutorial:/# module purge $ module purge
root@module-file-tutorial:/# module unuse /usr/local/share/spack/modules/linux-ubuntu16.04-x86_64 $ module unuse /home/spack1/spack/share/spack/modules/linux-ubuntu16.04-x86_64
root@module-file-tutorial:/# module use /usr/local/share/spack/lmod/linux-ubuntu16.04-x86_64/Core $ module use /home/spack1/spack/share/spack/lmod/linux-ubuntu16.04-x86_64/Core
asking for the available modules will return: asking for the available modules will return:
.. code-block:: console .. code-block:: console
root@module-file-tutorial:/# module avail $ module avail
------------------------------------------- /usr/local/share/spack/lmod/linux-ubuntu16.04-x86_64/Core -------------------------------------------- ----------------------------------------------------------- share/spack/lmod/linux-ubuntu16.04-x86_64/Core ------------------------------------------------------------
gcc/7.2.0 gcc/7.2.0
Use "module spider" to find all possible modules. Use "module spider" to find all possible modules.
@ -1198,15 +1150,17 @@ the ``Compiler`` part of the hierarchy:
.. code-block:: console .. code-block:: console
root@module-file-tutorial:/# module load gcc $ module load gcc
root@module-file-tutorial:/# module avail $ module avail
----------------------------------------- /usr/local/share/spack/lmod/linux-ubuntu16.04-x86_64/gcc/7.2.0 ----------------------------------------- ------------------------------------------- /home/spack1/spack/share/spack/lmod/linux-ubuntu16.04-x86_64/gcc/7.2.0 --------------------------------------------
bzip2/1.0.6 mpich/3.2.1 openblas/0.3.0 pkgconf/1.4.2 py-setuptools/39.2.0 sqlite/3.23.1 autoconf/2.69 findutils/4.6.0 libtool/2.4.6 netlib-lapack/3.8.0 perl/5.26.2 python/2.7.15 xz/5.2.4
cmake/3.12.0 ncurses/6.1 openmpi/1.10.2 py-numpy/1.14.3-openblas python/2.7.15 zlib/1.2.11 automake/1.16.1 gdbm/1.14.1 libxml2/2.9.8 numactl/2.0.11 pkgconf/1.4.2 readline/7.0 zlib/1.2.11
gdbm/1.14.1 netlib-lapack/3.8.0 openssl/1.0.2o py-scipy/1.1.0-openblas readline/7.0 bzip2/1.0.6 hwloc/1.11.9 m4/1.4.18 openblas/0.3.3 py-numpy/1.15.2-openblas sqlite/3.23.1
cmake/3.12.3 libpciaccess/0.13.5 mpich/3.2.1 openmpi/3.1.3 py-scipy/1.1.0-openblas texinfo/6.5
diffutils/3.6 libsigsegv/2.11 ncurses/6.1 openssl/1.0.2o py-setuptools/40.4.3 util-macros/1.19.1
------------------------------------------- /usr/local/share/spack/lmod/linux-ubuntu16.04-x86_64/Core -------------------------------------------- ----------------------------------------------------------- share/spack/lmod/linux-ubuntu16.04-x86_64/Core ------------------------------------------------------------
gcc/7.2.0 (L) gcc/7.2.0 (L)
Where: Where:
@ -1220,18 +1174,20 @@ either ``mpich`` or ``openmpi``. Let's start by loading ``mpich``:
.. code-block:: console .. code-block:: console
root@module-file-tutorial:/# module load mpich $ module load mpich
root@module-file-tutorial:/# module avail $ module avail
------------------------------- /usr/local/share/spack/lmod/linux-ubuntu16.04-x86_64/mpich/3.2.1-vt5xcat/gcc/7.2.0 ------------------------------- --------------------------------- /home/spack1/spack/share/spack/lmod/linux-ubuntu16.04-x86_64/mpich/3.2.1-vt5xcat/gcc/7.2.0 ----------------------------------
netlib-scalapack/2.0.2-netlib netlib-scalapack/2.0.2-openblas (D) netlib-scalapack/2.0.2-netlib netlib-scalapack/2.0.2-openblas (D)
----------------------------------------- /usr/local/share/spack/lmod/linux-ubuntu16.04-x86_64/gcc/7.2.0 ----------------------------------------- ------------------------------------------- /home/spack1/spack/share/spack/lmod/linux-ubuntu16.04-x86_64/gcc/7.2.0 --------------------------------------------
bzip2/1.0.6 mpich/3.2.1 (L) openblas/0.3.0 pkgconf/1.4.2 py-setuptools/39.2.0 sqlite/3.23.1 autoconf/2.69 findutils/4.6.0 libtool/2.4.6 netlib-lapack/3.8.0 perl/5.26.2 python/2.7.15 xz/5.2.4
cmake/3.12.0 ncurses/6.1 openmpi/1.10.2 py-numpy/1.14.3-openblas python/2.7.15 zlib/1.2.11 automake/1.16.1 gdbm/1.14.1 libxml2/2.9.8 numactl/2.0.11 pkgconf/1.4.2 readline/7.0 zlib/1.2.11
gdbm/1.14.1 netlib-lapack/3.8.0 openssl/1.0.2o py-scipy/1.1.0-openblas readline/7.0 bzip2/1.0.6 hwloc/1.11.9 m4/1.4.18 openblas/0.3.3 py-numpy/1.15.2-openblas sqlite/3.23.1
cmake/3.12.3 libpciaccess/0.13.5 mpich/3.2.1 (L) openmpi/3.1.3 py-scipy/1.1.0-openblas texinfo/6.5
diffutils/3.6 libsigsegv/2.11 ncurses/6.1 openssl/1.0.2o py-setuptools/40.4.3 util-macros/1.19.1
------------------------------------------- /usr/local/share/spack/lmod/linux-ubuntu16.04-x86_64/Core -------------------------------------------- ----------------------------------------------------------- share/spack/lmod/linux-ubuntu16.04-x86_64/Core ------------------------------------------------------------
gcc/7.2.0 (L) gcc/7.2.0 (L)
Where: Where:
@ -1246,16 +1202,17 @@ either ``mpich`` or ``openmpi``. Let's start by loading ``mpich``:
root@module-file-tutorial:/# module list root@module-file-tutorial:/# module list
Currently Loaded Modules: Currently Loaded Modules:
1) gcc/7.2.0 2) mpich/3.2.1 3) openblas/0.3.0 4) netlib-scalapack/2.0.2-openblas 1) gcc/7.2.0 2) mpich/3.2.1 3) openblas/0.3.3 4) netlib-scalapack/2.0.2-openblas
At this point we can showcase the improved consistency that a hierarchical layout provides At this point we can showcase the improved consistency that a hierarchical layout provides
over a non-hierarchical one: over a non-hierarchical one:
.. code-block:: console .. code-block:: console
root@module-file-tutorial:/# module load openmpi $ module load openmpi
Lmod is automatically replacing "mpich/3.2.1" with "openmpi/3.1.3".
Lmod is automatically replacing "mpich/3.2.1" with "openmpi/1.10.2".
Due to MODULEPATH changes, the following have been reloaded: Due to MODULEPATH changes, the following have been reloaded:
1) netlib-scalapack/2.0.2-openblas 1) netlib-scalapack/2.0.2-openblas
@ -1284,7 +1241,7 @@ for ``LAPACK`` implementations:
root@module-file-tutorial:/# module list root@module-file-tutorial:/# module list
Currently Loaded Modules: Currently Loaded Modules:
1) gcc/7.2.0 2) openblas/0.3.0 3) openmpi/1.10.2 4) netlib-scalapack/2.0.2-openblas 1) gcc/7.2.0 2) openblas/0.3.3 3) openmpi/3.1.3 4) netlib-scalapack/2.0.2-openblas
root@module-file-tutorial:/# module load netlib-scalapack/2.0.2-netlib root@module-file-tutorial:/# module load netlib-scalapack/2.0.2-netlib
@ -1294,7 +1251,7 @@ for ``LAPACK`` implementations:
root@module-file-tutorial:/# module list root@module-file-tutorial:/# module list
Currently Loaded Modules: Currently Loaded Modules:
1) gcc/7.2.0 2) openblas/0.3.0 3) openmpi/1.10.2 4) netlib-scalapack/2.0.2-netlib 1) gcc/7.2.0 2) openblas/0.3.3 3) openmpi/3.1.3 4) netlib-scalapack/2.0.2-netlib
Hierarchies that are deeper than ``Core``/``Compiler``/``MPI`` are Hierarchies that are deeper than ``Core``/``Compiler``/``MPI`` are
probably still considered "unusual" or "impractical" at many sites, mainly because probably still considered "unusual" or "impractical" at many sites, mainly because
@ -1369,19 +1326,21 @@ we can see that now we have additional components in the hierarchy:
.. code-block:: console .. code-block:: console
root@module-file-tutorial:/# module load gcc $ module load gcc
root@module-file-tutorial:/# module load openblas $ module load openblas
root@module-file-tutorial:/# module avail $ module avail
----------------------------- /usr/local/share/spack/lmod/linux-ubuntu16.04-x86_64/openblas/0.3.0-pdatzbi/gcc/7.2.0 ------------------------------ -------------------------------- /home/spack1/spack/share/spack/lmod/linux-ubuntu16.04-x86_64/openblas/0.3.3-xxoxfh4/gcc/7.2.0 --------------------------------
py-numpy/1.14.3 py-scipy/1.1.0 py-numpy/1.15.2 py-scipy/1.1.0
----------------------------------------- /usr/local/share/spack/lmod/linux-ubuntu16.04-x86_64/gcc/7.2.0 ----------------------------------------- ------------------------------------------- /home/spack1/spack/share/spack/lmod/linux-ubuntu16.04-x86_64/gcc/7.2.0 --------------------------------------------
bzip2/1.0.6 mpich/3.2.1 openblas/0.3.0 (L) pkgconf/1.4.2 readline/7.0 autoconf/2.69 findutils/4.6.0 libtool/2.4.6 netlib-lapack/3.8.0 perl/5.26.2 sqlite/3.23.1
cmake/3.12.0 ncurses/6.1 openmpi/1.10.2 py-setuptools/39.2.0 sqlite/3.23.1 automake/1.16.1 gdbm/1.14.1 libxml2/2.9.8 numactl/2.0.11 pkgconf/1.4.2 texinfo/6.5
gdbm/1.14.1 netlib-lapack/3.8.0 openssl/1.0.2o python/2.7.15 zlib/1.2.11 bzip2/1.0.6 hwloc/1.11.9 m4/1.4.18 openblas/0.3.3 (L) py-setuptools/40.4.3 util-macros/1.19.1
cmake/3.12.3 libpciaccess/0.13.5 mpich/3.2.1 openmpi/3.1.3 python/2.7.15 xz/5.2.4
diffutils/3.6 libsigsegv/2.11 ncurses/6.1 openssl/1.0.2o readline/7.0 zlib/1.2.11
------------------------------------------- /usr/local/share/spack/lmod/linux-ubuntu16.04-x86_64/Core -------------------------------------------- ----------------------------------------------------------- share/spack/lmod/linux-ubuntu16.04-x86_64/Core ------------------------------------------------------------
gcc/7.2.0 (L) gcc/7.2.0 (L)
Where: Where:
@ -1391,21 +1350,23 @@ we can see that now we have additional components in the hierarchy:
Use "module keyword key1 key2 ..." to search for all possible modules matching any of the "keys". Use "module keyword key1 key2 ..." to search for all possible modules matching any of the "keys".
root@module-file-tutorial:/# module load openmpi $ module load openmpi
root@module-file-tutorial:/# module avail $ module avail
------------------ /usr/local/share/spack/lmod/linux-ubuntu16.04-x86_64/openmpi/1.10.2-6oewzwj/openblas/0.3.0-pdatzbi/gcc/7.2.0 ------------------ --------------------- /home/spack1/spack/share/spack/lmod/linux-ubuntu16.04-x86_64/openmpi/3.1.3-do5xfer/openblas/0.3.3-xxoxfh4/gcc/7.2.0 ---------------------
netlib-scalapack/2.0.2 netlib-scalapack/2.0.2
----------------------------- /usr/local/share/spack/lmod/linux-ubuntu16.04-x86_64/openblas/0.3.0-pdatzbi/gcc/7.2.0 ------------------------------ -------------------------------- /home/spack1/spack/share/spack/lmod/linux-ubuntu16.04-x86_64/openblas/0.3.3-xxoxfh4/gcc/7.2.0 --------------------------------
py-numpy/1.14.3 py-scipy/1.1.0 py-numpy/1.15.2 py-scipy/1.1.0
----------------------------------------- /usr/local/share/spack/lmod/linux-ubuntu16.04-x86_64/gcc/7.2.0 ----------------------------------------- ------------------------------------------- /home/spack1/spack/share/spack/lmod/linux-ubuntu16.04-x86_64/gcc/7.2.0 --------------------------------------------
bzip2/1.0.6 mpich/3.2.1 openblas/0.3.0 (L) pkgconf/1.4.2 readline/7.0 autoconf/2.69 findutils/4.6.0 libtool/2.4.6 netlib-lapack/3.8.0 perl/5.26.2 sqlite/3.23.1
cmake/3.11.4 ncurses/6.1 openmpi/1.10.2 (L) py-setuptools/39.2.0 sqlite/3.23.1 automake/1.16.1 gdbm/1.14.1 libxml2/2.9.8 numactl/2.0.11 pkgconf/1.4.2 texinfo/6.5
gdbm/1.14.1 netlib-lapack/3.8.0 openssl/1.0.2o python/2.7.15 zlib/1.2.11 bzip2/1.0.6 hwloc/1.11.9 m4/1.4.18 openblas/0.3.3 (L) py-setuptools/40.4.3 util-macros/1.19.1
cmake/3.12.3 libpciaccess/0.13.5 mpich/3.2.1 openmpi/3.1.3 (L) python/2.7.15 xz/5.2.4
diffutils/3.6 libsigsegv/2.11 ncurses/6.1 openssl/1.0.2o readline/7.0 zlib/1.2.11
------------------------------------------- /usr/local/share/spack/lmod/linux-ubuntu16.04-x86_64/Core -------------------------------------------- ---------------------------------------------- /home/spack1/spack/share/spack/lmod/linux-ubuntu16.04-x86_64/Core ----------------------------------------------
gcc/7.2.0 (L) gcc/7.2.0 (L)
Where: Where:
@ -1418,20 +1379,23 @@ Both ``MPI`` and ``LAPACK`` providers will now benefit from the same safety feat
.. code-block:: console .. code-block:: console
root@module-file-tutorial:/# module load py-numpy netlib-scalapack $ module load py-numpy netlib-scalapack
root@module-file-tutorial:/# module load mpich $ module load mpich
Lmod is automatically replacing "openmpi/1.10.2" with "mpich/3.2.1". Lmod is automatically replacing "openmpi/3.1.3" with "mpich/3.2.1".
Due to MODULEPATH changes, the following have been reloaded: Due to MODULEPATH changes, the following have been reloaded:
1) netlib-scalapack/2.0.2 1) netlib-scalapack/2.0.2
root@module-file-tutorial:/# module load mpich $ module load netlib-lapack
Lmod is automatically replacing "openmpi/1.10.2" with "mpich/3.2.1". Lmod is automatically replacing "openblas/0.3.3" with "netlib-lapack/3.8.0".
Inactive Modules:
1) py-numpy
Due to MODULEPATH changes, the following have been reloaded: Due to MODULEPATH changes, the following have been reloaded:
1) netlib-scalapack/2.0.2 1) netlib-scalapack/2.0.2

View File

@ -48,6 +48,16 @@ A few things before we get started:
Creating the Package File Creating the Package File
------------------------- -------------------------
We will use a separate package repository for the tutorial. Package
repositories allow you to separate sets of packages that take
precedence over one another. We will use the tutorial repo that ships
with Spack to avoid breaking the builtin Spack packages.
.. code-block:: console
$ spack repo add $SPACK_ROOT/var/spack/repos/tutorial/
==> Added repo with namespace 'tutorial'.
Spack comes with a handy command to create a new package: ``spack create``. Spack comes with a handy command to create a new package: ``spack create``.
This command is given the location of a package's source code, downloads This command is given the location of a package's source code, downloads
@ -70,7 +80,7 @@ we run ``spack create`` on it:
==> Checksummed 1 version of mpileaks ==> Checksummed 1 version of mpileaks
==> Using specified package template: 'generic' ==> Using specified package template: 'generic'
==> Created template for mpileaks package ==> Created template for mpileaks package
==> Created package file: $SPACK_ROOT/var/spack/repos/builtin/packages/mpileaks/package.py ==> Created package file: /home/spack1/spack/var/spack/repos/builtin/packages/mpileaks/package.py
And Spack should spawn a text editor with this file: And Spack should spawn a text editor with this file:
@ -78,7 +88,7 @@ And Spack should spawn a text editor with this file:
:language: python :language: python
Spack has created this file in Spack has created this file in
``$SPACK_ROOT/var/spack/repos/builtin/packages/mpileaks/package.py``. Take a ``/home/spack1/spack/var/spack/repos/builtin/packages/mpileaks/package.py``. Take a
moment to look over the file. There's a few placeholders that Spack has moment to look over the file. There's a few placeholders that Spack has
created, which we'll fill in as part of this tutorial: created, which we'll fill in as part of this tutorial:
@ -93,26 +103,27 @@ to build this package:
.. code-block:: console .. code-block:: console
$ spack install mpileaks $ spack install mpileaks
==> Installing mpileaks ==> No binary for mpileaks found: installing from source
==> Using cached archive: /usr/workspace/wsa/legendre/spack/var/spack/cache/mpileaks/mpileaks-1.0.tar.gz ==> Fetching file:///mirror/mpileaks/mpileaks-1.0.tar.gz
==> Staging archive: /usr/workspace/wsa/legendre/spack/var/spack/stage/mpileaks-1.0-hufwhwpq5benv3sslie6ryflk5s6nm35/mpileaks-1.0.tar.gz curl: (37) Couldn't open file /mirror/mpileaks/mpileaks-1.0.tar.gz
==> Created stage in /usr/workspace/wsa/legendre/spack/var/spack/stage/mpileaks-1.0-hufwhwpq5benv3sslie6ryflk5s6nm35 ==> Fetching from file:///mirror/mpileaks/mpileaks-1.0.tar.gz failed.
==> Ran patch() for mpileaks ==> Fetching https://github.com/hpc/mpileaks/releases/download/v1.0/mpileaks-1.0.tar.gz
==> Building mpileaks [AutotoolsPackage] ######################################################################## 100.0%
==> Executing phase : 'autoreconf' ==> Staging archive: /home/ubuntu/packaging/spack/var/spack/stage/mpileaks-1.0-sv75n3u5ev6mljwcezisz3slooozbbxu/mpileaks-1.0.tar.gz
==> Executing phase : 'configure' ==> Created stage in /home/ubuntu/packaging/spack/var/spack/stage/mpileaks-1.0-sv75n3u5ev6mljwcezisz3slooozbbxu
==> Error: ProcessError: Command exited with status 1: ==> No patches needed for mpileaks
'./configure' '--prefix=/usr/workspace/wsa/legendre/spack/opt/spack/linux-rhel7-x86_64/gcc-4.9.3/mpileaks-1.0-hufwhwpq5benv3sslie6ryflk5s6nm35' ==> Building mpileaks [Package]
/usr/workspace/wsa/legendre/spack/lib/spack/spack/build_systems/autotools.py:150, in configure: ==> Executing phase: 'install'
145 def configure(self, spec, prefix): ==> Error: ProcessError: Command exited with status 2:
146 """Runs configure with the arguments specified in `configure_args` 'make' '-j16'
147 and an appropriately set prefix
148 """ 1 error found in build log:
149 options = ['--prefix={0}'.format(prefix)] + self.configure_args() 1 ==> Executing phase: 'install'
>> 150 inspect.getmodule(self).configure(*options) 2 ==> 'make' '-j16'
>> 3 make: *** No targets specified and no makefile found. Stop.
See build log for details: See build log for details:
/tmp/legendre/spack-stage/spack-stage-8HVzqu/mpileaks-1.0/spack-build.out /home/ubuntu/packaging/spack/var/spack/stage/mpileaks-1.0-sv75n3u5ev6mljwcezisz3slooozbbxu/mpileaks-1.0/spack-build.out
This obviously didn't work; we need to fill in the package-specific This obviously didn't work; we need to fill in the package-specific
information. Specifically, Spack didn't try to build any of mpileaks' information. Specifically, Spack didn't try to build any of mpileaks'
@ -148,8 +159,19 @@ allow Spack to provide some documentation on this package to other users:
.. code-block:: console .. code-block:: console
$ spack info mpileaks $ spack info mpileaks
AutotoolsPackage: mpileaks Package: mpileaks
Homepage: https://github.com/hpc/mpileaks
Description:
Tool to detect and report MPI objects like MPI_Requests and
MPI_Datatypes.
Homepage: https://github.com/hpc/mpileaks
Tags:
None
Preferred version:
1.0 https://github.com/hpc/mpileaks/releases/download/v1.0/mpileaks-1.0.tar.gz
Safe versions: Safe versions:
1.0 https://github.com/hpc/mpileaks/releases/download/v1.0/mpileaks-1.0.tar.gz 1.0 https://github.com/hpc/mpileaks/releases/download/v1.0/mpileaks-1.0.tar.gz
@ -158,7 +180,7 @@ allow Spack to provide some documentation on this package to other users:
None None
Installation Phases: Installation Phases:
autoreconf configure build install install
Build Dependencies: Build Dependencies:
None None
@ -172,10 +194,6 @@ allow Spack to provide some documentation on this package to other users:
Virtual Packages: Virtual Packages:
None None
Description:
Tool to detect and report MPI objects like MPI_Requests and
MPI_Datatypes
As we fill in more information about this package the ``spack info`` command As we fill in more information about this package the ``spack info`` command
will become more informative. Now let's start making this package build. will become more informative. Now let's start making this package build.
@ -206,25 +224,39 @@ Now when we try to install this package a lot more happens:
$ spack install mpileaks $ spack install mpileaks
... ...
==> libdwarf is already installed in SPACK_ROOT/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/libdwarf-20160507-er4jrjynul6uba7wiu5tasuj35roxw6m ==> Successfully installed libdwarf from binary cache
==> dyninst is already installed in SPACK_ROOT/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/dyninst-9.3.2-t7mau34jv3e76mpspdzhf2p2a6k7qubg [+] /home/ubuntu/packaging/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/libdwarf-20180129-p4jeflorwlnkoq2vpuyocwrbcht2ayak
==> callpath is already installed in SPACK_ROOT/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/callpath-1.0.4-ikbbkvfmsfmqzo624nvvrbooovf7egoc ==> Installing callpath
==> Searching for binary cache of callpath
==> Installing callpath from binary cache
==> Fetching file:///mirror/build_cache/linux-ubuntu16.04-x86_64/gcc-5.4.0/callpath-1.0.4/linux-ubuntu16.04-x86_64-gcc-5.4.0-callpath-1.0.4-empvyxdkc4j4pwg7gznwhbiumruey66x.spack
######################################################################## 100.0%
gpg: Signature made Sat 10 Nov 2018 05:30:21 AM UTC using RSA key ID 3B7C69B2
gpg: Good signature from "sc-tutorial (GPG created for Spack) <becker33@llnl.gov>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: 95C7 1787 7AC0 0FFD AA8F D6E9 9CFA 4A45 3B7C 69B2
==> Successfully installed callpath from binary cache
[+] /home/ubuntu/packaging/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/callpath-1.0.4-empvyxdkc4j4pwg7gznwhbiumruey66x
==> Installing mpileaks ==> Installing mpileaks
==> Using cached archive: SPACK_ROOT/var/spack/cache/mpileaks/mpileaks-1.0.tar.gz ==> Searching for binary cache of mpileaks
==> Already staged mpileaks-1.0-lfgf53rns5mswq25rxckzgvmjc6ywam7 in SPACK_ROOT/var/spack/stage/mpileaks-1.0-lfgf53rns5mswq25rxckzgvmjc6ywam7 ==> No binary for mpileaks found: installing from source
==> Using cached archive: /home/ubuntu/packaging/spack/var/spack/cache/mpileaks/mpileaks-1.0.tar.gz
==> Staging archive: /home/ubuntu/packaging/spack/var/spack/stage/mpileaks-1.0-csoikctsalli4cdkkdk377gprkc472rb/mpileaks-1.0.tar.gz
==> Created stage in /home/ubuntu/packaging/spack/var/spack/stage/mpileaks-1.0-csoikctsalli4cdkkdk377gprkc472rb
==> No patches needed for mpileaks ==> No patches needed for mpileaks
==> Building mpileaks [Package] ==> Building mpileaks [Package]
==> Executing phase: 'install' ==> Executing phase: 'install'
==> Error: ProcessError: Command exited with status 2: ==> Error: ProcessError: Command exited with status 2:
'make' '-j36' 'make' '-j16'
1 error found in build log: 1 error found in build log:
1 ==> Executing phase: 'install' 1 ==> Executing phase: 'install'
2 ==> 'make' '-j36' 2 ==> 'make' '-j16'
>> 3 make: *** No targets specified and no makefile found. Stop. >> 3 make: *** No targets specified and no makefile found. Stop.
See build log for details: See build log for details:
SPACK_ROOT/var/spack/stage/mpileaks-1.0-lfgf53rns5mswq25rxckzgvmjc6ywam7/mpileaks-1.0/spack-build.out /home/ubuntu/packaging/spack/var/spack/stage/mpileaks-1.0-csoikctsalli4cdkkdk377gprkc472rb/mpileaks-1.0/spack-build.out
Note that this command may take a while to run and produce more output if Note that this command may take a while to run and produce more output if
you don't have an MPI already installed or configured in Spack. you don't have an MPI already installed or configured in Spack.
@ -251,9 +283,15 @@ If we re-run we still get errors:
.. code-block:: console .. code-block:: console
$ spack install mpileask
...
==> Installing mpileaks ==> Installing mpileaks
==> Using cached archive: SPACK_ROOT/var/spack/cache/mpileaks/mpileaks-1.0.tar.gz ==> Searching for binary cache of mpileaks
==> Already staged mpileaks-1.0-lfgf53rns5mswq25rxckzgvmjc6ywam7 in SPACK_ROOT/var/spack/stage/mpileaks-1.0-lfgf53rns5mswq25rxckzgvmjc6ywam7 ==> Finding buildcaches in /mirror/build_cache
==> No binary for mpileaks found: installing from source
==> Using cached archive: /home/ubuntu/packaging/spack/var/spack/cache/mpileaks/mpileaks-1.0.tar.gz
==> Staging archive: /home/ubuntu/packaging/spack/var/spack/stage/mpileaks-1.0-csoikctsalli4cdkkdk377gprkc472rb/mpileaks-1.0.tar.gz
==> Created stage in /home/ubuntu/packaging/spack/var/spack/stage/mpileaks-1.0-csoikctsalli4cdkkdk377gprkc472rb
==> No patches needed for mpileaks ==> No patches needed for mpileaks
==> Building mpileaks [Package] ==> Building mpileaks [Package]
==> Executing phase: 'install' ==> Executing phase: 'install'
@ -261,17 +299,27 @@ If we re-run we still get errors:
'./configure' './configure'
1 error found in build log: 1 error found in build log:
[ ... ] 25 checking for /home/ubuntu/packaging/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-
21 checking whether SPACK_ROOT/lib/spack/env/gcc/gcc and cc understand -c and -o together... yes 5.4.0/openmpi-3.1.3-3njc4q5pqdpptq6jvqjrezkffwokv2sx/bin/mpicc... /home/ubuntu/pa
22 checking whether we are using the GNU C++ compiler... yes ckaging/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/openmpi-3.1.3-3njc4q5p
23 checking whether SPACK_ROOT/lib/spack/env/gcc/g++ accepts -g... yes qdpptq6jvqjrezkffwokv2sx/bin/mpicc
24 checking dependency style of SPACK_ROOT/lib/spack/env/gcc/g++... gcc3 26 Checking whether /home/ubuntu/packaging/spack/opt/spack/linux-ubuntu16.04-x86_64/
25 checking for SPACK_ROOT/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/openmpi-3.0.0-yo5qkfvumpmgmvlbalqcadu46j5bd52f/bin/mpicc... SPACK_ROOT/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/openmpi-3.0.0-yo5qkfvumpmgmvlbalqcadu46j5bd52f/bin/mpicc gcc-5.4.0/openmpi-3.1.3-3njc4q5pqdpptq6jvqjrezkffwokv2sx/bin/mpicc responds to '-
26 Checking whether SPACK_ROOT/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/openmpi-3.0.0-yo5qkfvumpmgmvlbalqcadu46j5bd52f/bin/mpicc responds to '-showme:compile'... yes showme:compile'... no
>> 27 configure: error: unable to locate adept-utils installation 27 Checking whether /home/ubuntu/packaging/spack/opt/spack/linux-ubuntu16.04-x86_64/
gcc-5.4.0/openmpi-3.1.3-3njc4q5pqdpptq6jvqjrezkffwokv2sx/bin/mpicc responds to '-
showme'... no
28 Checking whether /home/ubuntu/packaging/spack/opt/spack/linux-ubuntu16.04-x86_64/
gcc-5.4.0/openmpi-3.1.3-3njc4q5pqdpptq6jvqjrezkffwokv2sx/bin/mpicc responds to '-
compile-info'... no
29 Checking whether /home/ubuntu/packaging/spack/opt/spack/linux-ubuntu16.04-x86_64/
gcc-5.4.0/openmpi-3.1.3-3njc4q5pqdpptq6jvqjrezkffwokv2sx/bin/mpicc responds to '-
show'... no
30 ./configure: line 4809: Echo: command not found
>> 31 configure: error: unable to locate adept-utils installation
See build log for details: See build log for details:
SPACK_ROOT/var/spack/stage/mpileaks-1.0-lfgf53rns5mswq25rxckzgvmjc6ywam7/mpileaks-1.0/spack-build.out /home/ubuntu/packaging/spack/var/spack/stage/mpileaks-1.0-csoikctsalli4cdkkdk377gprkc472rb/mpileaks-1.0/spack-build.out
Again, the problem may be obvious. But let's pretend we're not Again, the problem may be obvious. But let's pretend we're not
all intelligent developers and use this opportunity spend some all intelligent developers and use this opportunity spend some
@ -291,23 +339,23 @@ As per the error message, Spack has given us a ``spack-build.out`` debug log:
checking for a thread-safe mkdir -p... /bin/mkdir -p checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk checking for gawk... gawk
checking whether make sets $(MAKE)... yes checking whether make sets $(MAKE)... yes
checking for gcc... SPACK_ROOT/lib/spack/env/gcc/gcc checking for gcc... /home/spack1/spack/lib/spack/env/gcc/gcc
checking for C compiler default output file name... a.out checking for C compiler default output file name... a.out
checking whether the C compiler works... yes checking whether the C compiler works... yes
checking whether we are cross compiling... no checking whether we are cross compiling... no
checking for suffix of executables... checking for suffix of executables...
checking for suffix of object files... o checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes checking whether we are using the GNU C compiler... yes
checking whether SPACK_ROOT/lib/spack/env/gcc/gcc accepts -g... yes checking whether /home/spack1/spack/lib/spack/env/gcc/gcc accepts -g... yes
checking for SPACK_ROOT/lib/spack/env/gcc/gcc option to accept ISO C89... none needed checking for /home/spack1/spack/lib/spack/env/gcc/gcc option to accept ISO C89... none needed
checking for style of include used by make... GNU checking for style of include used by make... GNU
checking dependency style of SPACK_ROOT/lib/spack/env/gcc/gcc... gcc3 checking dependency style of /home/spack1/spack/lib/spack/env/gcc/gcc... gcc3
checking whether SPACK_ROOT/lib/spack/env/gcc/gcc and cc understand -c and -o together... yes checking whether /home/spack1/spack/lib/spack/env/gcc/gcc and cc understand -c and -o together... yes
checking whether we are using the GNU C++ compiler... yes checking whether we are using the GNU C++ compiler... yes
checking whether SPACK_ROOT/lib/spack/env/gcc/g++ accepts -g... yes checking whether /home/spack1/spack/lib/spack/env/gcc/g++ accepts -g... yes
checking dependency style of SPACK_ROOT/lib/spack/env/gcc/g++... gcc3 checking dependency style of /home/spack1/spack/lib/spack/env/gcc/g++... gcc3
checking for SPACK_ROOT/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/openmpi-3.0.0-yo5qkfvumpmgmvlbalqcadu46j5bd52f/bin/mpicc... SPACK_ROOT/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/openmpi-3.0.0-yo5qkfvumpmgmvlbalqcadu46j5bd52f/bin/mpicc checking for /home/spack1/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/openmpi-3.0.0-yo5qkfvumpmgmvlbalqcadu46j5bd52f/bin/mpicc... /home/spack1/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/openmpi-3.0.0-yo5qkfvumpmgmvlbalqcadu46j5bd52f/bin/mpicc
Checking whether SPACK_ROOT/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/openmpi-3.0.0-yo5qkfvumpmgmvlbalqcadu46j5bd52f/bin/mpicc responds to '-showme:compile'... yes Checking whether /home/spack1/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/openmpi-3.0.0-yo5qkfvumpmgmvlbalqcadu46j5bd52f/bin/mpicc responds to '-showme:compile'... yes
configure: error: unable to locate adept-utils installation configure: error: unable to locate adept-utils installation
This gives us the output from the build, and mpileaks isn't This gives us the output from the build, and mpileaks isn't
@ -322,7 +370,7 @@ We can also enter the build area and try to manually run the build:
.. code-block:: console .. code-block:: console
$ spack env mpileaks bash $ spack build-env mpileaks bash
$ spack cd mpileaks $ spack cd mpileaks
The ``spack env`` command spawned a new shell that contains the same The ``spack env`` command spawned a new shell that contains the same
@ -341,23 +389,23 @@ From here we can manually re-run the build:
checking for a thread-safe mkdir -p... /bin/mkdir -p checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk checking for gawk... gawk
checking whether make sets $(MAKE)... yes checking whether make sets $(MAKE)... yes
checking for gcc... SPACK_ROOT/lib/spack/env/gcc/gcc checking for gcc... /home/spack1/spack/lib/spack/env/gcc/gcc
checking for C compiler default output file name... a.out checking for C compiler default output file name... a.out
checking whether the C compiler works... yes checking whether the C compiler works... yes
checking whether we are cross compiling... no checking whether we are cross compiling... no
checking for suffix of executables... checking for suffix of executables...
checking for suffix of object files... o checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes checking whether we are using the GNU C compiler... yes
checking whether SPACK_ROOT/lib/spack/env/gcc/gcc accepts -g... yes checking whether /home/spack1/spack/lib/spack/env/gcc/gcc accepts -g... yes
checking for SPACK_ROOT/lib/spack/env/gcc/gcc option to accept ISO C89... none needed checking for /home/spack1/spack/lib/spack/env/gcc/gcc option to accept ISO C89... none needed
checking for style of include used by make... GNU checking for style of include used by make... GNU
checking dependency style of SPACK_ROOT/lib/spack/env/gcc/gcc... gcc3 checking dependency style of /home/spack1/spack/lib/spack/env/gcc/gcc... gcc3
checking whether SPACK_ROOT/lib/spack/env/gcc/gcc and cc understand -c and -o together... yes checking whether /home/spack1/spack/lib/spack/env/gcc/gcc and cc understand -c and -o together... yes
checking whether we are using the GNU C++ compiler... yes checking whether we are using the GNU C++ compiler... yes
checking whether SPACK_ROOT/lib/spack/env/gcc/g++ accepts -g... yes checking whether /home/spack1/spack/lib/spack/env/gcc/g++ accepts -g... yes
checking dependency style of SPACK_ROOT/lib/spack/env/gcc/g++... gcc3 checking dependency style of /home/spack1/spack/lib/spack/env/gcc/g++... gcc3
checking for SPACK_ROOT/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/openmpi-3.0.0-yo5qkfvumpmgmvlbalqcadu46j5bd52f/bin/mpicc... SPACK_ROOT/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/openmpi-3.0.0-yo5qkfvumpmgmvlbalqcadu46j5bd52f/bin/mpicc checking for /home/spack1/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/openmpi-3.0.0-yo5qkfvumpmgmvlbalqcadu46j5bd52f/bin/mpicc... /home/spack1/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/openmpi-3.0.0-yo5qkfvumpmgmvlbalqcadu46j5bd52f/bin/mpicc
Checking whether SPACK_ROOT/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/openmpi-3.0.0-yo5qkfvumpmgmvlbalqcadu46j5bd52f/bin/mpicc responds to '-showme:compile'... yes Checking whether /home/spack1/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/openmpi-3.0.0-yo5qkfvumpmgmvlbalqcadu46j5bd52f/bin/mpicc responds to '-showme:compile'... yes
configure: error: unable to locate adept-utils installation configure: error: unable to locate adept-utils installation
We're seeing the same error, but now we're in a shell where we can run We're seeing the same error, but now we're in a shell where we can run
@ -387,16 +435,18 @@ This is all we need for working mpileaks! If we install now we'll see:
$ spack install mpileaks $ spack install mpileaks
... ...
==> Installing mpileaks ==> Installing mpileaks
==> Using cached archive: SPACK_ROOT/var/spack/cache/mpileaks/mpileaks-1.0.tar.gz ==> Searching for binary cache of mpileaks
==> Staging archive: SPACK_ROOT/var/spack/stage/mpileaks-1.0-lfgf53rns5mswq25rxckzgvmjc6ywam7/mpileaks-1.0.tar.gz ==> Finding buildcaches in /mirror/build_cache
==> Created stage in SPACK_ROOT/var/spack/stage/mpileaks-1.0-lfgf53rns5mswq25rxckzgvmjc6ywam7 ==> No binary for mpileaks found: installing from source
==> Using cached archive: /home/ubuntu/packaging/spack/var/spack/cache/mpileaks/mpileaks-1.0.tar.gz
==> Staging archive: /home/ubuntu/packaging/spack/var/spack/stage/mpileaks-1.0-csoikctsalli4cdkkdk377gprkc472rb/mpileaks-1.0.tar.gz
==> Created stage in /home/ubuntu/packaging/spack/var/spack/stage/mpileaks-1.0-csoikctsalli4cdkkdk377gprkc472rb
==> No patches needed for mpileaks ==> No patches needed for mpileaks
==> Building mpileaks [Package] ==> Building mpileaks [Package]
==> Executing phase: 'install' ==> Executing phase: 'install'
==> Successfully installed mpileaks ==> Successfully installed mpileaks
Fetch: 0.00s. Build: 9.01s. Total: 9.01s. Fetch: 0.00s. Build: 9.41s. Total: 9.41s.
[+] SPACK_ROOT/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/mpileaks-1.0-lfgf53rns5mswq25rxckzgvmjc6ywam7 [+] /home/ubuntu/packaging/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/mpileaks-1.0-csoikctsalli4cdkkdk377gprkc472rb
There are some special circumstances in package that are worth highlighting. There are some special circumstances in package that are worth highlighting.
Normally spack would have automatically detected that mpileaks was an Normally spack would have automatically detected that mpileaks was an
@ -413,7 +463,7 @@ a full install routine we would have just written:
Similarly, if this had been a CMake-based package we Similarly, if this had been a CMake-based package we
would have been filling in a ``cmake_args`` function instead of would have been filling in a ``cmake_args`` function instead of
``configure_args``. There are similar default package types for ``configure_args``. There are similar default package types for
many build environments. many build environments that will be discussed later in the tutorial.
-------- --------
Variants Variants
@ -440,13 +490,16 @@ configure line (output truncated for length):
$ spack install --verbose mpileaks stackstart=4 $ spack install --verbose mpileaks stackstart=4
... ...
==> Installing mpileaks ==> Installing mpileaks
==> Using cached archive: SPACK_ROOT/var/spack/cache/mpileaks/mpileaks-1.0.tar.gz ==> Searching for binary cache of mpileaks
==> Staging archive: SPACK_ROOT/var/spack/stage/mpileaks-1.0-gxxi4fp57b4j6xalra5t65hyx5rj25t7/mpileaks-1.0.tar.gz ==> Finding buildcaches in /mirror/build_cache
==> Created stage in SPACK_ROOT/var/spack/stage/mpileaks-1.0-gxxi4fp57b4j6xalra5t65hyx5rj25t7 ==> No binary for mpileaks found: installing from source
==> Using cached archive: /home/ubuntu/packaging/spack/var/spack/cache/mpileaks/mpileaks-1.0.tar.gz
==> Staging archive: /home/ubuntu/packaging/spack/var/spack/stage/mpileaks-1.0-meufjojkxve3l7rci2mbud3faidgplto/mpileaks-1.0.tar.gz
==> Created stage in /home/ubuntu/packaging/spack/var/spack/stage/mpileaks-1.0-meufjojkxve3l7rci2mbud3faidgplto
==> No patches needed for mpileaks ==> No patches needed for mpileaks
==> Building mpileaks [Package] ==> Building mpileaks [Package]
==> Executing phase: 'install' ==> Executing phase: 'install'
==> './configure' '--with-adept-utils=SPACK_ROOT/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/adept-utils-1.0.1-pm3gffhrnwsdtqthtvsfvs2tny4r65wb' '--with-callpath=SPACK_ROOT/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/callpath-1.0.4-ikbbkvfmsfmqzo624nvvrbooovf7egoc' '--prefix=SPACK_ROOT/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/mpileaks-1.0-gxxi4fp57b4j6xalra5t65hyx5rj25t7' '--with-stack-start-c=4' '--with-stack-start-fortran=4' ==> './configure' '--with-adept-utils=/home/ubuntu/packaging/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/adept-utils-1.0.1-7tippnvo5g76wpijk7x5kwfpr3iqiaen' '--with-callpath=/home/ubuntu/packaging/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/callpath-1.0.4-empvyxdkc4j4pwg7gznwhbiumruey66x' '--prefix=/home/ubuntu/packaging/spack/opt/spack/linux-ubuntu16.04-x86_64/gcc-5.4.0/mpileaks-1.0-meufjojkxve3l7rci2mbud3faidgplto' '--with-stack-start-c=4' '--with-stack-start-fortran=4'
--------------- ---------------
The Spec Object The Spec Object