-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathex10.yml
37 lines (37 loc) · 1.38 KB
/
ex10.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# the alpha parameter
alpha: 0.125
# global data-size (excluding spacer for boundary conditions or ghosts)
global_size: { height: 60, width: 12 }
# degree of parallelism (number of blocks in each dimension)
parallelism: { height: 2, width: 2 }
# PDI configuration
pdi:
metadata: # small values for which PDI keeps a copy
ii: int
dsize: { type: array, subtype: int, size: 2 }
psize: { type: array, subtype: int, size: 2 }
pcoord: { type: array, subtype: int, size: 2 }
data: # values for which PDI does not keep a copy
main_field: { type: array, subtype: double, size: [ '$dsize[0]', '$dsize[1]' ] }
plugins:
mpi:
decl_hdf5:
file: ex10.h5
communicator: $MPI_COMM_WORLD
datasets:
main_field: { type: array, subtype: double, size: [ 3, '$psize[0]*($dsize[0]-2)', '$psize[1]*($dsize[1]-2)' ] }
write:
TODO: # the name of the PDI data to write
dataset: main_field
dataset_selection:
size: [1, '$dsize[0]-2', '$dsize[1]-2']
start: ['$ii-1', '$pcoord[0]*($dsize[0]-2)', '$pcoord[1]*($dsize[1]-2)']
pycall:
on_event:
loop:
with: { iter_id: $ii, ... }
exec: |
import numpy as np
if 0 < iter_id < 4:
transformed_field = np.sqrt(source_field[1:-1,1:-1])
pdi.expose('transformed_field', transformed_field, pdi.OUT)