@@ -69,13 +69,14 @@ local repo_config = import '../../../ci/repo-configuration.libsonnet';
69
69
# Extends the provided polybench command with common arguments used in CI. We want the command at the call site
70
70
# to be simple (i.e., a flat array of string literals) so it can be easily copied and run locally; using this
71
71
# wrapper allows us to inject CI-specific fields without specifying them in the command.
72
+ hwloc_command_prefix:: if std.length (std.find ('bench' , self .targets)) > 0 then ["hwloc-bind" , "--cpubind" , "node:0" , "--membind" , "node:0" , "--" ] else [],
72
73
polybench_wrap(command)::
73
74
assert command[0 ] == 'mx' : "polybench command should start with 'mx'" ;
74
75
// Dynamically import /truffle-enterprise when running on enterprise.
75
76
local extra_imports = if is_enterprise then ['--dy' , '/truffle-enterprise' ] else [];
76
- ['mx' ] + extra_imports + command[1 :] + ['--mx-benchmark-args' , '--results-file' , self .result_file] +
77
+ self .hwloc_command_prefix + ['mx' ] + extra_imports + command[1 :] + ['--mx-benchmark-args' , '--results-file' , self .result_file] +
77
78
(if (fail_fast) then ['--fail-fast' ] else []),
78
- notify_groups:: ['polybench' ],
79
+ notify_groups:: ['polybench' ]
79
80
},
80
81
81
82
polybench_vm_hpc_common: self .polybench_vm_common('linux' , 'amd64' , skip_machine=true ) + self .polybench_hpc_linux_common(shape='e4_8_64' ) + {
@@ -104,40 +105,6 @@ local repo_config = import '../../../ci/repo-configuration.libsonnet';
104
105
['mx' , '--dy' , 'polybenchmarks' , 'build' , '--dependencies' , 'POLYBENCHMARKS_BENCHMARKS' ]
105
106
],
106
107
107
- polybench_vm_post_merge(os, arch, language, vm_config, name = null): vm_common.vm_base(os, arch, 'post-merge' , bench=true ) + self .polybench_vm_common(os, arch) + vm.vm_java_Latest + {
108
- name: utils.hyphenize(['post-merge-bench-vm' , vm.vm_setup.short_name, 'polybench' , language, name, vm_config, utils.jdk_and_hardware(self )]),
109
- setup+: [
110
- ['mx' , '--dy' , 'graalpython' , 'build' ]
111
- ],
112
- local benchmarks = ['interpreter/sieve.py' , 'interpreter/fibonacci.py' , 'interpreter/deltablue.py' , 'interpreter/richards.py' ],
113
- run+: [
114
- ['grep' , '-q' , '-E' , 'polybench:' + benchmark + ' ([a-z0-9]|-)+: FAILURE' , 'split-run.txt' ] +
115
- ['||' ] +
116
- ['hwloc-bind' , '--cpubind' , 'node:0.core:0-3.pu:0' , '--membind' , 'node:0' , '--' ] +
117
- ['mx' , '--env' , '${VM_ENV}' , '--dy' , '/truffle-enterprise' , '--dy' , 'graalpython' , '--kill-with-sigquit' ] +
118
- ['--java-home' , '${POLYBENCH_JVM}' ] +
119
- ['benchmark' , 'polybench:' + benchmark, '--results-file=' + self .result_file, '--append-results' ] +
120
- ['--' , '--jvm=native-image-java-home' , '--jvm-config=' + vm_config] +
121
- ['-Dnative-image.benchmark.extra-image-build-argument=-R:MaxHeapSize=500m' ] +
122
- ['-Dnative-image.benchmark.extra-image-build-argument=-J-Xmx24g' ] +
123
- ['-Dnative-image.benchmark.benchmark-output-dir=mxbuild' ] +
124
- ['--split-run' , 'split-run.txt' ] +
125
- ['--' , '--experimental-options' , '--engine.Compilation=false' ] +
126
- ['||' ] +
127
- ['echo' , 'polybench:' + benchmark + ' general: FAILURE' , '>>' , 'split-run.txt' ]
128
- for benchmark in benchmarks
129
- ] + [
130
- ['set-export' , 'BENCH_EXIT_STATUS' , '1' ],
131
- ['cat' , 'split-run.txt' ],
132
- ['grep' , '-q' , 'FAILURE' , 'split-run.txt' , '||' , 'set-export' , 'BENCH_EXIT_STATUS' , '0' ],
133
- ['exit' , '$BENCH_EXIT_STATUS' ]
134
- ],
135
- teardown: [self .upload],
136
- notify_groups +: ['python' ],
137
- notify_emails+: [
'[email protected] ' ],
138
- timelimit: '4:00:00' ,
139
- },
140
-
141
108
js_bench_compilation_throughput(pgo): self .vm_bench_common + common.heap.default + {
142
109
local mx_libgraal = ["mx" , "--env" , repo_config.vm.mx_env.libgraal],
143
110
@@ -309,10 +276,6 @@ local repo_config = import '../../../ci/repo-configuration.libsonnet';
309
276
],
310
277
notify_groups +: ['python' ],
311
278
}
312
- ] + [
313
- # PR-bench Python Interpreter mx benchmark polybench jobs
314
- self .polybench_vm_post_merge('linux' , 'amd64' , 'python' , vm_config, 'interpreter' )
315
- for vm_config in ['default' , 'g1gc' ]
316
279
] + [
317
280
# NFI polybench jobs
318
281
self .polybench_vm_gate('linux' , 'amd64' , 'nfi' ) + {
0 commit comments