Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: Update TPC-H benchmark results #1257

Merged
merged 7 commits into from
Jan 13, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 6 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,30 +46,23 @@ The following chart shows the time it takes to run the 22 TPC-H queries against
using a single executor with 8 cores. See the [Comet Benchmarking Guide](https://datafusion.apache.org/comet/contributor-guide/benchmarking.html)
for details of the environment used for these benchmarks.

When using Comet, the overall run time is reduced from 615 seconds to 364 seconds, a 1.7x speedup, with query 1
running 9x faster than Spark.
When using Comet, the overall run time is reduced from 640 seconds to 331 seconds, very close to a 2x speedup.

Running the same queries with DataFusion standalone (without Spark) using the same number of cores results in a 3.6x
speedup compared to Spark.
![](docs/source/_static/images/benchmark-results/0.5.0/tpch_allqueries.png)

Comet is not yet achieving full DataFusion speeds in all cases, but with future work we aim to provide a 2x-4x speedup
for a broader set of queries.
Here is a breakdown showing relative performance of Spark and Comet for each TPC-H query.

![](docs/source/_static/images/benchmark-results/0.4.0/tpch_allqueries.png)

Here is a breakdown showing relative performance of Spark, Comet, and DataFusion for each TPC-H query.

![](docs/source/_static/images/benchmark-results/0.4.0/tpch_queries_compare.png)
![](docs/source/_static/images/benchmark-results/0.5.0/tpch_queries_compare.png)

The following charts shows how much Comet currently accelerates each query from the benchmark.

### Relative speedup

![](docs/source/_static/images/benchmark-results/0.4.0/tpch_queries_speedup_rel.png)
![](docs/source/_static/images/benchmark-results/0.5.0/tpch_queries_speedup_rel.png)

### Absolute speedup

![](docs/source/_static/images/benchmark-results/0.4.0/tpch_queries_speedup_abs.png)
![](docs/source/_static/images/benchmark-results/0.5.0/tpch_queries_speedup_abs.png)

These benchmarks can be reproduced in any environment using the documentation in the
[Comet Benchmarking Guide](https://datafusion.apache.org/comet/contributor-guide/benchmarking.html). We encourage
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
209 changes: 209 additions & 0 deletions docs/source/contributor-guide/benchmark-results/0.5.0/comet-tpch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,209 @@
{
"engine": "datafusion-comet",
"benchmark": "tpch",
"data_path": "/mnt/bigdata/tpch/sf100/",
"query_path": "/home/andy/git/apache/datafusion-benchmarks/tpch/queries",
"spark_conf": {
"spark.comet.explain.native.enabled": "false",
"spark.eventLog.enabled": "true",
"spark.executor.extraClassPath": "/home/andy/git/apache/datafusion-comet/spark/target/comet-spark-spark3.4_2.12-0.5.0-SNAPSHOT.jar",
"spark.comet.explainFallback.enabled": "false",
"spark.comet.exec.replaceSortMergeJoin": "true",
"spark.comet.exec.shuffle.enabled": "true",
"spark.memory.offHeap.enabled": "true",
"spark.comet.exec.shuffle.compression.level": "1",
"spark.executor.memory": "16g",
"spark.app.name": "comet benchmark derived from tpch",
"spark.comet.batchSize": "8192",
"spark.app.startTime": "1736802464855",
"spark.comet.exec.shuffle.fallbackToColumnar": "true",
"spark.serializer.objectStreamReset": "100",
"spark.driver.host": "10.0.0.118",
"spark.comet.exec.shuffle.enableFastEncoding": "true",
"spark.submit.deployMode": "client",
"spark.driver.port": "33103",
"spark.comet.scan.impl": "native_comet",
"spark.driver.extraClassPath": "/home/andy/git/apache/datafusion-comet/spark/target/comet-spark-spark3.4_2.12-0.5.0-SNAPSHOT.jar",
"spark.executor.cores": "8",
"spark.comet.explain.verbose.enabled": "false",
"spark.driver.extraJavaOptions": "-Djava.net.preferIPv6Addresses=false -XX:+IgnoreUnrecognizedVMOptions --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED --add-opens=java.base/jdk.internal.ref=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.base/sun.nio.cs=ALL-UNNAMED --add-opens=java.base/sun.security.action=ALL-UNNAMED --add-opens=java.base/sun.util.calendar=ALL-UNNAMED --add-opens=java.security.jgss/sun.security.krb5=ALL-UNNAMED -Djdk.reflect.useDirectMethodHandle=false",
"spark.shuffle.manager": "org.apache.spark.sql.comet.execution.shuffle.CometShuffleManager",
"spark.comet.exec.enabled": "true",
"spark.sql.warehouse.dir": "file:/home/andy/git/personal/research/benchmarks/spark-standalone/spark-warehouse",
"spark.comet.scan.enabled": "true",
"spark.app.submitTime": "1736802464584",
"spark.executor.id": "driver",
"spark.master": "spark://woody:7077",
"spark.comet.exec.shuffle.mode": "auto",
"spark.sql.extensions": "org.apache.comet.CometSparkSessionExtensions",
"spark.driver.memory": "8G",
"spark.repl.local.jars": "file:///home/andy/git/apache/datafusion-comet/spark/target/comet-spark-spark3.4_2.12-0.5.0-SNAPSHOT.jar",
"spark.app.initial.jar.urls": "spark://10.0.0.118:33103/jars/comet-spark-spark3.4_2.12-0.5.0-SNAPSHOT.jar",
"spark.app.id": "app-20250113140745-0058",
"spark.rdd.compress": "True",
"spark.executor.extraJavaOptions": "-Djava.net.preferIPv6Addresses=false -XX:+IgnoreUnrecognizedVMOptions --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED --add-opens=java.base/jdk.internal.ref=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.base/sun.nio.cs=ALL-UNNAMED --add-opens=java.base/sun.security.action=ALL-UNNAMED --add-opens=java.base/sun.util.calendar=ALL-UNNAMED --add-opens=java.security.jgss/sun.security.krb5=ALL-UNNAMED -Djdk.reflect.useDirectMethodHandle=false",
"spark.executor.instances": "1",
"spark.cores.max": "8",
"spark.comet.enabled": "true",
"spark.submit.pyFiles": "",
"spark.comet.exec.sortMergeJoinWithJoinFilter.enabled": "false",
"spark.comet.exec.shuffle.compression.codec": "lz4",
"spark.jars": "file:///home/andy/git/apache/datafusion-comet/spark/target/comet-spark-spark3.4_2.12-0.5.0-SNAPSHOT.jar",
"spark.memory.offHeap.size": "16g",
"spark.comet.columnar.shuffle.batch.size": "8192"
},
"1": [
12.59755539894104,
10.855465650558472,
11.160947799682617,
11.323237657546997,
11.410452365875244
],
"2": [
6.155406475067139,
5.539891719818115,
5.698071002960205,
5.684133529663086,
5.742799758911133
],
"3": [
16.097025156021118,
14.982890367507935,
14.998259544372559,
15.659432649612427,
15.878185749053955
],
"4": [
10.319517850875854,
10.0553297996521,
10.136846780776978,
9.925675392150879,
10.140193462371826
],
"5": [
26.09030055999756,
25.57556390762329,
26.102373600006104,
26.540887117385864,
26.162983655929565
],
"6": [
2.691145658493042,
2.5986382961273193,
2.659151792526245,
2.6488683223724365,
2.6785433292388916
],
"7": [
15.326677560806274,
15.57035493850708,
16.023503065109253,
16.015883207321167,
15.79127025604248
],
"8": [
27.72478675842285,
27.45163321495056,
27.935590267181396,
27.86525869369507,
28.016165733337402
],
"9": [
39.186867237091064,
39.73552465438843,
40.866581439971924,
40.73869442939758,
40.89244842529297
],
"10": [
14.022773742675781,
14.476953029632568,
14.305155515670776,
14.187727451324463,
14.57831335067749
],
"11": [
5.223851919174194,
4.722897291183472,
4.844727277755737,
4.803720474243164,
4.822873592376709
],
"12": [
4.974349021911621,
5.013054132461548,
5.0682995319366455,
5.1071436405181885,
5.142468452453613
],
"13": [
9.769477128982544,
9.743404626846313,
9.935744285583496,
9.966437339782715,
9.854998588562012
],
"14": [
5.320314168930054,
5.26824426651001,
5.269179344177246,
5.322073698043823,
5.292902708053589
],
"15": [
9.532674789428711,
9.520610570907593,
9.538906335830688,
9.553953886032104,
9.65409803390503
],
"16": [
5.146467924118042,
4.716687440872192,
4.863113164901733,
4.725494384765625,
4.653785228729248
],
"17": [
30.45087242126465,
30.785797119140625,
30.950777530670166,
31.04833745956421,
31.12831139564514
],
"18": [
27.549716472625732,
27.610363960266113,
27.41417407989502,
27.633289098739624,
27.72838020324707
],
"19": [
5.9813477993011475,
6.041543483734131,
6.087557554244995,
6.106397390365601,
6.011293888092041
],
"20": [
10.53919005393982,
10.382107019424438,
10.370867729187012,
10.376642942428589,
10.48800802230835
],
"21": [
42.36113142967224,
42.296979904174805,
42.56899857521057,
42.587459564208984,
42.86927652359009
],
"22": [
3.755877733230591,
3.523585319519043,
3.5420711040496826,
3.605468273162842,
3.6084585189819336
]
}
Loading