or CPT's wonderful journey through the installer towards getting IMAS on new platforms.
Disclaimer: all example steps given below are assuming BASH
being your shell of choice.
Warning |
---|
Please be aware that installation of many of IMAS ecosystem libraries and tools can be automatized using scripts. |
IMAS
Installing main dependencies
Follow the list of requirements/dependencies as stored in https://git.iter.org/projects/IMAS/repos/access-layer/browse/README.md
Add modules to set them up in the environment.
Getting the IMAS installer
Clone the installer using either master (recommended) or develop branch (at your own risk)
Code Block | ||||
---|---|---|---|---|
| ||||
git clone ssh://git@git.iter.org/imas/installer.git |
Configuring
Create target directory where all IMAS related tools will be deployed (will be referenced as IMAS_HOME
from now on).
Adapt site-config/Makefile.default
to the local configuration and needs. Look at tools/imas-config.in
to try to guess how to name your own site-config
file, and/or check which files are being targeted by running
Code Block | ||||
---|---|---|---|---|
| ||||
DEBUG=1 ./tools/imas-config.in |
Check if configuration is generating the expected setting for the targeted DD and AL tags by running
Code Block | ||||
---|---|---|---|---|
| ||||
make cache make help TAG_DD=a.b.c TAG_AL=x.y.z |
Building and installing
After making sure that compile time required modules are loaded, simply run, for given DD and AL versions
Code Block | ||||
---|---|---|---|---|
| ||||
make install TAG_DD=a.b.c TAG_AL=x.y.z |
IDStools
Getting the sources
Clone the idstools repo (from IMAS Core project, not from IMAS Extra...), and checkout the targeted tag
Code Block | ||||
---|---|---|---|---|
| ||||
git clone ssh://git@git.iter.org/imas/idstools.git cd idstools git checkout x.y.z |
Configuring
Create site-config file with the same name used for the IMAS installer, and specify there the name of the IMAS module and the targeted idstools module name.
Make sure you have IMAS module loaded before attempting the build (it sets required IMAS_HOME
variable and imas-config-installer
).
Check if configuration is well set by checking the result of
Code Block | ||||
---|---|---|---|---|
| ||||
make help |
Building and installing
Code Block | ||||
---|---|---|---|---|
| ||||
make all make install |
FC2K
Installing main dependencies
Requires ant
and JaxFront
Getting the sources
Clone the fc2k repo from IMAS extra project, and checkout the targeted tag
Code Block | ||||
---|---|---|---|---|
| ||||
git clone ssh://git@git.iter.org/imex/fc2k.git cd fc2k git checkout x.y.z |
Configuring
Create two config files under the config directory:
- config/install_xxxx.xml will contain information for building/installing fc2k
- config/settings_xxxx.xml will contain information required when using fc2k to build actors
Once these files have been created, use imas-config-fc2k command to check if correct settings file is detected. For install file, link the one created as config/install_default.xml (or how to force ant to use the xxxx one, so we can avoid obtaining a "-dirty" version?).
Check configuration by
Code Block | ||||
---|---|---|---|---|
| ||||
ant check-config |
Building and installing
After making sure IMAS module is loaded
Code Block | ||||
---|---|---|---|---|
| ||||
ant compile ant install |
XMLlib
Getting the sources
Clone the xmllib repo from IMAS libraries project, and checkout the targeted tag
Code Block | ||||
---|---|---|---|---|
| ||||
git clone ssh://git@git.iter.org/lib/xmllib.git cd xmllib git checkout x.y.z |
Configuring
Make sure autoconf / automake are available, then
Code Block | ||||
---|---|---|---|---|
| ||||
./bootstrap ./configure FC=<targeted fortran compiler, e.g gfortran> CC=<associated C compiler, e.g gcc> --prefix=<install_dir, e.g $IMAS_HOME/extra/xmllib> |
Building and installing
Code Block | ||||
---|---|---|---|---|
| ||||
make clean make all make check make install |
Then repeat the configuration and building/installing steps for each fortran compilers.
Note |
---|
Associated module needs to be created manually |
GGD
Getting the sources
Clone the ggd repo from IMAS extra project, and checkout the targeted tag
Code Block | ||||
---|---|---|---|---|
| ||||
git clone ssh://git@git.iter.org/imex/ggd.git cd ggd git checkout x.y.z |
Configuring
Make sure autoconf / automake are available, then
Code Block | ||||
---|---|---|---|---|
| ||||
./bootstrap ./configure FC=<targeted fortran compiler, e.g gfortran> --prefix=<install_dir, e.g $IMAS_HOME/extra/ggd> --enable-doc --enable-tests |
Building and installing
Code Block | ||||
---|---|---|---|---|
| ||||
make clean make make check make install |
Then repeat the configuration and building/installing steps for each fortran compilers.
Note |
---|
Associated module needs to be created manually |
Kepler
Installing dependencies
Requires maven
and ant
(ant version 1.10.x seems not to be able to compile kepler sources, so stay with 1.9.x)
Getting the Kepler installer
Clone the kepler-installer from IMAS extra project, and checkout the targeted tag
Code Block | ||||
---|---|---|---|---|
| ||||
ssh://git@git.iter.org/imex/kepler-installer.git cd kepler-installer git checkout x.y.z |
Configuring
Adapt site-config/Makefile.default
to the local configuration and needs. Use the same name already set for IMAS installer, or call imas-config
tool (available after loading IMAS module) to check which files are being targeted
Code Block | ||||
---|---|---|---|---|
| ||||
DEBUG=1 ./tools/imas-config.in |
Check if configuration is generating the expected setting by running
Code Block | ||||
---|---|---|---|---|
| ||||
make version |
Building and installing
After making sure that compile time required modules are loaded, simply run
Code Block | ||||
---|---|---|---|---|
| ||||
make install |
SimDB
Getting the sources
Clone the simdb repo from IMAS extra project
Code Block | ||||
---|---|---|---|---|
| ||||
git clone ssh://git@git.iter.org/imex/simdb.git |
Configuring
Load correct Python version and set place to install library
Code Block | ||||
---|---|---|---|---|
| ||||
module load itm-python/3.10 export INSTALL_DIR=<e.g /gw/swimas/extra/simdb/0.7.13/python/3.10.2>2/> |
Building and installing
Code Block | ||||
---|---|---|---|---|
| ||||
cd simdb python -m pip install --target $INSTALL_DIR simdb. |
Example with real steps followed on IPP's tok
cluster.
IMAS
- Installing
Saxon-HE
from https://sourceforge.net/projects/saxon/files/Saxon-HE/9.9/SaxonHE9-9-1-5J.zip/download - Installing
Blitz++
from https://github.com/blitzpp/blitz- specify
--with-pic
to configure step
- specify
- Installing more recent version of MDSplus from https://github.com/MDSplus/mdsplus (stable release 7.84.8)
- step by step
- git clone https://github.com/MDSplus/mdsplus.git
- cd mdsplus
- git checkout stable_x_y
- ./bootstrap
- ./configure --prefix=<INSTALL_DIR>
- make; make install
- requires building the python interface in order to allow conversion with ualport.py
- step by step
Updating tools/imas-config.in
Code Block language bash theme Midnight diff --git a/tools/imas-config.in b/tools/imas-config.in index 7d7cdc4..84c7f11 100755 --- a/tools/imas-config.in +++ b/tools/imas-config.in @@ -126,6 +126,7 @@ getalias() { [[ "$1" =~ ^gpu(008|010).fusion.ccfe.ac.uk$ ]] && echo "UKAEA.GPU" [[ "$1" =~ ^ipp.mpg.de$ ]] && echo "IPP-Garching" [[ "$1" =~ ^mpcdf.mpg.de$ ]] && echo "IPP-Garching" + [[ "$1" =~ ^bc.rzg.mpg.de$ ]] && echo "IPP-Garching" [[ "$1" =~ ^nakasvr17.naka.qst.go.jp ]] && echo "JT-60"
Creating site-config/Makefile.IPP-Garching.SLES-15
Code Block language bash theme Midnight Currently Loaded Modulefiles: 1) git/2.16 3) blitz/1.0.2 5) texlive/2018 7) intel/18.0.5 9) matlab/2017b 11) autoconf/2.69 13) cmake/3.13 2) saxon/9.9.1 4) doxygen/1.8 6) gcc/6 8) anaconda/3/2019.03 10) jdk/8 12) automake/1.15 14) pkg-config/0.29
Requires JAVA_HOME to be set so the Makefile can find JNI headers, and MATLAB for the mex interface (new since AL/4.3.x)
Code Block language bash theme Midnight make -j4 install TAG_DD=3.24.0 TAG_AL=4.2.0 JAVA_HOME=${JDK_HOME} IMAS_HOME=/afs/.ipp/tok/soft/imas MATLAB=/afs/ipp/common/soft/matlab_2017b
Warning Because the target install dir (/afs/.ipp/...) is not the final one (/afs/ipp/...) the generated module should be patched
Code Block language bash theme Midnight - set imas_home /afs/.ipp/tok/soft/imas + set imas_home /afs/ipp/tok/soft/imas
Same applies to pkg-config files.
IDStools
Warning Because the target install dir (/afs/.ipp/...) is not the final one (/afs/ipp/...) the generated module should be patched
FC2K
Installing ant from https://ant.apache.org/bindownload.cgi
Warning Install the latest 1.9.x version, and NOT the 1.10.x which seems to be not compatible with Kepler build!
- Installing somehow JaxFront Community Edition (from the Gateway or from https://www.jaxfront.org/pages/)
Warning Because the target install dir (/afs/.ipp/...) is not the final one (/afs/ipp/...) the generated module should be patched
XMLlib
Warning Because the target install dir (/afs/.ipp/...) is not the final one (/afs/ipp/...) the pkg-config files should be patched
GGD
Warning Because the target install dir (/afs/.ipp/...) is not the final one (/afs/ipp/...) the pkg-config files should be patched
Kepler
Installing ant from https://ant.apache.org/bindownload.cgi
Warning Install the latest 1.9.x version, and NOT the 1.10.x which seems to be not compatible with Kepler build!
- Installing maven from http://apache.mirror.iphh.net/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
Install based on IMAS_HOME, as set by IMAS module, so on TOK cluster it needs to be redirected to the writeable partition
Code Block language bash theme Midnight make install IMAS_HOME=/afs/.ipp/tok/soft/imas
Warning Because the target install dir (/afs/.ipp/...) is not the final one (/afs/ipp/...) the generated module should be patched for both kepler and keplertools