Versions Compared

Key

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

...

Now that you have compiled the MITgcm and copied the executable to the run directory, you can start a MITgcm simulation.  We will look at the filefiles contained in each of the Hg, PFOS, and PCB simulation run directories.

Run directory files

In the global_hg_llc90/run, pfos/run, and pcb/run directory, you will find several sample scripts that you can use to run MITgcm jobs. 

...

Code Block
#!/bin/bash 
#SBATCH -n 13
#SBATCH -N 1
#SBATCH -t 60
#SBATCH -p regal
#SBATCH --mem-per-cpu=3750
#SBATCH --mail-type=ALL 
#EOC
#------------------------------------------------------------------------------
#              Harvard Biogeochemistry of Global Pollutants Group             !
#------------------------------------------------------------------------------
#BOP
#
# !IROUTINE: run.mitgcm.13np.debug
#
# !DESCRIPTION: Script to run a debug MITgcm simulation with 13 CPUs.
#\\
#\\
# !CALLING SEQUENCE:
#  sbatch run.mitgcm.13np.debug       # To submit a batch job
#  ./run.mitgcm.hg.13np.debug         # To run in an interactive session
#
# !REMARKS:
#  Consider requesting an entire node (-N 6416 -n 1), which will prevent
#  outside jobs from slowing down your simulation.
#
#  Also note: Make your timestep edits in "data.debug_run", which will
#  automatically be copied to "data" by this script.
#
# !REVISION HISTORY:
#  17 Feb 2015 - R. Yantosca - Initial version
#EOP
#------------------------------------------------------------------------------
#BOC

# Make sure we apply the .bashrc_mitgcm settings
source ~/.bashrc_mitgcm

# Copy run-time parameter input files for the 13 CPU run
cp -f data.debug_run   data
cp -f data.exch2.13np  data.exch2

# Remove old output files
rm -f STDOUT.*
rm -f STDERR.*
rm -f PTRACER*

# Run MITgcm with 13 CPUs
time -p ( mpirun -np 13  ./mitgcmuv )
exit 0
#EOC

 

The run.mitgcm.96np.debug 20yr is similar except for the fact that it requests SLURM to give it more CPUs and a longer amount of run time:

Code Block
#!/bin/bash 
#SBATCH -n 12896
#SBATCH -N 26
#SBATCH -t 601-00:00
#SBATCH -p regal
#SBATCH --mem-per-cpu=3750
#SBATCH --mail-type=ALL 

#EOC
#------------------------------------------------------------------------------
#              Harvard Biogeochemistry   GEOS-Chemof Global Chemical Transport Model     Pollutants Group             !
#------------------------------------------------------------------------------
#BOP
#
# !IROUTINEMODULE: run.mitgcm.96np.debug20yr
#
# !DESCRIPTION: Script to runsubmit a debug long (e.g. 20 yr) MITgcm simulation Hg
# simulation withusing 96 CPUs.
#\\
#\\
# !CALLING SEQUENCE:
#  sbatch run.mitgcm.96np.debug20yr    # To submit a batch job
#
# !REMARKS:
#  Consider requesting 26 entire nodes (-n 12896 -N 26), which will prevent
#  outside jobs from slowing down your simulation.
#
#  Also note: Make your timestep edits in "data.debug20yr_run", which will
#  automatically be copied to "data" by this script.
#
# !REVISION HISTORY:
#  17 Feb 2015 - R. Yantosca - Initial version
#EOP
#------------------------------------------------------------------------------
#BOC

# Make sure we apply the .bashrc_mitgcm settings
source ~/.bashrc_mitgcm

# Copy run-time parameter input files for the 96 CPU run
cp -f data.debug.20yr_run    data
cp -f data.exch2.96np  data.exch2

# Remove old output files
rm -f STDOUT.*
rm -f STDERR.*
rm -f PTRACER.*

# Run MITgcm with 96 CPUs
time -p ( mpirun -np 96  ./mitgcmuv )
exit 0
#EOC

...

  1. Gets the proper compiler and library settings from your ~/.bashrc_mitgcm file.

  2. Reserves CPUs for the MITgcm run.

    • NOTE: For MITgcm production runs, we recommend that you request 128 96 CPUs (i.e. 2 6 entire nodes) even though the MITgcm only uses 96.  This will reserve both all nodes exclusively for your MITgcm simulation, and will prevent other Odyssey jobs from running on the same node and competing for resources.

  3. Creates the proper data file for your simulation from a template.  This file contains basic information for the simulation, including

    • The number of timesteps for the simulation to run;
    • How frequently diagnostics are saved to disk (i.e. dumpFreq);
    • How frequenlty statistics are written to the log file (i.e. monitorFreq)

  4. Creates the proper data.exch file for your simulation from a template.

    • The data.exch file, which is described below, contains information about the tiles used for the horizontal grid specification.

  5. Runs the MITgcm simulation and prints the user, cpu, and system time in seconds.

...

ParameterUnitsDescription
nIter01

Index of the first iteration.  If these variables are set to nonzero values, the model will look for a ''pickup'' file pickup.0000nIter0 to restart the integration.

nTimeSteps1Number of time steps that you want the MITgcm simulation to run.

deltaTClock

sThe model ''clock'' timestep.  This determines the IO frequencies and is used in tagging output.
deltaTmomsTimestep for momentum equations.  This can be set to the same value as deltaTclock.
deltaTtracersTimestep for tracer equations.  This can be set to the same value as deltaTclock.
deltaTfreesurf
sTimestep for free surface equations.  This can be set to the same value as deltaTclock.

pChkptFreq

s

Control the output frequency (in seconds) of permanent checkpoint files.  See MITgcm manual section 1.5.1.

chkptFreq

sControl the output frequency (in seconds) of rolling checkpoint files.  See MITgcm manual section 1.5.1.
taveFreqs

Controls the frequency (in seconds) of saving time-averaged diagnostic quantities.

dumpFreqsControls the frequency (in seconds) with which the instantaneous state of the model is saved.
monitorFreqs

Sets the the interval between diagnostics written out to the text stdout stream (i.e. to the terminal or the files STDOUT.*). It supplies statistics on model variables (max,mean,etc.) and also checks the CFL values. It can be quite expensive and so should not be done every time-step but perhaps every 10-50 timesteps.

   

data.debug_run

The data.debug_run file is used to submit a 10-hour MITgcm simulation.  The time stepping settings are as follows.

...

As you can see, we set the basic timestep (deltaTclock) to 3600 seconds = 1 hour, and then run for 10 timesteps = 10 hours total.  Diagnostics (taveFreq, dumpFreq, monitorFreq) are saved out at the end of the run (after 360000 seconds). 

data.

...

1month_

...

run

This file is s&PARM03 nIter0 = 1 , nTimeSteps = 744 ,# contains the proper time settings to submit a 1-month MITgcm simulation:

Code Block
  &PARM03 
 nIter0 = 1 ,
 nTimeSteps = 744 ,
# 
 forcing_In_AB = .FALSE. ,
 momDissip_In_AB = .FALSE. ,
# 
#when using the cd scheme: 
#epsAB_CD = 0.25 ,
#tauCD = 172800.0, ,

...


#
# Set 1-hour

...

 timesteps
#
 deltaTmom = 3600. ,
 deltaTtracer = 3600. ,
 deltaTfreesurf = 3600. ,
 deltaTClock = 3600. ,
# 
#when using ab2: 
#abEps = 0.1 ,
# 
#when using ab3: 
 doAB_onGtGs = .FALSE. ,
 alph_AB = 0.5 ,
 beta_AB = 0.281105 ,

...


#
# Time averaging and

...

 dumping parameters
# 
 pChkptFreq = 315576000.0 ,
 chkptFreq = 315576000.0 ,
 taveFreq = 360000.0 ,
 dumpFreq = 360000.0 ,
 monitorFreq = 360000.0 ,
 dumpInitAndLast = .TRUE. ,
 adjDumpFreq = 3155760000.0 ,
 adjMonitorFreq = 360000.0 ,
 pickupStrictlyMatch = .FALSE. ,
# pickupSuff ='0000166548' , 
/

This will run the MITgcm for 744 1-hour timesteps, or 1 month of simulation.  We archive diagnostics (taveFreq, dumpFreq, monitorFreq) every 10 timesteps.

data.20yr_run

This file contains the proper time stepping parameters to schedule a long 20-year MITgcm simulation.

Code Block
  &PARM03   nIter0  = 1 ,  nTimeSteps = 744 , #   forcing_In_AB  = .FALSE. ,  momDissip_In_AB = .FALSE. , #  #when using the cd scheme:  #epsAB_CD = 0.25 ,
#tauCD =nIter0 172800.0, , # # Set 1-hour timesteps #  deltaTmom = 3600. ,  deltaTtracer = 3600. ,  deltaTfreesurf = 3600.1 ,  deltaTClock = 3600. , #  #when using ab2:  #abEps = 0.1 , #  #when using ab3:   doAB_onGtGs = .FALSE. ,   alph_AB = 0.5 ,  beta_AB = 0.281105 , # # Time averaging and dumping parameters #,
 nTimeSteps pChkptFreq = 315576000.0 ,  chkptFreq = 315576000.0 ,  taveFreq = 360000.0 ,  dumpFreq = 360000.0 ,175332       monitorFreq = 360000.0 ,  dumpInitAndLast = .TRUE. ,  adjDumpFreq = 3155760000.0 ,  adjMonitorFreq = 360000.0 ,  pickupStrictlyMatch = .FALSE. , # pickupSuff ='0000166548' , 
/

 

 

 

Debug run

To submit a debugging run (on 13 CPUs), type the following commands:

Code Block
#### To run a debug Hg simulation ###
cd MITgcm_code/       ,
#                             # Switch to main code directory setcpus 13 hg    
 forcing_In_AB              = .FALSE.      # Pcks the proper SIZE.h and data.exch2 file for 13 CPUs cd verification/global_hg_llc90/run     # Change to the Hg run directory sbatch run.mitgcm.13np.1month         ,
 #momDissip_In_AB Submit the run to SLURM  #### To run a debug PFOS= simulation.FALSE. ### cd MITgcm_code/                         # Switch to main code directory setcpus 13 pfos    ,
#                    # Picks the proper SIZE.h and data.exch2 file for 13 CPUs cd verification/pfos/run          
#when using the cd scheme: # Change to the Hg run directory sbatch run.mitgcm.13np.1month           # Submit the run to SLURM  #### To run a debug PCB simulation ###
cd MITgcm_code/  
#epsAB_CD                   = 0.25                    # Switch to main code directory setcpus 13 pcb               ,
#tauCD          # Picks the proper SIZE.h and data.exch2 file for 13 CPUs cd verification/pfos/run = 172800.0,               # Change to the Hg run directory sbatch run.mitgcm.13np.1month           # Submit the run to SLURM

 

1-month run

Hello

20 year run

Hello

...

,
#
# Set 1-hour timesteps
#
 deltaTmom                  = 3600.                                          ,
 deltaTtracer               = 3600.                                          ,
 deltaTfreesurf             = 3600.                                          ,
 deltaTClock                = 3600.                                          ,
#                                         
#when using ab2:                                 
#abEps                      = 0.1                                            ,
#                                         
#when using ab3:                                 
 doAB_onGtGs                = .FALSE.                                        ,
 alph_AB                    = 0.5                                            ,
 beta_AB                    = 0.281105                                       ,
#
# Time averaging and dumping parameters
#                                         
 pChkptFreq                 = 315576000.0                                    ,
 chkptFreq                  = 315576000.0                                    ,
 taveFreq                   = 31557600.0                                     ,
 dumpFreq                   = 3155760000.0                                   ,
 monitorFreq                = 864000.0                                       ,
 dumpInitAndLast            = .TRUE.                                         ,
 adjDumpFreq                = 3155760000.0                                   ,
 adjMonitorFreq             = 360000.0                                       ,
 pickupStrictlyMatch        = .FALSE.                                        ,
# pickupSuff                ='0000166548'                                    ,  
/                        

This will run MITgcm for 175332 hours = 20 years.  Diagnostic files will be written to disk once per year (315576000 seconds) and statistics will be printed to the screen every 10 days (864000 seconds).

If you need to run MITgcm for a different amount of time, we recommend that you copy one of the existing data* files and edit the time stepping parameters accordingly.

Submitting a MITgcm simulation

10-hour debug run

To submit a 10-hour debugging run (on 13 CPUs), type the following commands:

Code Block
#### 10-hr debug Hg simulation ####
cd MITgcm_code/                         # Switch to main code directory
cd verification/global_hg_llc90/run     # Change to the Hg run directory
sbatch run.mitgcm.13np.1month           # Sets the proper data and data.exch files; submits job

#### 10-hr debug PFOS simulation ####
cd MITgcm_code/                         # Switch to main code directory
cd verification/pfos/run                # Change to the PFOS run directory
sbatch run.mitgcm.13np.1month           # Sets the proper data and data.exch files; submits job

#### 10-hr debug PCB simulation ####
cd MITgcm_code/                         # Switch to main code directory
cd verification/pfos/run                # Change to the PCB run directory
sbatch run.mitgcm.13np.1month           # Sets the proper data and data.exch files; submits job

1-month run

To submit a 1-month MITgcm run (on 13 CPUs), type the following commands:

Code Block
#### 1-month Hg simulation ###
cd MITgcm_code/                         # Switch to main code directory
cd verification/global_hg_llc90/run     # Change to the Hg run directory
sbatch run.mitgcm.13np.1month           # Sets the proper data and data.exch files; submits job

#### 1-month PFOS simulation ###
cd MITgcm_code/                         # Switch to main code directory
cd verification/pfos/run                # Change to the PFOS run directory
sbatch run.mitgcm.13np.1month           # Sets the proper data and data.exch files; submits job

#### 1-month PCB simulation ###
cd MITgcm_code/                         # Switch to main code directory
cd verification/pfos/run                # Change to the PCB run directory
sbatch run.mitgcm.13np.1month           # Sets the proper data and data.exch files; submits job

20-year run

To submit a 20-year MITgcm simulation (on 96 CPUs), type the following commands:

Code Block
#### To run a debug Hg simulation ###
cd MITgcm_code/                         # Switch to main code directory
cd verification/global_hg_llc90/run     # Change to the Hg run directory
sbatch run.mitgcm.13np.1month           # Sets the proper data and data.exch files; submits job

#### To run a debug PFOS simulation ###
cd MITgcm_code/                         # Switch to main code directory
cd verification/pfos/run                # Change to the PFOS run directory
sbatch run.mitgcm.13np.1month           # Sets the proper data and data.exch files; submits job

#### To run a debug PCB simulation ###
cd MITgcm_code/                         # Switch to main code directory
cd verification/pcb/run                 # Change to the PCB run directory
sbatch run.mitgcm.96np.20yr             # Sets the proper data and data.exch files; submits job

Runs for other lengths of time

To run a MITgcm simulation for a different length of time:

Code Block
cp data.20yr_run         data.myrun              # Copy an existing data template file to a new file
cp run.mitgcm.96np.20yr  run.mitgcm.96np.myrun   # Copy an existing run.mitgcm* file to a new file

Then in data.myrun, you can change the time stepping parameters (number of timesteps and frequency of diagnostic output) accordingly. 

Lastly, in the new run file run.mitgcm.96np.myrun, change this line:

Code Block
Change this line from:
cp -f data.20yr_run    data

To:
cp -f data.myrun       data

and if necessary, also increase the amount of run time that you are requesting (e.g.the #SBATCH -t setting).

Then submit the job to the queue:

Code Block
sbatch run.mitgcm.96np.myrun

Previous | Up | Next