[cig-commits] [commit] devel: improves minimum required gpu memory estimate (0144ed2)
cig_noreply at geodynamics.org
cig_noreply at geodynamics.org
Tue Nov 25 06:56:12 PST 2014
Repository : https://github.com/geodynamics/specfem3d_globe
On branch : devel
Link : https://github.com/geodynamics/specfem3d_globe/compare/0e5b55c6f30be94583639fd325373eecd6facc6d...8be3e0b0267c8d4cf5af3bc26e8903da17bc4fd1
>---------------------------------------------------------------
commit 0144ed2fec1611b7dcaf28f922bf6c9ba72342b7
Author: daniel peter <peterda at ethz.ch>
Date: Sun Nov 9 00:21:56 2014 +0100
improves minimum required gpu memory estimate
>---------------------------------------------------------------
0144ed2fec1611b7dcaf28f922bf6c9ba72342b7
src/specfem3D/prepare_timerun.f90 | 64 +++++++++++++++++++++++++--------------
1 file changed, 42 insertions(+), 22 deletions(-)
diff --git a/src/specfem3D/prepare_timerun.f90 b/src/specfem3D/prepare_timerun.f90
index 0e0dca1..d6757e6 100644
--- a/src/specfem3D/prepare_timerun.f90
+++ b/src/specfem3D/prepare_timerun.f90
@@ -2368,6 +2368,29 @@
! d_hprime_xx,d_hprimewgll_xx
memory_size = memory_size + 2.d0 * NGLL2 * dble(CUSTOM_REAL)
+ ! sources
+ if (SIMULATION_TYPE == 1 .or. SIMULATION_TYPE == 3) then
+ ! d_sourcearrays
+ memory_size = memory_size + NGLL3 * NSOURCES * NDIM * dble(CUSTOM_REAL)
+ endif
+ ! d_islice_selected_source,d_ispec_selected_source
+ memory_size = memory_size + 2.0 * NSOURCES * dble(SIZE_INTEGER)
+
+ ! receivers
+ !d_number_receiver_global
+ memory_size = memory_size + nrec_local * dble(SIZE_INTEGER)
+ ! d_station_seismo_field
+ memory_size = memory_size + NDIM * NGLL3 * nrec_local * dble(CUSTOM_REAL)
+ ! d_station_strain_field
+ if (SIMULATION_TYPE == 2) then
+ memory_size = memory_size + NGLL3 * nrec_local * dble(SIZE_INTEGER)
+ endif
+ ! d_ispec_selected_rec
+ memory_size = memory_size + nrec * dble(SIZE_INTEGER)
+
+ ! d_adj_sourcearrays
+ memory_size = memory_size + NDIM * NGLL3 * nadj_rec_local * dble(CUSTOM_REAL)
+
! rotation
if (ROTATION_VAL) then
! d_A_array_rotation,..
@@ -2489,6 +2512,12 @@
! padded c11,..
memory_size = memory_size + 21.d0 * NGLL3_PADDED * NSPEC_CRUST_MANTLE * dble(CUSTOM_REAL)
endif
+ ! ystore,zstore
+ memory_size = memory_size + 2.d0 * NGLOB_CRUST_MANTLE * dble(CUSTOM_REAL)
+ ! xstore
+ if (GRAVITY_VAL) then
+ memory_size = memory_size + NGLOB_CRUST_MANTLE * dble(CUSTOM_REAL)
+ endif
! inner core
! padded muv
memory_size = memory_size + NGLL3_PADDED * NSPEC_INNER_CORE * dble(CUSTOM_REAL)
@@ -2499,19 +2528,26 @@
! padded c11,..
memory_size = memory_size + 5.d0 * NGLL3_PADDED * NSPEC_INNER_CORE * dble(CUSTOM_REAL)
endif
- ! xstore,ystore,..
+ ! xstore,ystore,zstore
if (GRAVITY_VAL) then
- memory_size = memory_size + 3.d0 * NDIM * NGLOB_AB * dble(CUSTOM_REAL)
+ memory_size = memory_size + 3.d0 * NGLOB_INNER_CORE * dble(CUSTOM_REAL)
endif
! d_phase_ispec_inner_crust_mantle
memory_size = memory_size + 2 * num_phase_ispec_crust_mantle * dble(SIZE_INTEGER)
! d_displ,..
memory_size = memory_size + 3.d0 * NDIM * NGLOB_AB * dble(CUSTOM_REAL)
+ ! crust/mantle
+ ! d_rmassz
+ memory_size = memory_size + NGLOB_AB * dble(CUSTOM_REAL)
! d_rmassx,..
- memory_size = memory_size + 3.d0 * NGLOB_AB * dble(CUSTOM_REAL)
-
- ! d_station_seismo_field
- memory_size = memory_size + 3.d0 * NGLL3 * nrec_local * dble(CUSTOM_REAL)
+ if ((NCHUNKS_VAL /= 6 .and. ABSORBING_CONDITIONS) .or. (ROTATION_VAL .and. EXACT_MASS_MATRIX_FOR_ROTATION)) then
+ memory_size = memory_size + 2.d0 * NGLOB_CRUST_MANTLE * dble(CUSTOM_REAL)
+ endif
+ ! inner core
+ if ((ROTATION_VAL .and. EXACT_MASS_MATRIX_FOR_ROTATION)) then
+ ! d_rmassx,..
+ memory_size = memory_size + 2.d0 * NGLOB_INNER_CORE * dble(CUSTOM_REAL)
+ endif
! outer core
! padded d_xix_outer_core,..
@@ -2529,22 +2565,6 @@
! d_rmass_outer_core
memory_size = memory_size + NGLOB_OUTER_CORE * dble(CUSTOM_REAL)
- ! sources
- ! d_sourcearrays
- memory_size = memory_size + NGLL3 * NSOURCES * NDIM * dble(CUSTOM_REAL)
- ! d_islice_selected_source,d_ispec_selected_source
- memory_size = memory_size + 2.0 * NSOURCES * dble(SIZE_INTEGER)
-
- ! receivers
- !d_number_receiver_global
- memory_size = memory_size + nrec_local * dble(SIZE_INTEGER)
- ! d_station_seismo_field
- memory_size = memory_size + NDIM * NGLL3 * nrec_local * dble(CUSTOM_REAL)
- ! d_ispec_selected_rec
- memory_size = memory_size + nrec * dble(SIZE_INTEGER)
- ! d_adj_sourcearrays
- memory_size = memory_size + NDIM * NGLL3 * nadj_rec_local * dble(CUSTOM_REAL)
-
! poor estimate for kernel simulations...
if (SIMULATION_TYPE == 3) memory_size = 2.d0 * memory_size
More information about the CIG-COMMITS
mailing list