Skip to content

Commit 940ccd3

Browse files
committed
Move mx benchmark VMs and suites registration code to mx_graalpython_benchmark.py
1 parent 0e5c2b7 commit 940ccd3

File tree

2 files changed

+78
-87
lines changed

2 files changed

+78
-87
lines changed

mx.graalpython/mx_graalpython.py

Lines changed: 5 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
from pathlib import Path
4242
from textwrap import dedent
4343

44+
import mx_graalpython_benchmark
4445
import mx_graalpython_gradleproject
4546
import mx_urlrewrites
4647

@@ -55,7 +56,6 @@
5556

5657
import mx
5758
import mx_util
58-
import mx_benchmark
5959
import mx_gate
6060
import mx_native
6161
import mx_unittest
@@ -71,20 +71,8 @@
7171
from mx_graalpython_gradleproject import GradlePluginProject #pylint: disable=unused-import
7272

7373
from mx_gate import Task
74-
from mx_graalpython_bench_param import PATH_MESO, BENCHMARKS, WARMUP_BENCHMARKS, JAVA_DRIVER_BENCHMARKS, \
75-
HEAP_BENCHMARKS
76-
from mx_graalpython_benchmark import PythonBenchmarkSuite, python_vm_registry, CPythonVm, PyPyVm, JythonVm, \
77-
GraalPythonVm, \
78-
CONFIGURATION_DEFAULT, CONFIGURATION_SANDBOXED, CONFIGURATION_NATIVE, \
79-
CONFIGURATION_DEFAULT_MULTI, CONFIGURATION_SANDBOXED_MULTI, CONFIGURATION_NATIVE_MULTI, \
80-
CONFIGURATION_DEFAULT_MULTI_TIER, CONFIGURATION_NATIVE_MULTI_TIER, \
81-
PythonVmWarmupBenchmarkSuite, \
82-
CONFIGURATION_INTERPRETER, CONFIGURATION_INTERPRETER_MULTI, CONFIGURATION_NATIVE_INTERPRETER, \
83-
CONFIGURATION_NATIVE_INTERPRETER_MULTI, PythonJavaEmbeddingBenchmarkSuite, python_java_embedding_vm_registry, \
84-
GraalPythonJavaDriverVm, CONFIGURATION_JAVA_EMBEDDING_INTERPRETER_MULTI_SHARED, \
85-
CONFIGURATION_JAVA_EMBEDDING_INTERPRETER_MULTI, CONFIGURATION_JAVA_EMBEDDING_MULTI_SHARED, \
86-
CONFIGURATION_JAVA_EMBEDDING_MULTI, CONFIGURATION_PANAMA, PythonJMHDistMxBenchmarkSuite, \
87-
PythonHeapBenchmarkSuite
74+
from mx_graalpython_bench_param import PATH_MESO
75+
8876

8977
if not sys.modules.get("__main__"):
9078
# workaround for pdb++
@@ -2197,76 +2185,6 @@ def bytecode_dsl_build_args():
21972185
# post init
21982186
#
21992187
# ----------------------------------------------------------------------------------------------------------------------
2200-
def _register_vms(namespace):
2201-
# cpython
2202-
python_vm_registry.add_vm(CPythonVm(config_name=CONFIGURATION_DEFAULT), SUITE)
2203-
2204-
# pypy
2205-
python_vm_registry.add_vm(PyPyVm(config_name=CONFIGURATION_DEFAULT), SUITE)
2206-
2207-
# jython
2208-
python_vm_registry.add_vm(JythonVm(config_name=CONFIGURATION_DEFAULT), SUITE)
2209-
2210-
# graalpython
2211-
python_vm_registry.add_vm(GraalPythonVm(config_name=CONFIGURATION_DEFAULT), SUITE, 10)
2212-
python_vm_registry.add_vm(GraalPythonVm(config_name=CONFIGURATION_INTERPRETER, extra_polyglot_args=[
2213-
'--experimental-options', '--engine.Compilation=false'
2214-
]), SUITE, 10)
2215-
python_vm_registry.add_vm(GraalPythonVm(config_name=CONFIGURATION_DEFAULT_MULTI, extra_polyglot_args=[
2216-
'--experimental-options', '-multi-context',
2217-
]), SUITE, 10)
2218-
python_vm_registry.add_vm(GraalPythonVm(config_name=CONFIGURATION_INTERPRETER_MULTI, extra_polyglot_args=[
2219-
'--experimental-options', '-multi-context', '--engine.Compilation=false'
2220-
]), SUITE, 10)
2221-
python_vm_registry.add_vm(GraalPythonVm(config_name=CONFIGURATION_DEFAULT_MULTI_TIER, extra_polyglot_args=[
2222-
'--experimental-options', '--engine.MultiTier=true',
2223-
]), SUITE, 10)
2224-
python_vm_registry.add_vm(GraalPythonVm(config_name=CONFIGURATION_SANDBOXED, extra_polyglot_args=SANDBOXED_OPTIONS), SUITE, 10)
2225-
python_vm_registry.add_vm(GraalPythonVm(config_name=CONFIGURATION_NATIVE, extra_polyglot_args=[
2226-
]), SUITE, 10)
2227-
python_vm_registry.add_vm(GraalPythonVm(config_name=CONFIGURATION_NATIVE_INTERPRETER, extra_polyglot_args=[
2228-
'--experimental-options', '--engine.Compilation=false']), SUITE, 10)
2229-
python_vm_registry.add_vm(GraalPythonVm(config_name=CONFIGURATION_SANDBOXED_MULTI, extra_polyglot_args=[
2230-
'--experimental-options', '-multi-context'] + SANDBOXED_OPTIONS), SUITE, 10)
2231-
python_vm_registry.add_vm(GraalPythonVm(config_name=CONFIGURATION_NATIVE_MULTI, extra_polyglot_args=[
2232-
'--experimental-options', '-multi-context'
2233-
]), SUITE, 10)
2234-
python_vm_registry.add_vm(GraalPythonVm(config_name=CONFIGURATION_NATIVE_INTERPRETER_MULTI, extra_polyglot_args=[
2235-
'--experimental-options', '-multi-context', '--engine.Compilation=false'
2236-
]), SUITE, 10)
2237-
python_vm_registry.add_vm(GraalPythonVm(config_name=CONFIGURATION_NATIVE_MULTI_TIER, extra_polyglot_args=[
2238-
'--experimental-options', '--engine.MultiTier=true'
2239-
]), SUITE, 10)
2240-
python_vm_registry.add_vm(GraalPythonVm(config_name=CONFIGURATION_PANAMA, extra_polyglot_args=[
2241-
'--experimental-options', '--python.UsePanama=true'
2242-
]), SUITE, 10)
2243-
2244-
# java embedding driver
2245-
python_java_embedding_vm_registry.add_vm(
2246-
GraalPythonJavaDriverVm(config_name=CONFIGURATION_JAVA_EMBEDDING_MULTI,
2247-
extra_polyglot_args=['-multi-context']), SUITE, 10)
2248-
python_java_embedding_vm_registry.add_vm(
2249-
GraalPythonJavaDriverVm(config_name=CONFIGURATION_JAVA_EMBEDDING_MULTI_SHARED,
2250-
extra_polyglot_args=['-multi-context', '-shared-engine']), SUITE, 10)
2251-
python_java_embedding_vm_registry.add_vm(
2252-
GraalPythonJavaDriverVm(config_name=CONFIGURATION_JAVA_EMBEDDING_INTERPRETER_MULTI,
2253-
extra_polyglot_args=['-multi-context', '-interpreter']), SUITE, 10)
2254-
python_java_embedding_vm_registry.add_vm(
2255-
GraalPythonJavaDriverVm(config_name=CONFIGURATION_JAVA_EMBEDDING_INTERPRETER_MULTI_SHARED,
2256-
extra_polyglot_args=['-multi-context', '-interpreter', '-shared-engine']), SUITE, 10)
2257-
2258-
2259-
def _register_bench_suites(namespace):
2260-
for py_bench_suite in PythonBenchmarkSuite.get_benchmark_suites(BENCHMARKS):
2261-
mx_benchmark.add_bm_suite(py_bench_suite)
2262-
for py_bench_suite in PythonJavaEmbeddingBenchmarkSuite.get_benchmark_suites(JAVA_DRIVER_BENCHMARKS):
2263-
mx_benchmark.add_bm_suite(py_bench_suite)
2264-
for py_bench_suite in PythonVmWarmupBenchmarkSuite.get_benchmark_suites(WARMUP_BENCHMARKS):
2265-
mx_benchmark.add_bm_suite(py_bench_suite)
2266-
mx_benchmark.add_bm_suite(PythonJMHDistMxBenchmarkSuite())
2267-
for py_bench_suite in PythonHeapBenchmarkSuite.get_benchmark_suites(HEAP_BENCHMARKS):
2268-
mx_benchmark.add_bm_suite(py_bench_suite)
2269-
22702188

22712189
class CharsetFilteringPariticpant:
22722190
"""
@@ -2339,8 +2257,8 @@ def hardcoded_ver_is_behind_major_minor(m):
23392257

23402258
def mx_post_parse_cmd_line(namespace):
23412259
# all projects are now available at this time
2342-
_register_vms(namespace)
2343-
_register_bench_suites(namespace)
2260+
mx_graalpython_benchmark.register_vms(SUITE, SANDBOXED_OPTIONS)
2261+
mx_graalpython_benchmark.register_suites()
23442262
mx_graalpython_python_benchmarks.register_python_benchmarks()
23452263

23462264
for dist in mx.suite('graalpython').dists:

mx.graalpython/mx_graalpython_benchmark.py

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1109,3 +1109,76 @@ def get_benchmark_suites(cls, benchmarks):
11091109
assert isinstance(benchmarks, dict), "benchmarks must be a dict: {suite: [path, {bench: args, ... }], ...}"
11101110
return [cls(suite_name, suite_info[0], suite_info[1])
11111111
for suite_name, suite_info in benchmarks.items()]
1112+
1113+
1114+
def register_vms(suite, sandboxed_options):
1115+
# cpython
1116+
python_vm_registry.add_vm(CPythonVm(config_name=CONFIGURATION_DEFAULT), suite)
1117+
1118+
# pypy
1119+
python_vm_registry.add_vm(PyPyVm(config_name=CONFIGURATION_DEFAULT), suite)
1120+
1121+
# jython
1122+
python_vm_registry.add_vm(JythonVm(config_name=CONFIGURATION_DEFAULT), suite)
1123+
1124+
# graalpython
1125+
python_vm_registry.add_vm(GraalPythonVm(config_name=CONFIGURATION_DEFAULT), suite, 10)
1126+
python_vm_registry.add_vm(GraalPythonVm(config_name=CONFIGURATION_INTERPRETER, extra_polyglot_args=[
1127+
'--experimental-options', '--engine.Compilation=false'
1128+
]), suite, 10)
1129+
python_vm_registry.add_vm(GraalPythonVm(config_name=CONFIGURATION_DEFAULT_MULTI, extra_polyglot_args=[
1130+
'--experimental-options', '-multi-context',
1131+
]), suite, 10)
1132+
python_vm_registry.add_vm(GraalPythonVm(config_name=CONFIGURATION_INTERPRETER_MULTI, extra_polyglot_args=[
1133+
'--experimental-options', '-multi-context', '--engine.Compilation=false'
1134+
]), suite, 10)
1135+
python_vm_registry.add_vm(GraalPythonVm(config_name=CONFIGURATION_DEFAULT_MULTI_TIER, extra_polyglot_args=[
1136+
'--experimental-options', '--engine.MultiTier=true',
1137+
]), suite, 10)
1138+
python_vm_registry.add_vm(GraalPythonVm(config_name=CONFIGURATION_SANDBOXED, extra_polyglot_args=sandboxed_options), suite, 10)
1139+
python_vm_registry.add_vm(GraalPythonVm(config_name=CONFIGURATION_NATIVE, extra_polyglot_args=[
1140+
]), suite, 10)
1141+
python_vm_registry.add_vm(GraalPythonVm(config_name=CONFIGURATION_NATIVE_INTERPRETER, extra_polyglot_args=[
1142+
'--experimental-options', '--engine.Compilation=false']), suite, 10)
1143+
python_vm_registry.add_vm(GraalPythonVm(config_name=CONFIGURATION_SANDBOXED_MULTI, extra_polyglot_args=[
1144+
'--experimental-options', '-multi-context'] + sandboxed_options), suite, 10)
1145+
python_vm_registry.add_vm(GraalPythonVm(config_name=CONFIGURATION_NATIVE_MULTI, extra_polyglot_args=[
1146+
'--experimental-options', '-multi-context'
1147+
]), suite, 10)
1148+
python_vm_registry.add_vm(GraalPythonVm(config_name=CONFIGURATION_NATIVE_INTERPRETER_MULTI, extra_polyglot_args=[
1149+
'--experimental-options', '-multi-context', '--engine.Compilation=false'
1150+
]), suite, 10)
1151+
python_vm_registry.add_vm(GraalPythonVm(config_name=CONFIGURATION_NATIVE_MULTI_TIER, extra_polyglot_args=[
1152+
'--experimental-options', '--engine.MultiTier=true'
1153+
]), suite, 10)
1154+
python_vm_registry.add_vm(GraalPythonVm(config_name=CONFIGURATION_PANAMA, extra_polyglot_args=[
1155+
'--experimental-options', '--python.UsePanama=true'
1156+
]), suite, 10)
1157+
1158+
# java embedding driver
1159+
python_java_embedding_vm_registry.add_vm(
1160+
GraalPythonJavaDriverVm(config_name=CONFIGURATION_JAVA_EMBEDDING_MULTI,
1161+
extra_polyglot_args=['-multi-context']), suite, 10)
1162+
python_java_embedding_vm_registry.add_vm(
1163+
GraalPythonJavaDriverVm(config_name=CONFIGURATION_JAVA_EMBEDDING_MULTI_SHARED,
1164+
extra_polyglot_args=['-multi-context', '-shared-engine']), suite, 10)
1165+
python_java_embedding_vm_registry.add_vm(
1166+
GraalPythonJavaDriverVm(config_name=CONFIGURATION_JAVA_EMBEDDING_INTERPRETER_MULTI,
1167+
extra_polyglot_args=['-multi-context', '-interpreter']), suite, 10)
1168+
python_java_embedding_vm_registry.add_vm(
1169+
GraalPythonJavaDriverVm(config_name=CONFIGURATION_JAVA_EMBEDDING_INTERPRETER_MULTI_SHARED,
1170+
extra_polyglot_args=['-multi-context', '-interpreter', '-shared-engine']), suite, 10)
1171+
1172+
1173+
def register_suites():
1174+
from mx_graalpython_bench_param import BENCHMARKS, JAVA_DRIVER_BENCHMARKS, WARMUP_BENCHMARKS, HEAP_BENCHMARKS
1175+
1176+
for py_bench_suite in PythonBenchmarkSuite.get_benchmark_suites(BENCHMARKS):
1177+
mx_benchmark.add_bm_suite(py_bench_suite)
1178+
for py_bench_suite in PythonJavaEmbeddingBenchmarkSuite.get_benchmark_suites(JAVA_DRIVER_BENCHMARKS):
1179+
mx_benchmark.add_bm_suite(py_bench_suite)
1180+
for py_bench_suite in PythonVmWarmupBenchmarkSuite.get_benchmark_suites(WARMUP_BENCHMARKS):
1181+
mx_benchmark.add_bm_suite(py_bench_suite)
1182+
mx_benchmark.add_bm_suite(PythonJMHDistMxBenchmarkSuite())
1183+
for py_bench_suite in PythonHeapBenchmarkSuite.get_benchmark_suites(HEAP_BENCHMARKS):
1184+
mx_benchmark.add_bm_suite(py_bench_suite)

0 commit comments

Comments
 (0)