-
Notifications
You must be signed in to change notification settings - Fork 45
Expand file tree
/
Copy pathapplication.py
More file actions
113 lines (90 loc) · 3.81 KB
/
application.py
File metadata and controls
113 lines (90 loc) · 3.81 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
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
# Copyright 2023 Lawrence Livermore National Security, LLC and other
# Benchpark Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: Apache-2.0
import sys
from ramble.appkit import *
class Remhos(ExecutableApplication):
"""Remhos benchmark"""
name = "remhos"
tags = ['asc','engineering','mfem','cfd','large-scale',
'multi-node','single-node','mpi','c++','high-order','hydrodynamics',
'explicit-timestepping','finite-element','time-dependent','ode',
'full-assembly','partial-assembly',
'lagrangian','spatial-discretization','unstructured-grid',
'network-latency-bound','network-collectives','unstructured-grid']
#TODO: add -ms flag once it's implemented
executable('2d', 'remhos' +
' -dim 2 -epm {epm}' +
' -p 14' +
' -rs {rs2d}' +
' -o 3 -dt {dt} -tf {tf}' +
' -ho {ho} -lo {lo}' +
' -fct {fct}' +
' -vs {vs}' +
' -ms {ms}' +
' {gam}' +
' -d {device}' +
' -pa -no-vis', use_mpi=True)
executable('3d', 'remhos' +
' -dim 3 -epm {epm}' +
' -p 10' +
' -rs {rs3d}' +
' -o 2 -dt {dt} -tf {tf}' +
' -ho {ho} -lo {lo}' +
' -fct {fct}' +
' -vs {vs}' +
' -ms {ms}' +
' {gam}' +
' -d {device}' +
' -pa -no-vis', use_mpi=True)
workload('2d', executables=['2d'])
workload('3d', executables=['3d'])
#workload_variable('mesh', default='{remhos}/data/periodic-square.mesh',
# description='mesh file',
# workloads=[''])
#workload_variable('p', default='5',
# description='problem number',
# workloads=['remhos'])
workload_variable('rs2d', default='4',
description='number of serial refinements',
workloads=['2d'])
workload_variable('rs3d', default='3',
description='number of serial refinements',
workloads=['3d'])
#workload_variable('rp', default='',
# description='number of parallel refinements',
# workloads=['remhos'])
workload_variable('o', default='2',
description='',
workloads=['2d','3d'])
workload_variable('dt', default='-1.0',
description='time step',
workloads=['2d','3d'])
workload_variable('tf', default='0.5',
description='time final',
workloads=['2d','3d'])
workload_variable('ho', default='3',
description='high order solver',
workloads=['2d','3d'])
workload_variable('lo', default='5',
description='low order solver',
workloads=['2d','3d'])
workload_variable('fct', default='2',
description='fct type',
workloads=['2d','3d'])
workload_variable('vs', default='1',
description='vs',
workloads=['2d','3d'])
workload_variable('ms', default='5',
description='ms',
workloads=['2d','3d'])
workload_variable('device', default='cpu',
description='cpu, cuda or hip',
workloads=['2d','3d'])
workload_variable('gam', default='--no-gpu-aware-mpi',
description='--gpu-aware-mpi or --no-gpu-aware-mpi',
workloads=['2d','3d'])
figure_of_merit("FOM", log_file='{experiment_run_dir}/{experiment_name}.out', fom_regex=r'FOM:\s+(?P<fom>[0-9]*\.[0-9]*)', group_name='fom', units='megadofs x time steps / second')
#FOM_regex=r'(?<=Merit)\s+[\+\-]*[0-9]*\.*[0-9]+e*[\+\-]*[0-9]*'
success_criteria('valid', mode='string', match=r'.*', file='{experiment_run_dir}/{experiment_name}.out')