Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Serial : single task, single thread.

a) Build the model.

cd oifs/make and build the model using the optimized ('opt') build configuration. If you find these tests do not work with this configuration, use the 'noopt' configuration and then experiment by raising the optimization level.

b) cp oifs/t21test and edit the file 'job' to change the line beginning:

export GRIB_SAMPLES_PATH=...

to match the location of your grib_api installation.  The model will fail with an error if it cannot find the 'ifs_samples' directory in the grib_api installation.

Code Block
signal_drhook(SIGSYS=31): New handler installed at 0x4d06cf; old preserved at 0x0
MPL_BUFFER_METHOD:  2           0
GRIB_API ERROR   :  Unable to locate sample file gg_sfc_grib1.tmpl
                    in /home/rd/openifs/software/grib_api/1.9.18/grib_api-gcc-4.5.0/ifs_samples/grib1_mlgrib2
 GRIB_NEW_FROM_TEMPLATE gg_sfc_grib1 FAILED          -2

...

c) Copy the namelists and run the model with a single task and single thread by executing the job script:

Code Block
cp namelists fort.4
./job

The model will expect to find a file called fort.4 in the same directory as the executable. This script copies the executable from oifs/make/build/bin.

If the run works you will see output like this:

Code Block
...
signal_drhook(SIGSYS=31): New handler installed at 0x4d06cf; old
preserved at 0x0
MPL_BUFFER_METHOD:  2           0
   16:03:46 STEP    0 H=   0:00 +CPU=  3.598
   16:03:46 STEP    1 H=   0:10 +CPU=  0.535
   16:03:47 STEP    2 H=   0:20 +CPU=  0.537
   16:03:48 STEP    3 H=   0:30 +CPU=  0.537
   16:03:48 STEP    4 H=   0:40 +CPU=  0.527
   16:03:49 STEP    5 H=   0:50 +CPU=  0.526
   16:03:49 STEP    6 H=   1:00 +CPU=  0.530

This test runs only 6 timesteps.

The model writes its output to a several files. The NODE_

...

001.01 contains the text output (WRITE(6,*)). The numbers refer to task number and thread number. Only output from the master task & thread is normally output but this can be changed for debugging purposes.

If you see an error like this:

Code Block
mpirun noticed that job rank 0 with PID 7429 on node elvira exited on
signal 11 (Segmentation fault).

or

Code Block
MEMORY FAULT

it is most likely because OpenIFS requries more 'stack' memory than your default setting. Sometimes, this can happen when increasing the number of OpenMP threads.

To solve the problem add the line:

Code Block
ulimit -s unlimited

to the file job just before the mpirun line. This will increase the per-process stack memory limit to the maximum the operating system allows.

If the model still fails, contact openifs-support@ecmwf.int for assistance.

 

Parallel: 2 threads and 2 tasks

...