...
...
While this page focuses on the containerised installation, the details presented can be used as a recipe for the underlying dependencies required to install and run OpenIFS 48r1 on a linux system.
Note |
---|
If you have access to the ECMWF HPCF (ATOS hpc2020) and are planning to run OpenIFS on that system please refer to OpenIFS 48r1 User Guide. |
Contents:
Table of Contents |
---|
Creation of a docker build directory
The first step is to make a directory from which the OpenIFS container can be created and cd
into that directory, e.g.
Code Block | ||||
---|---|---|---|---|
| ||||
mkdir <openifs-docker-build-dir>
cd <openifs-docker-build-dir> |
...
...
...
...
...
...
Note |
---|
|
...
...
...
...
...
This cp
step is important because the Dockerfile
and the OpenIFS release, i.e., openifs-48r1.1
, need to be in the same directory to build the container (see the openifs-48r1.1/scripts/docker/gcc-docker-48r1.1/Dockerfile
)
Build the OpenIFS docker image
The following command builds the docker image
...
...
...
Note the trailing '.' to build in the current dir, which is required.
This command runs the build process for the OpenIFS image using gcc:11.2.0-bullseye as the base image, which is a debian Linux distribution with gcc 11.2 (at the time of writing, similar to the gcc on the ATOS). After downloading the image, the Dockerfile
installs the following software
...
language | bash |
---|---|
title | Software requirements for OpenIFS installation |
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
Once these repository packages and the python librarie are installed, open-mpi
is downloaded and built. Then the openifs
user is created and the openifs-48r1.1
directory is copied to the image.
On a Macbook pro (M1) the initial build of the container, takes about 5 minutes. If you decide to change the Dockerfile
following a build, you can just execute the same command and, depending on what you change, subsequent builds can be a lot quicker.
Note | |||||||
---|---|---|---|---|---|---|---|
|
Running OpenIFS-test using the docker image
Once a build has completed, the image can be checked by typing docker images
, e.g.,
Code Block | ||||
---|---|---|---|---|
| ||||
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
openifs-48r1.1 latest f72ea92f010f 5 hours ago 2.15GB |
And the container can be run using the following
Code Block | ||||
---|---|---|---|---|
| ||||
docker run -it 'openifs-48r1.1' |
This command will open an interactive session in the new container, in which the entry directory is the openifs-48r1.1 directory, e.g.
...
language | bash |
---|---|
theme | Midnight |
...
...
Note |
---|
|
Once inside the container, the openifs-test.sh
script can be run, e.g.,
Code Block | ||||
---|---|---|---|---|
| ||||
openifs@d1bd89ccc47f:~/openifs-48r1.1$ $OIFS_TEST/openifs-test.sh -cbt --arch="" |
where :
-c
creates source
directory in $OIFS_HOME
, which is used to bring all the sources, e.g. ifs-source, ifs-test and any packages in the bundle (ecbuild, eccodes etc.), together in preparation for the build
-b
builds the source. This step creates the directory build
in $OIFS_HOME
, which is used to build and store
- the OpenIFS double and single precision master executables (ifsMASTER.DP and ifsMASTER.SP, respectively) , which are used to run 3-D OpenIFS. The executables are located in
$OIFS_HOME/build/bin
.- The location and name of the executable for OpenIFS is defined in the platform configuration file (oifs-config.edit_me.sh) as
$OIFS_EXEC
.
- The location and name of the executable for OpenIFS is defined in the platform configuration file (oifs-config.edit_me.sh) as
- the double and single precision Single Column Model (SCM) executables (MASTER_scm.DP and MASTER_scm.SP, respectively), which are used to run the SCM derived from OpenIFS. The executables are located in
$OIFS_HOME/build/bin
.- The location and name of the executable for the SCM is defined in the platform configuration file (oifs-config.edit_me.sh) as
$SCM_EXEC
.
- The location and name of the executable for the SCM is defined in the platform configuration file (oifs-config.edit_me.sh) as
-t
will run the ifs-test t21 tests, which comprise of
...
...
...
...