654.roms_s
ROMS is written and maintained by "The ROMS/TOMS Group", which is described as:
ROMS is a Regional Ocean Modeling System
ROMS is a free-surface, hydrostatic, primitive equation model discretized with a terrain-following vertical coordinate system. It is coded in parallel for multi-threaded and multi-process architectures and has been widely applied in many applications from planetary scales down to the scales of estuarine environments. Forecasts include predictions of water temperature, ocean currents, salinity, and sea surface height.
554.ROMS is based on ROMS/TOMS version 3.2 SVN Revision: 405M except some code from ROMS (573) to solve a race condition.
ROMS usually requires NETCDF, but the BENCHMARK dataset used will make no calls to NETCDF so the port to SPEC includes a few NETCDF constants being defined but does NOT require the NETCDF code to be present.
654.roms_s uses the generic BENCHMARK data set.
TITLE = Benchmark Test, Idealized Southern Ocean, Small Grid
The files used are:
varinfo.dat Used by all tests
ocean_benchmarkN.in.x where N=[0123] representing test, train, refrate, and refspeed.
The ocean_benchmarkN.in.x files are read from stdin. They are preprocessed for the OpenMP threaded version to find an optimal and legal set of values for tiling of the I and J dimensions, resulting in files ocean_benchmarkN.in
To create larger or smaller datasets the following parameters in the ocean_benchmarkN.in.x files can be used for this (values shown for test case):
Lm == 512 ! Number of I-direction INTERIOR RHO-points Mm == 64 ! Number of J-direction INTERIOR RHO-points N == 30 ! Number of vertical levels NTIMES == 5 ! Total number time-steps in current run.
The 3 first parameters will impact both size (memory) and time spent, the last one only time.
The SPEC-supplied test and train workloads use the Lm, Mm, and N values shown above; they differ only in NTIMES (total number of time steps), with 5 steps done by test and 200 by train. Both use on the order of 270 MiB of memory on a Linux system tested by SPEC.
For the refrate workload (which is used by the rate version), these values are used, and memory increases to about 850 MiB on the same Linux system:
Lm == 1024 ! Number of I-direction INTERIOR RHO-points Mm == 128 ! Number of J-direction INTERIOR RHO-points N == 24 ! Number of vertical levels NTIMES == 150 ! Total number time-steps in current run.
The refspeed workload (for the speed version of the benchmark) uses about 13.7 GiB on the tested system, and has these values:
Lm == 2048 ! Number of I-direction INTERIOR RHO-points Mm == 512 ! Number of J-direction INTERIOR RHO-points N == 40 ! Number of vertical levels NTIMES == 100 ! Total number time-steps in current run.
After each time step, various calculated energies and volume are printed and validated against a SPEC-supplied set of expected answers. Note that all of the values printed in the table after each step are calculated. The fact that 3 of the 4 values printed are the same on each step is an expected behavior.
The output is written to stdout, which is redirected to:
ocean_benchmarkN.log where N is again 0, 1, 2, or 3.
Fortran 2003
OpenMP only
None
The benchmark is based on ROMS 3.2, under the ROMS license.
Please see details in the document SPEC CPU®2017 Licenses.
Last updated: $Date: 2020-08-19 18:52:31 -0400 (Wed, 19 Aug 2020) $
Copyright © 2017-2019 Standard Performance Evaluation Corporation (SPEC®)