[Dart-dev] [7654] DART/trunk/models/bgrid_solo: Fixing a run-time error when using MPI .

nancy at ucar.edu nancy at ucar.edu
Wed Mar 4 21:55:23 MST 2015


Revision: 7654
Author:   thoar
Date:     2015-03-04 21:55:22 -0700 (Wed, 04 Mar 2015)
Log Message:
-----------
Fixing a run-time error when using MPI. Does not affect single-threaded uses.
The quickbuild.csh script had a big comment block that was a copy-paste error
from workshop_setup.csh (from the dawn of time).
The run_filter.csh script has the BSUB directives required to run on yellowstone.

Modified Paths:
--------------
    DART/trunk/models/bgrid_solo/model_mod.f90
    DART/trunk/models/bgrid_solo/shell_scripts/run_filter.csh
    DART/trunk/models/bgrid_solo/work/quickbuild.csh

-------------- next part --------------
Modified: DART/trunk/models/bgrid_solo/model_mod.f90
===================================================================
--- DART/trunk/models/bgrid_solo/model_mod.f90	2015-03-05 04:20:36 UTC (rev 7653)
+++ DART/trunk/models/bgrid_solo/model_mod.f90	2015-03-05 04:55:22 UTC (rev 7654)
@@ -69,7 +69,7 @@
 use        utilities_mod, only : open_file, error_handler, E_ERR, E_MSG, &
                                  nmlfileunit, register_module, &
                                  find_namelist_in_file, check_namelist_read, &
-                                 do_nml_file, do_nml_term
+                                 do_nml_file, do_nml_term, do_output
 
 use          obs_kind_mod, only: KIND_U_WIND_COMPONENT, KIND_V_WIND_COMPONENT, &
                                  KIND_SURFACE_PRESSURE, KIND_TEMPERATURE
@@ -534,8 +534,8 @@
 !----- write version and namelist to log file -----
 
    call write_version_number ( version, tag )
-   write (stdlog(),    nml=atmosphere_nml)
-   write (nmlfileunit, nml=atmosphere_nml)
+   if (do_nml_file()) write (stdlog(),    nml=atmosphere_nml)
+   if (do_nml_term()) write (nmlfileunit, nml=atmosphere_nml)
 
 !---- compute physics/atmos time step in seconds ----
 
@@ -578,7 +578,7 @@
 model_size = model_size + (1 + num_levels) * t_horiz_size
 ! Tracers for size
 model_size = model_size + global_Var%ntrace * num_levels * t_horiz_size
-write(*, *) 'model_size ', model_size
+if (do_output()) write(*, *) 'model_size ', model_size
 
 ! Also static store the number of levels, ntracers, and prognostic tracers
 ntracers = global_Var%ntrace

Modified: DART/trunk/models/bgrid_solo/shell_scripts/run_filter.csh
===================================================================
--- DART/trunk/models/bgrid_solo/shell_scripts/run_filter.csh	2015-03-05 04:20:36 UTC (rev 7653)
+++ DART/trunk/models/bgrid_solo/shell_scripts/run_filter.csh	2015-03-05 04:55:22 UTC (rev 7654)
@@ -17,32 +17,33 @@
 #
 #=============================================================================
 # This block of directives constitutes the preamble for the LSF queuing system
-# LSF is used on the IBM   Linux cluster 'lightning'
-# LSF is used on the IMAGe Linux cluster 'coral'
-# LSF is used on the IBM   'bluevista'
-# The queues on lightning and bluevista are supposed to be similar.
 #
 # the normal way to submit to the queue is:    bsub < run_filter.csh
 #
 # an explanation of the most common directives follows:
-# -J Job name (master script job.csh presumes filter_server.xxxx.log)
+# -J Job name
 # -o STDOUT filename
 # -e STDERR filename
 # -P      account
-# -q queue    cheapest == [standby, economy, (regular,debug), premium] == $$$$
+# -q queue    cheapest == [economy, regular, premium] == $$$$
 # -n number of processors  (really)
 # -W hh:mm  max execution time (required on some platforms)
+#
+# The bgrid_solo default ensemble size is 20. This script is just an example
+# to show how to use 20 processors - but only 10 processors per node. this
+# example consequently uses two nodes (so you get charged for all 32 processors)
 ##=============================================================================
 #BSUB -J filter
 #BSUB -o filter.%J.log
-#BSUB -q economy
-#BSUB -n 6
+#BSUB -N -u ${USER}@ucar.edu
+#BSUB -q premium
 #BSUB -W 0:30
+#BSUB -P NIMG0002
+#BSUB -n 16
+#BSUB -R "span[ptile=16]"
 #
 #=============================================================================
 # This block of directives constitutes the preamble for the PBS queuing system
-# PBS is used on the CGD   Linux cluster 'bangkok'
-# PBS is used on the CGD   Linux cluster 'calgary'
 # 
 # the normal way to submit to the queue is:    qsub run_filter.csh
 # 
@@ -52,10 +53,7 @@
 # -e <arg>  filename for standard error
 # -o <arg>  filename for standard out 
 # -q <arg>   Queue name (small, medium, long, verylong)
-# -l nodes=xx:ppn=2   requests BOTH processors on the node. On both bangkok 
-#                     and calgary, there is no way to 'share' the processors
-#                     on the node with another job, so you might as well use
-#                     them both.  (ppn == Processors Per Node)
+# -l nodes=xx:ppn=2   requests TWO processors on the node.
 ##=============================================================================
 #PBS -N filter
 #PBS -r n

Modified: DART/trunk/models/bgrid_solo/work/quickbuild.csh
===================================================================
--- DART/trunk/models/bgrid_solo/work/quickbuild.csh	2015-03-05 04:20:36 UTC (rev 7653)
+++ DART/trunk/models/bgrid_solo/work/quickbuild.csh	2015-03-05 04:55:22 UTC (rev 7654)
@@ -7,37 +7,6 @@
 # DART $Id$
 #
 # Script to manage the compilation of all components for this model;
-# executes a known "perfect model" experiment using an existing
-# observation sequence file (obs_seq.in) and initial conditions appropriate 
-# for both 'perfect_model_obs' (perfect_ics) and 'filter' (filter_ics).
-# There are enough initial conditions for 80 ensemble members in filter.
-# Use ens_size = 81 and it WILL bomb. Guaranteed.
-# The 'input.nml' file controls all facets of this execution.
-#
-# 'create_obs_sequence' and 'create_fixed_network_sequence' were used to
-# create the observation sequence file 'obs_seq.in' - this defines 
-# what/where/when we want observations. This script does not run these 
-# programs - intentionally. 
-#
-# 'perfect_model_obs' results in a True_State.nc file that contains 
-# the true state, and obs_seq.out - a file that contains the "observations"
-# that will be assimilated by 'filter'.
-#
-# 'filter' results in three files (at least): Prior_Diag.nc - the state 
-# of all ensemble members prior to the assimilation (i.e. the forecast), 
-# Posterior_Diag.nc - the state of all ensemble members after the 
-# assimilation (i.e. the analysis), and obs_seq.final - the ensemble 
-# members' estimate of what the observations should have been.
-#
-# Once 'perfect_model_obs' has advanced the model and harvested the 
-# observations for the assimilation experiment, 'filter' may be run 
-# over and over by simply changing the namelist parameters in input.nml.
-#
-# The result of each assimilation can be explored in model-space with
-# matlab scripts that directly read the netCDF output, or in observation-space.
-# 'obs_diag' is a program that will create observation-space diagnostics
-# for any result of 'filter' and results in a couple data files that can
-# be explored with yet more matlab scripts.
 
 #----------------------------------------------------------------------
 # 'preprocess' is a program that culls the appropriate sections of the
@@ -141,10 +110,10 @@
 
 echo
 echo 'time to run filter here:'
-echo ' for lsf run "bsub < runme_filter"'
-echo ' for pbs run "qsub runme_filter"'
-echo ' for lam-mpi run "lamboot" once, then "runme_filter"'
-echo ' for mpich run "mpd" once, then "runme_filter"'
+echo ' for lsf run "bsub < ../shell_scripts/run_filter.csh"'
+echo ' for pbs run "qsub   ../shell_scripts/run_filter.csh"'
+echo ' for lam-mpi run "lamboot" once, then "run_filter.csh"'
+echo ' for mpich run "mpd" once, then "run_filter.csh"'
 
 exit 0
 


More information about the Dart-dev mailing list