[cig-commits] r19232 - in seismo/3D/SPECFEM3D_GLOBE/trunk: doc/USER_MANUAL setup src/shared src/specfem3D
dkomati1 at geodynamics.org
dkomati1 at geodynamics.org
Mon Nov 21 15:32:16 PST 2011
Author: dkomati1
Date: 2011-11-21 15:32:16 -0800 (Mon, 21 Nov 2011)
New Revision: 19232
Modified:
seismo/3D/SPECFEM3D_GLOBE/trunk/doc/USER_MANUAL/manual_SPECFEM3D_GLOBE.pdf
seismo/3D/SPECFEM3D_GLOBE/trunk/doc/USER_MANUAL/manual_SPECFEM3D_GLOBE.tex
seismo/3D/SPECFEM3D_GLOBE/trunk/setup/constants.h.in
seismo/3D/SPECFEM3D_GLOBE/trunk/src/shared/read_compute_parameters.f90
seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/specfem3D.F90
Log:
added flag DO_BENCHMARK_RUN_ONLY
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/doc/USER_MANUAL/manual_SPECFEM3D_GLOBE.pdf
===================================================================
(Binary files differ)
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/doc/USER_MANUAL/manual_SPECFEM3D_GLOBE.tex
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/doc/USER_MANUAL/manual_SPECFEM3D_GLOBE.tex 2011-11-21 23:21:53 UTC (rev 19231)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/doc/USER_MANUAL/manual_SPECFEM3D_GLOBE.tex 2011-11-21 23:32:16 UTC (rev 19232)
@@ -351,6 +351,9 @@
message (for instance \texttt{``relocation truncated to fit: R\_X86\_64\_PC32 against .bss''} or something similar);
on an IBM machine with the \texttt{xlf} and \texttt{xlc} compilers, using \texttt{-q64} is usually sufficient.\\
+If you run scaling benchmarks of the code, for instance to measure its performance on a new machine, and are not interested in the physical results
+(the seismograms) for these runs, you can set \texttt{DO\_BENCHMARK\_RUN\_ONLY} to \texttt{.true.} in file \texttt{setup/constants.h.in} before running the \texttt{configure} script.
+
Finally, before compiling, make sure that the subdirectories \texttt{obj},
\texttt{bak} and \texttt{OUTPUT\_FILES} exist within the directory
with the source code (\texttt{SPECFEM3D\_GLOBE\_V5.1.1}). The \texttt{go\_mesher}
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/setup/constants.h.in
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/setup/constants.h.in 2011-11-21 23:21:53 UTC (rev 19231)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/setup/constants.h.in 2011-11-21 23:32:16 UTC (rev 19232)
@@ -311,12 +311,17 @@
! can be useful for benchmarks of a spherical Earth with fictitious sources and stations
logical, parameter :: ASSUME_PERFECT_SPHERE = .false.
+! flags to do benchmark runs to measure scaling of the code
+! for a limited number of time steps only, setting the initial field to 1
+! to make sure gradual underflow trapping does not slow down the code
+ logical, parameter :: DO_BENCHMARK_RUN_ONLY = .false.
+ integer, parameter :: NSTEP_FOR_BENCHMARK = 300
!------------------------------------------------------
!----------- do not modify anything below -------------
!------------------------------------------------------
-! on some processors (e.g. Pentiums) it is necessary to suppress underflows
+! on some processors (e.g. some Intel chips) it is necessary to suppress underflows
! by using a small initial field instead of zero
logical, parameter :: FIX_UNDERFLOW_PROBLEM = .true.
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/shared/read_compute_parameters.f90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/shared/read_compute_parameters.f90 2011-11-21 23:21:53 UTC (rev 19231)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/shared/read_compute_parameters.f90 2011-11-21 23:32:16 UTC (rev 19232)
@@ -225,15 +225,16 @@
! compute total number of time steps, rounded to next multiple of 100
NSTEP = 100 * (int(RECORD_LENGTH_IN_MINUTES * 60.d0 / (100.d0*DT)) + 1)
+! if doing benchmark runs to measure scaling of the code for a limited number of time steps only
+ if (DO_BENCHMARK_RUN_ONLY) NSTEP = NSTEP_FOR_BENCHMARK
+
!<YANGL
if ( NOISE_TOMOGRAPHY /= 0 ) NSTEP = 2*NSTEP-1 ! time steps needs to be doubled, due to +/- branches
!>YANGL
! subsets used to save seismograms must not be larger than the whole time series,
! otherwise we waste memory
- if(NTSTEP_BETWEEN_OUTPUT_SEISMOS > NSTEP) then
- NTSTEP_BETWEEN_OUTPUT_SEISMOS = NSTEP
- endif
+ if(NTSTEP_BETWEEN_OUTPUT_SEISMOS > NSTEP) NTSTEP_BETWEEN_OUTPUT_SEISMOS = NSTEP
! computes a default hdur_movie that creates nice looking movies.
! Sets HDUR_MOVIE as the minimum period the mesh can resolve
Modified: seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/specfem3D.F90
===================================================================
--- seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/specfem3D.F90 2011-11-21 23:21:53 UTC (rev 19231)
+++ seismo/3D/SPECFEM3D_GLOBE/trunk/src/specfem3D/specfem3D.F90 2011-11-21 23:32:16 UTC (rev 19232)
@@ -1778,6 +1778,22 @@
displ_inner_core(:,:) = VERYSMALLVAL
endif
+! if doing benchmark runs to measure scaling of the code,
+! set the initial field to 1 to make sure gradual underflow trapping does not slow down the code
+ if (DO_BENCHMARK_RUN_ONLY) then
+ displ_crust_mantle(:,:) = 1._CUSTOM_REAL
+ veloc_crust_mantle(:,:) = 1._CUSTOM_REAL
+ accel_crust_mantle(:,:) = 1._CUSTOM_REAL
+
+ displ_outer_core(:) = 1._CUSTOM_REAL
+ veloc_outer_core(:) = 1._CUSTOM_REAL
+ accel_outer_core(:) = 1._CUSTOM_REAL
+
+ displ_inner_core(:,:) = 1._CUSTOM_REAL
+ veloc_inner_core(:,:) = 1._CUSTOM_REAL
+ accel_inner_core(:,:) = 1._CUSTOM_REAL
+ endif
+
if (SIMULATION_TYPE == 3) then
rho_kl_crust_mantle(:,:,:,:) = 0._CUSTOM_REAL
beta_kl_crust_mantle(:,:,:,:) = 0._CUSTOM_REAL
More information about the CIG-COMMITS
mailing list