Skip to content

Commit 285c9a6

Browse files
committed
scaling tests and visualization
1 parent 72cfef0 commit 285c9a6

File tree

16 files changed

+258
-18
lines changed

16 files changed

+258
-18
lines changed

.gitignore

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22
/doc/latex
33
/doc/html
44

5-
*.pdf
6-
75
# Created by https://www.gitignore.io
86

97
### Python ###
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
import dolfin as df
2+
import numpy as np
3+
import matplotlib.pyplot as plt
4+
5+
6+
N = 128 # Number of elements
7+
k = 127 # Wave frequency
8+
d = 1 # FE order
9+
10+
# Get mesh and function space (CG or DG)
11+
mesh = df.UnitIntervalMesh(N)
12+
V = df.FunctionSpace(mesh, "CG", d)
13+
# V = df.FunctionSpace(mesh, "DG", d)
14+
15+
# Build mass matrix
16+
u = df.TrialFunction(V)
17+
v = df.TestFunction(V)
18+
a_M = u * v * df.dx
19+
M = df.assemble(a_M)
20+
21+
# Create vector with sine function
22+
u0 = df.Expression('sin(k*pi*x[0])', pi=np.pi, k=k, degree=d)
23+
w = df.interpolate(u0, V)
24+
25+
# Apply mass matrix to this vector
26+
Mw = df.Function(V)
27+
M.mult(w.vector(), Mw.vector())
28+
29+
# Do FFT to get the frequencies
30+
fw = np.fft.fft(w.vector()[:])
31+
fMw = np.fft.fft(Mw.vector()[:])
32+
# Shift to have zero frequency in the middle of the plot
33+
fw2 = np.fft.fftshift(fw)
34+
fMw2 = np.fft.fftshift(fMw)
35+
36+
# Plot
37+
plt.figure()
38+
plt.plot(abs(fw2))
39+
40+
plt.figure()
41+
plt.plot(abs(fMw2))
42+
43+
plt.show()
44+

pySDC/projects/AllenCahn_Bayreuth/AllenCahn_dump.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ def post_step(self, step, level_number):
120120
nbytes_global = [nbytes_local]
121121
local_offset = sum(nbytes_global[:self.rank])
122122

123-
# dump initial data
123+
# dump data
124124
fname = f"./data/{L.prob.params.name}_{self.time_step + step.status.slot:08d}"
125125
fh = MPI.File.Open(self.comm, fname + ".dat", self.amode)
126126
fh.Write_at_all(local_offset, tmp)
2.53 MB
Binary file not shown.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"type": "dataset", "datatype": "float64", "endian": "=", "time": 0.0, "space_comm_size": 24, "time_comm_size": 1, "shape": [576, 576], "elementsize": 8}
2.53 MB
Binary file not shown.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"type": "dataset", "datatype": "float64", "endian": "=", "time": 0.024000000000000014, "space_comm_size": 24, "time_comm_size": 1, "shape": [576, 576], "elementsize": 8}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
result:
2+
nnodes | ntasks | space_size | ncpus | timing_pat | niter_pat
3+
-------+--------+------------+-------+------------+----------
4+
1 | 24 | 24 | 1 | 3.5312 | 4.0
5+
2 | 24 | 24 | 1 | 2.4658 | 5.0
6+
4 | 24 | 24 | 1 | 1.5581 | 5.5
7+
6 | 24 | 24 | 1 | 1.1749 | 5.75
8+
12 | 24 | 24 | 1 | 0.9213 | 7.0
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
result:
2+
nnodes | ntasks | space_size | ncpus | timing_pat | niter_pat
3+
-------+--------+------------+-------+------------+----------
4+
1 | 1 | 1 | 1 | 31.6875 | 4.0
5+
1 | 2 | 2 | 1 | 18.3877 | 4.0
6+
1 | 4 | 4 | 1 | 10.1326 | 4.0
7+
1 | 6 | 6 | 1 | 7.1452 | 4.0
8+
1 | 12 | 12 | 1 | 4.5086 | 4.0
9+
1 | 24 | 24 | 1 | 3.52 | 4.0
10+
2 | 24 | 48 | 1 | 3.4735 | 4.0

pySDC/projects/Performance/jube_run_pySDC_AC.xml renamed to pySDC/projects/Performance/jube_run_pySDC_AC_space.xml

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,12 @@
44
<comment>Scaling test with pySDC</comment>
55

66
<parameterset name="param_set">
7-
<parameter name="nnodes" type="int">1</parameter>
8-
<!-- <parameter name="nnodes" type="int">1, 2, 4, 6, 12</parameter>-->
9-
<!-- <parameter name="ntasks" type="int">1, 2, 4, 6, 12</parameter>-->
10-
<parameter name="ntasks" type="int">1</parameter>
11-
<parameter name="ncpus" type="int">1, 2, 4, 12</parameter>
12-
<!-- <parameter name="space_size" mode="python" type="int">$ntasks</parameter>-->
13-
<parameter name="space_size" type="int">1</parameter>
14-
<parameter name="mpi" type="str">psmpi-mt</parameter>
7+
<parameter name="i">0, 1, 2, 3, 4, 5, 6</parameter>
8+
<parameter name="nnodes" mode="python" type="int">[1, 1, 1, 1, 1, 1, 2][$i]</parameter>
9+
<parameter name="ntasks" mode="python" type="int">[1, 2, 4, 6, 12, 24, 24][$i]</parameter>
10+
<parameter name="ncpus" type="int">1</parameter>
11+
<parameter name="space_size" mode="python" type="int">$ntasks * $nnodes</parameter>
12+
<parameter name="mpi" type="str">intel</parameter>
1513
<parameter name="flag" type="str">--cpu_bind=sockets</parameter>
1614
</parameterset>
1715

@@ -65,7 +63,7 @@
6563
<!-- <column>flag</column>-->
6664
<column>space_size</column>
6765
<column>ncpus</column>
68-
<column>mpi</column>
66+
<!-- <column>mpi</column>-->
6967
<column>timing_pat</column>
7068
<column>niter_pat</column>
7169
</table>

0 commit comments

Comments
 (0)