[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