forked from INM-6/beNNch
-
Notifications
You must be signed in to change notification settings - Fork 0
/
multi-area-model_2.yaml
117 lines (109 loc) · 3.76 KB
/
multi-area-model_2.yaml
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
# beNNch - Unified execution, collection, analysis and
# comparison of neural network simulation benchmarks.
# Copyright (C) 2021 Forschungszentrum Juelich GmbH, INM-6
# This program is free software: you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free Software
# Foundation, either version 3 of the License, or (at your option) any later
# version.
# This program is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE. See the GNU General Public License for more details.
# You should have received a copy of the GNU General Public License along with
# this program. If not, see <https://www.gnu.org/licenses/>.
# SPDX-License-Identifier: GPL-3.0-or-later
include-path:
- ../helpers/
- ../config/
# model-specific name and output path
name: MAM
outpath: ../../benchmark_results/MAM
# model configuration
parameterset:
name: model_commands
parameter:
- {name: run_file, type: string, _: $model_path/run_benchmark.py}
- {name: run_args, type: string, _: "${data_path} ${data_folder_hash} ${network_state}"}
-
name: optional_run_command
_:
data_folder_hash=`uuidgen`
srun -n 1 --nodes 1 python ${model_path}/run_benchmark_createParams.py ${scale} ${num_vps} ${model_time_sim} ${scale_K} ${data_path} ${data_folder_hash} ${network_state} ${rng_seed} ${model_time_presim} ${record_spikes}
- {name: log_path, type: string, _: "${data_path}/${data_folder_hash}/recordings"}
step:
# build step
- name: build
export: true
use:
- from: user_config.yaml
_: user_config
- from: multi-area-model_2_config.yaml
_: file_paths,model_parameters,software_parameters
- from: helpers.yaml
_: slurm_build,run_build,files,sub_build_job
do:
- build --get --silent ${simulator} ${version} ${variant} ${suffix} && export DEP=`$submit_cmd --parsable $job_file`
# benchmark step
- name: bench
depend: build
use:
- model_commands
- from: user_config.yaml
_: user_config
- from: multi-area-model_2_config.yaml
_: file_paths,model_parameters,machine_parameters,software_parameters
- from: helpers.yaml
_: slurm_bench,run_benchmark,files,sub_bench_job,scaling_experiment
do:
done_file: $ready_file
_: $submit_cmd --dependency=afterok:$$DEP $job_file
# analysis step
analyser:
name: analyse
use:
- from: helpers.yaml
_: timer_pattern
analyse:
step: bench
file: timer_data.txt
# result step
result:
name: result
use: analyse
table:
name: result_table
style: csv
sort: number
column:
- rng_seed
- num_nodes
- threads_per_task
- tasks_per_node
- model_time_sim
- wall_time_create
- wall_time_connect
- wall_time_sim
- wall_time_phase_collocate
- wall_time_phase_communicate
- wall_time_phase_deliver
- wall_time_phase_update
- wall_time_communicate_target_data
- wall_time_gather_spike_data
- wall_time_gather_target_data
- wall_time_communicate_prepare
- py_time_kernel_prepare
- py_time_network_local
- py_time_network_global
- py_time_simulate
- py_time_presimulate
- py_time_network_prepare
- py_time_create
- py_time_connect_area
- py_time_connect_cc
- py_time_connect
- base_memory
- network_memory
- init_memory
- total_memory
- num_connections
- local_spike_counter
- e_counter