Benchmarks

From tm5
Jump to: navigation, search

Contents

Version 4 (base only)

We propose here to run the model for a month (January 2006) without any project.

You only need to checkout the base (see checking out the code):

  base/trunk

A subset of the meteo is also available if you do not have already access to them:

ec:/nm6/EMISSIONS/MISC/bench_v4_meteo_20130711_sfc.tar.gz
ec:/nm6/EMISSIONS/MISC/bench_v4_meteo_20130711_mfuvw.tar.gz
ec:/nm6/EMISSIONS/MISC/bench_v4_meteo_20130711_ml60.tar.gz

In your pycasso-machine.rc file, set the path to those met fields:

 my.meteo.dir :  /path/to/the/meteo/fields

A template rc file that ships with the code has all the settings for the benchmark. Get a copy into your top TM5 directory:

 svn export https://svn.knmi.nl/svn/TM5/base/trunk/rc/tm5_template_base.rc  bench_v4_base.rc

Keys to check in your copy:

 my.queue.account         : 
 my.queue.memoryload      : 
 my.machine.rc            :
 par.mpi       : T
 par.ntask     : 5
 par.openmp    : T
 par.nthread   : 4
 restart.write : F

and replace these lines:

 #if "${par.mpi}" in ["T","True"] :
 my.df.define   :  with_hdf4 with_hdf5_par with_netcdf4_par
 #else
 my.df.define   :  with_hdf4 with_hdf5 with_netcdf4
 #endif

with this line:

 my.df.define   :  with_hdf4 with_hdf5 with_netcdf4

Run

Simply build and submit:

 cd ~/TM5
 ./setup_tm5 -sq bench_v4_base.rc

In case of problems, switch the debug flag on and add the check-all flag to the compiler options:

  okdebug               : T
  go.print.all          : T
  
  my.build.configure.flags : optim-none check-all


Performance

Here is a table that report machines on which the benchmark successfully runs:

Site (Country) Machine Nb MPI cores Nb openMP threads Run time Modif. settings Remarks
ECMWF (UK) c2a (IBM power7, 3.83 GHz) 12 none -- - -
ECMWF (UK) c2a (IBM power7, 3.83 GHz) 12 4 -- - -
SARA (NL) cartesius (?) 999 none  ? min - -
YOU (UK) xyz (?) 999 none  ? min - -

The reference time is the "root timer" at the end of the log file of the run step. It should look like this:

 0:------------------------------------------  ------------ ---------
 0:timer                                       system_clock       (%)
 0:------------------------------------------  ------------ ---------
 0:
 0:root                                            28201.16


Version 4 (full chemistry)

We propose here to run the model for a month (January 2006) with the full chemistry project (incl. aerosols module M7). Other configurations are also possible as long as they rely on the trunk of the base.

Data sets

[1] A subset of the largest emissions inventories has been made available. You can find it at ECMWF:

ec:/nm6/EMISSIONS/MISC/bench_v4_chem_20130711.tar.gz

Once unpacked, set the correct paths in your TM5/base/trunk/rc/chem.input.rc file for the following keys (that is only the keys that refer to ${my.scratch}) :

 input.emis.dir.AR5   : ${my.scratch}/AR5
 input.emis.dir.ED41  : ${my.scratch}/EDGAR4
 input.emis.dir.gfed  : ${my.scratch}/GFED3
 input.emis.dir.MACC  : ${my.scratch}/MACC

Note that RETRO is not used for the benchmark. Do not commit any changes to this file. If really needed, make a copy first and include the new filename in your main rc file, i.e. replace:

 #include base/${my.branch}/rc/chem.input.rc


[2] You need a the TM56_input directory. It has photolysis data, aerosols input, land-sea mask, leaf area index, small emissions inventories, and more, needed for the chemistry. It also contains a set of restart and save files for initial conditions. It is available at ECMWF:

ec:/nm6/EMISSIONS/MISC/tm5_emiss_static_20130710.tar.gz

Unpack and then set in your machine.rc file:

 my.data.dir : /path/to/the/data/dir/TM56_input


[3] A subset of the meteo is also available if you do not have already access to them:

ec:/nm6/EMISSIONS/MISC/bench_v4_meteo_20130711_sfc.tar.gz
ec:/nm6/EMISSIONS/MISC/bench_v4_meteo_20130711_mfuvw.tar.gz
ec:/nm6/EMISSIONS/MISC/bench_v4_meteo_20130711_ml60.tar.gz

In your machine.rc file, set the path to those met fields:

 my.meteo.dir :  /path/to/the/meteo/fields


Code and RC files

You need to checkout (see checking out the code):

  base/trunk
  proj/user_output
  proj/budget
  proj/chem/base

A template rc file that ships with the code has all the settings for the benchmark. Get a copy into your top TM5 directory:

 svn export https://svn.knmi.nl/svn/TM5/base/trunk/rc/tm5_template_chem.rc bench_v4_chem.rc

Keys to check in your copy:

 my.queue.account         : 
 my.queue.memoryload      : 
 my.machine.rc            :
 par.mpi       : T
 par.ntask     : 12
 par.openmp    : T
 par.nthread   : 4
 restart.read.dir    :  /path/to/TM56_input/testdata_restart/
 start.31.glb300x200 :  /path/to/TM56_input/testdata_restart/m7_save_2007010100_glb300x200.hdf
 istart        : 31
 restart.write : F
 output.pdump  : F

and replace these lines:

 #if "${par.mpi}" in ["T","True"] :
 my.df.define   :  with_hdf4 with_hdf5_par with_netcdf4_par
 #else
 my.df.define   :  with_hdf4 with_hdf5 with_netcdf4
 #endif

with this line:

 my.df.define   :  with_hdf4 with_hdf5 with_netcdf4


Run

Simply build and submit:

 cd ~/TM5
 ./setup_tm5 -sq bench_v4_chem.rc

In case of problems, switch the debug flag on and add the check-all flag to the compiler options:

  okdebug               : T
  go.print.all          : T
  
  my.build.configure.flags : optim-none check-all


Performance

Here is a table that report machines on which the benchmark successfully runs:

Site (Country) Machine Nb MPI cores Nb openMP threads Run time Modif. settings Remarks
ECMWF (UK) c2a (IBM power7, 3.83 GHz) 12 none 7h 50m - -
ECMWF (UK) c2a (IBM power7, 3.83 GHz) 12 4 4h 41m - -
SARA (NL) cartesius (?) 999 none  ? min - -
YOU (UK) xyz (?) 999 none  ? min - -

The reference time is the "root timer" at the end of the log file of the run step. It should look like this:

 0:------------------------------------------  ------------ ---------
 0:timer                                       system_clock       (%)
 0:------------------------------------------  ------------ ---------
 0:
 0:root                                            28201.16
Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox