-
Notifications
You must be signed in to change notification settings - Fork 11
Expand file tree
/
Copy pathtimer.yml
More file actions
66 lines (65 loc) · 2.73 KB
/
timer.yml
File metadata and controls
66 lines (65 loc) · 2.73 KB
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# duration in seconds
duration: 0.75
# global [height, width] (excluding boundary conditions or ghosts)
datasize: [60, 12]
# degree of parallelism
parallelism: { height: 3, width: 1 }
# only the following config is passed to PDI
pdi:
metadata: # type of small values for which PDI keeps a copy
iter: int # current iteration id
dsize: { size: 2, type: array, subtype: int } # local data size including ghosts/boundary
psize: { size: 2, type: array, subtype: int } # number of processes in each dimension
pcoord: { size: 2, type: array, subtype: int } # coordinate of the process
data: # type of values for which PDI does not keep a copy
main_field: { size: [ '$dsize[0]', '$dsize[1]' ], type: array, subtype: double }
timer: true
plugins:
trace: debug
timer:
- timer_h5: "decl_hdf5"
- timer_nc:
start: "decl_netcdf_start_timer"
stop: "decl_netcdf_stop_timer"
- timer_python: [pycall, user_code]
- timer_json: {start: "json_start_timer", stop: "json_stop_timer"}
- timer_pdi: "pdi"
mpi:
decl_hdf5:
file: data.h5
communicator: $MPI_COMM_WORLD # the MPI communicator used for HDF5 parallel synchronized write
datasets: # type of the datasets to create in file
data:
type: array
subtype: double
size: [10, '$psize[0]*($dsize[0]-2)', '$psize[1]*($dsize[1]-2)']
write:
main_field: # the name of the data to write
dataset: data
mpio: COLLECTIVE # or INDEPENDENT
when: '$iter<10' # do only write the first 10 iterations (0...9)
memory_selection: # exclude ghosts from the data in memory
size: ['$dsize[0]-2', '$dsize[1]-2']
start: [1, 1]
dataset_selection: # only write into a single slice in time
size: [1, '$dsize[0]-2', '$dsize[1]-2']
start: [$iter, '($dsize[0]-2)*$pcoord[0]', '($dsize[1]-2)*$pcoord[1]']
decl_netcdf:
file: data.nc
communicator: $MPI_COMM_WORLD # the MPI communicator used for HDF5 parallel synchronized write
variables: # type of the datasets to create in file
v_data:
type: array
subtype: double
size: [10, '$psize[0]*$dsize[0]', '$psize[1]*$dsize[1]']
write:
main_field: # the name of the data to write
variable: v_data
when: '$iter<10' # do only write the first 10 iterations (0...9)
variable_selection: # only write into a single slice in time
subsize: [1, '$dsize[0]', '$dsize[1]']
start: [$iter, '$dsize[0]*$pcoord[0]', '$dsize[1]*$pcoord[1]']
json:
file: data_${pcoord[0]}_${pcoord[1]}.json
when: '$iter<10'
write: [main_field]