@@ -69,13 +69,14 @@ local repo_config = import '../../../ci/repo-configuration.libsonnet';
6969 # Extends the provided polybench command with common arguments used in CI. We want the command at the call site
7070 # to be simple (i.e., a flat array of string literals) so it can be easily copied and run locally; using this
7171 # 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 [],
7273 polybench_wrap(command)::
7374 assert command[0 ] == 'mx' : "polybench command should start with 'mx'" ;
7475 // Dynamically import /truffle-enterprise when running on enterprise.
7576 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] +
7778 (if (fail_fast) then ['--fail-fast' ] else []),
78- notify_groups:: ['polybench' ],
79+ notify_groups:: ['polybench' ]
7980 },
8081
8182 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';
104105 ['mx' , '--dy' , 'polybenchmarks' , 'build' , '--dependencies' , 'POLYBENCHMARKS_BENCHMARKS' ]
105106 ],
106107
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+: ['andrija.kolic@oracle.com' ],
138- timelimit: '4:00:00' ,
139- },
140-
141108 js_bench_compilation_throughput(pgo): self .vm_bench_common + common.heap.default + {
142109 local mx_libgraal = ["mx" , "--env" , repo_config.vm.mx_env.libgraal],
143110
@@ -309,10 +276,6 @@ local repo_config = import '../../../ci/repo-configuration.libsonnet';
309276 ],
310277 notify_groups +: ['python' ],
311278 }
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' ]
316279 ] + [
317280 # NFI polybench jobs
318281 self .polybench_vm_gate('linux' , 'amd64' , 'nfi' ) + {
0 commit comments