Skip to content

Commit 8785095

Browse files
authored
Merge pull request #21 from ECP-WarpX/update_perftests
performance tests on Cori
2 parents 7807bed + 427cb3c commit 8785095

12 files changed

+547
-209
lines changed

Tools/performance_tests/GNUmakefile_perftest

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@ PICSAR_HOME ?= $(WARPX_HOME)/../picsar
44
OPENBC_HOME ?= $(WARPX_HOME)/../openbc_poisson
55
DEBUG = FALSE
66
DIM = 3
7-
COMP=gcc
7+
COMP=intel
88
TINY_PROFILE = TRUE
9+
STORE_OLD_PARTICLE_ATTRIBS=TRUE
910
USE_OMP = TRUE
1011
EBASE = perf_tests
1112
USE_PYTHON_MAIN = FALSE
Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,32 @@
1-
# Maximum number of time steps
2-
max_step = 100
3-
4-
# number of grid points
5-
amr.n_cell = 128 128 128
1+
# Maximum number of time steps: command-line argument
2+
# number of grid points: command-line argument
63

74
amr.plot_int = -1 # How often to write plotfiles.
85

96
# Maximum allowable size of each subdomain in the problem domain;
107
# this is used to decompose the domain for parallel calculations.
11-
amr.max_grid_size = 32
8+
amr.max_grid_size = 64
129

1310
# Maximum level in hierarchy (for now must be 0, i.e., one level in total)
1411
amr.max_level = 0
1512

1613
# Geometry
1714
geometry.coord_sys = 0 # 0: Cartesian
18-
geometry.is_periodic = 1 1 1 # Is periodic?
15+
geometry.is_periodic = 0 0 1 # Is periodic?
1916
geometry.prob_lo = -20.e-6 -20.e-6 -20.e-6 # physical domain
2017
geometry.prob_hi = 20.e-6 20.e-6 20.e-6
2118

2219
# Verbosity
2320
warpx.verbose = 1
2421

2522
# Algorithms
26-
algo.current_deposition = 2
23+
algo.current_deposition = 0
2724
algo.charge_deposition = 0
2825
algo.field_gathering = 0
2926
algo.particle_pusher = 0
30-
interpolation.nox = 1
31-
interpolation.noy = 1
32-
interpolation.noz = 1
27+
interpolation.nox = 3
28+
interpolation.noy = 3
29+
interpolation.noz = 3
3330

3431
# CFL
3532
warpx.cfl = 1.0
@@ -44,8 +41,12 @@ electrons.num_particles_per_cell_each_dim = 2 2 4
4441
electrons.profile = constant
4542
electrons.density = 1.e20 # number of electrons per m^3
4643
electrons.momentum_distribution_type = "gaussian"
47-
electrons.u_th = 0.01 # uth the std of the (unitless) momentum
48-
electrons.uz_m = 0. # Mean momentum along z (unitless)
44+
electrons.ux_th = 0.01
45+
electrons.uy_th = 0.01
46+
electrons.uz_th = 0.01
47+
electrons.ux_m = 0.
48+
electrons.uy_m = 0.
49+
electrons.uz_m = 0.
4950

5051
ions.charge = q_e
5152
ions.mass = m_p
@@ -54,5 +55,9 @@ ions.num_particles_per_cell_each_dim = 2 2 4
5455
ions.profile = constant
5556
ions.density = 1.e20 # number of electrons per m^3
5657
ions.momentum_distribution_type = "gaussian"
57-
ions.u_th = 0.01 # uth the std of the (unitless) momentum
58-
ions.uz_m = 0. # Mean momentum along z (unitless)
58+
ions.ux_th = 0.01
59+
ions.uy_th = 0.01
60+
ions.uz_th = 0.01
61+
ions.ux_m = 0.
62+
ions.uy_m = 0.
63+
ions.uz_m = 0.

Tools/performance_tests/automated_test_2_uniform_rest_1ppc

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
1-
# Maximum number of time steps
2-
max_step = 100
3-
4-
# number of grid points
5-
amr.n_cell = 256 256 256
1+
# Maximum number of time steps: command-line argument
2+
# number of grid points: command-line argument
63

74
amr.plot_int = -1 # How often to write plotfiles.
85

@@ -15,7 +12,7 @@ amr.max_level = 0
1512

1613
# Geometry
1714
geometry.coord_sys = 0 # 0: Cartesian
18-
geometry.is_periodic = 1 1 1 # Is periodic?
15+
geometry.is_periodic = 0 0 0 # Is periodic?
1916
geometry.prob_lo = -20.e-6 -20.e-6 -20.e-6 # physical domain
2017
geometry.prob_hi = 20.e-6 20.e-6 20.e-6
2118

@@ -27,9 +24,9 @@ algo.current_deposition = 0
2724
algo.charge_deposition = 0
2825
algo.field_gathering = 0
2926
algo.particle_pusher = 0
30-
interpolation.nox = 1
31-
interpolation.noy = 1
32-
interpolation.noz = 1
27+
interpolation.nox = 3
28+
interpolation.noy = 3
29+
interpolation.noz = 3
3330

3431
# CFL
3532
warpx.cfl = 1.0
@@ -44,5 +41,9 @@ electrons.num_particles_per_cell_each_dim = 1 1 1
4441
electrons.profile = constant
4542
electrons.density = 1.e20 # number of electrons per m^3
4643
electrons.momentum_distribution_type = "gaussian"
47-
electrons.u_th = 0.01 # uth the std of the (unitless) momentum
48-
electrons.uz_m = 0. # Mean momentum along z (unitless)
44+
electrons.ux_th = 0.01
45+
electrons.uy_th = 0.01
46+
electrons.uz_th = 0.01
47+
electrons.ux_m = 0.
48+
electrons.uy_m = 0.
49+
electrons.uz_m = 0.
Lines changed: 22 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,32 @@
1-
# Maximum number of time steps
2-
max_step = 100
3-
4-
# number of grid points
5-
amr.n_cell = 128 128 128
1+
# Maximum number of time steps: command-line argument
2+
# number of grid points: command-line argument
63

74
amr.plot_int = -1 # How often to write plotfiles.
85

96
# Maximum allowable size of each subdomain in the problem domain;
107
# this is used to decompose the domain for parallel calculations.
11-
amr.max_grid_size = 32
8+
amr.max_grid_size = 64
129

1310
# Maximum level in hierarchy (for now must be 0, i.e., one level in total)
1411
amr.max_level = 0
1512

1613
# Geometry
1714
geometry.coord_sys = 0 # 0: Cartesian
18-
geometry.is_periodic = 1 1 1 # Is periodic?
15+
geometry.is_periodic = 0 0 1 # Is periodic?
1916
geometry.prob_lo = -20.e-6 -20.e-6 -20.e-6 # physical domain
2017
geometry.prob_hi = 20.e-6 20.e-6 20.e-6
2118

2219
# Verbosity
2320
warpx.verbose = 1
2421

2522
# Algorithms
26-
algo.current_deposition = 2
23+
algo.current_deposition = 0
2724
algo.charge_deposition = 0
2825
algo.field_gathering = 0
2926
algo.particle_pusher = 0
30-
interpolation.nox = 1
31-
interpolation.noy = 1
32-
interpolation.noz = 1
27+
interpolation.nox = 3
28+
interpolation.noy = 3
29+
interpolation.noz = 3
3330

3431
# CFL
3532
warpx.cfl = 1.0
@@ -40,19 +37,27 @@ particles.species_names = electrons ions
4037
electrons.charge = -q_e
4138
electrons.mass = m_e
4239
electrons.injection_style = "NUniformPerCell"
43-
electrons.num_particles_per_cell_each_dim = 2 1 1
40+
electrons.num_particles_per_cell_each_dim = 2 2 4
4441
electrons.profile = constant
4542
electrons.density = 1.e20 # number of electrons per m^3
4643
electrons.momentum_distribution_type = "gaussian"
47-
electrons.u_th = 0.01 # uth the std of the (unitless) momentum
48-
electrons.uz_m = 100. # Mean momentum along z (unitless)
44+
electrons.ux_th = 0.01
45+
electrons.uy_th = 0.01
46+
electrons.uz_th = 0.01
47+
electrons.ux_m = 0.
48+
electrons.uy_m = 0.
49+
electrons.uz_m = 100.
4950

5051
ions.charge = q_e
5152
ions.mass = m_p
5253
ions.injection_style = "NUniformPerCell"
53-
ions.num_particles_per_cell_each_dim = 2 1 1
54+
ions.num_particles_per_cell_each_dim = 2 2 4
5455
ions.profile = constant
5556
ions.density = 1.e20 # number of electrons per m^3
5657
ions.momentum_distribution_type = "gaussian"
57-
ions.u_th = 0.01 # uth the std of the (unitless) momentum
58-
ions.uz_m = 100. # Mean momentum along z (unitless)
58+
ions.ux_th = 0.01
59+
ions.uy_th = 0.01
60+
ions.uz_th = 0.01
61+
ions.ux_m = 0.
62+
ions.uy_m = 0.
63+
ions.uz_m = 100.

Tools/performance_tests/automated_test_4_labdiags_2ppc

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,24 @@
1-
# Maximum number of time steps
2-
max_step = 100
1+
# Maximum number of time steps: command-line argument
2+
# number of grid points: command-line argument
33

4-
# number of grid points
5-
amr.n_cell = 64 64 512
6-
7-
# Maximum allowable size of each subdomain in the problem domain;
8-
# this is used to decompose the domain for parallel calculations.
9-
10-
amr.max_grid_size = 32
4+
amr.max_grid_size = 64
115

126
# Maximum level in hierarchy (for now must be 0, i.e., one level in total)
137
amr.max_level = 0
14-
amr.plot_int = 10 # How often to write plotfiles. "<= 0" means no plotfiles.
15-
amr.check_int = 10
8+
amr.plot_int = -100 # How often to write plotfiles. "<= 0" means no plotfiles.
9+
amr.check_int = -100
1610

1711
# Geometry
1812
geometry.coord_sys = 0 # 0: Cartesian
19-
geometry.is_periodic = 1 1 0 # Is periodic?
20-
geometry.prob_lo = -150.e-6 -150.e-6 -0.6e-3 # physical domain
13+
geometry.is_periodic = 0 0 0 # Is periodic?
14+
geometry.prob_lo = -150.e-6 -150.e-6 -80.e-6 # physical domain
2115
geometry.prob_hi = 150.e-6 150.e-6 0.
2216

2317
# Verbosity
2418
warpx.verbose = 1
2519

2620
# Algorithms
27-
algo.current_deposition = 2
21+
algo.current_deposition = 0
2822
algo.charge_deposition = 0
2923
algo.field_gathering = 0
3024
algo.particle_pusher = 0
Lines changed: 30 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
1-
# Maximum number of time steps
2-
max_step = 100
3-
4-
# number of grid points
5-
amr.n_cell = 256 256 256
1+
# Maximum number of time steps: command-line argument
2+
# number of grid points: command-line argument
63

74
amr.plot_int = -1 # How often to write plotfiles.
85

@@ -15,21 +12,20 @@ amr.max_level = 0
1512

1613
# Geometry
1714
geometry.coord_sys = 0 # 0: Cartesian
18-
geometry.is_periodic = 1 1 1 # Is periodic?
15+
geometry.is_periodic = 0 0 1 # Is periodic?
1916
geometry.prob_lo = -20.e-6 -20.e-6 -20.e-6 # physical domain
2017
geometry.prob_hi = 20.e-6 20.e-6 20.e-6
2118

22-
# Verbosity
2319
warpx.verbose = 1
24-
20+
warpx.load_balance_int = 5
2521
# Algorithms
26-
algo.current_deposition = 2
22+
algo.current_deposition = 0
2723
algo.charge_deposition = 0
2824
algo.field_gathering = 0
2925
algo.particle_pusher = 0
30-
interpolation.nox = 1
31-
interpolation.noy = 1
32-
interpolation.noz = 1
26+
interpolation.nox = 3
27+
interpolation.noy = 3
28+
interpolation.noz = 3
3329

3430
# CFL
3531
warpx.cfl = 1.0
@@ -39,38 +35,30 @@ particles.species_names = electrons ions
3935

4036
electrons.charge = -q_e
4137
electrons.mass = m_e
42-
electrons.injection_style = "gaussian_beam"
43-
electrons.x_rms = 2.e-6
44-
electrons.y_rms = 2.e-6
45-
electrons.z_rms = 5.e-6
46-
electrons.x_m = 0.
47-
electrons.y_m = 0.
48-
electrons.z_m = 0.
49-
electrons.npart = 500000
50-
electrons.q_tot = -1.602e-9
51-
electrons.profile = "constant"
52-
electrons.density = 1.e25
38+
electrons.injection_style = "NUniformPerCell"
39+
electrons.num_particles_per_cell_each_dim = 2 2 4
40+
electrons.profile = constant
41+
electrons.density = 1.e20 # number of electrons per m^3
5342
electrons.momentum_distribution_type = "gaussian"
54-
electrons.ux_m = 0.0
55-
electrons.uy_m = 0.0
56-
electrons.uz_m = 0.0
57-
electrons.u_th = 0.01
43+
electrons.zmax = 0.
44+
electrons.ux_th = 0.01
45+
electrons.uy_th = 0.01
46+
electrons.uz_th = 0.01
47+
electrons.ux_m = 0.
48+
electrons.uy_m = 0.
49+
electrons.uz_m = 0.
5850

5951
ions.charge = q_e
6052
ions.mass = m_p
61-
ions.injection_style = "gaussian_beam"
62-
ions.x_rms = 2.e-6
63-
ions.y_rms = 2.e-6
64-
ions.z_rms = 5.e-6
65-
ions.x_m = 0.
66-
ions.y_m = 0.
67-
ions.z_m = 0.
68-
ions.npart = 500000
69-
ions.q_tot = -1.602e-9
70-
ions.profile = "constant"
71-
ions.density = 1.e25
53+
ions.injection_style = "NUniformPerCell"
54+
ions.num_particles_per_cell_each_dim = 2 2 4
55+
ions.profile = constant
56+
ions.density = 1.e20 # number of electrons per m^3
7257
ions.momentum_distribution_type = "gaussian"
73-
ions.ux_m = 0.0
74-
ions.uy_m = 0.0
75-
ions.uz_m = 0.0
76-
ions.u_th = 0.01
58+
ions.zmax = 0.
59+
ions.ux_th = 0.01
60+
ions.uy_th = 0.01
61+
ions.uz_th = 0.01
62+
ions.ux_m = 0.
63+
ions.uy_m = 0.
64+
ions.uz_m = 0.

0 commit comments

Comments
 (0)