From 08d892a21e853d0daa7afcd68cd97042dfb54bfa Mon Sep 17 00:00:00 2001 From: Andy Grove Date: Tue, 14 Jan 2025 07:47:15 -0700 Subject: [PATCH] update TPC-DS results for 0.5.0 (#1277) --- .../0.5.0/tpcds_allqueries.png | Bin 0 -> 27773 bytes .../0.5.0/tpcds_queries_compare.png | Bin 0 -> 42959 bytes .../0.5.0/tpcds_queries_speedup_abs.png | Bin 0 -> 66470 bytes .../0.5.0/tpcds_queries_speedup_rel.png | Bin 0 -> 91701 bytes .../benchmark-results/0.5.0/comet-tpcds.json | 744 ++++++++++++++++++ .../benchmark-results/0.5.0/spark-tpcds.json | 722 +++++++++++++++++ .../benchmark-results/tpc-ds.md | 12 +- 7 files changed, 1472 insertions(+), 6 deletions(-) create mode 100644 docs/source/_static/images/benchmark-results/0.5.0/tpcds_allqueries.png create mode 100644 docs/source/_static/images/benchmark-results/0.5.0/tpcds_queries_compare.png create mode 100644 docs/source/_static/images/benchmark-results/0.5.0/tpcds_queries_speedup_abs.png create mode 100644 docs/source/_static/images/benchmark-results/0.5.0/tpcds_queries_speedup_rel.png create mode 100644 docs/source/contributor-guide/benchmark-results/0.5.0/comet-tpcds.json create mode 100644 docs/source/contributor-guide/benchmark-results/0.5.0/spark-tpcds.json diff --git a/docs/source/_static/images/benchmark-results/0.5.0/tpcds_allqueries.png b/docs/source/_static/images/benchmark-results/0.5.0/tpcds_allqueries.png new file mode 100644 index 0000000000000000000000000000000000000000..3fd6440953866f0808a04939d19a659b931c14e6 GIT binary patch literal 27773 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 L?+dydsL%fgR1x7I literal 0 HcmV?d00001 diff --git a/docs/source/_static/images/benchmark-results/0.5.0/tpcds_queries_compare.png b/docs/source/_static/images/benchmark-results/0.5.0/tpcds_queries_compare.png new file mode 100644 index 0000000000000000000000000000000000000000..f83a0b4b707e3b6b1d1406c88bffcd79787c08d0 GIT binary patch literal 42959 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

^?m(e3pf{tFZ0vvGzB!z7V= zR}v)1ik{&YPmm+*tBo?UDMdmQAXLVguj5?H%^R;2T{KWLR z>nAT8nENa(=#TaafVbp>H<6Hi;nMK>&8;gE_=a9}v{IpNm(X73YalntoZ_+awR^KH zYXSu4UoMHyh0|#?bbt8$-|=%~lRil!U;xFKs|at8!L_%%@vB!A#+?#?!7=6wsEyjm zM=LiL!1PFc1@6gj0jw|_9%;XJq}4*{FzwwFbVbfWn!tBnVH!f;P`uR zz)M5#V=tT$Bm!PP*?7g+t`s4q`Fp;mhFo=umoDMvLF)K_x!?8c{{O)nG60?QzF#OuWOn=K8X}Igx za0{tpSuf9;`E1}@AS!VTj#GSW$0%$FFC_GGDx<`*X{s_#%=>b(O5ReHA>ViB1Xqcs z-#;-h3LYiyfc83^9GTe>xQLuw10_w38{3n%1jMghIiy`&j5I9wx}2kF5*x^B3n(CC z&&!SO>taChJp-e80$xEBiH**n9KZw?2Fs(}j>ISsAz^j*<0~158^FgH!mj9eXTC*v zUW0Wid$wQDWL4R`*Gb}n;9~OP07T2k=8J1(!F65TN7BCk13|juQ79pNsz#A|E~+HD%0l zoy9S=F%BH`(bd&$o>pwu*>5tqQ@5F=vG(g@yY9^nrnH<&@#Pp#`@BWumSnC1oeaxu z&{7engvW4Hh)&vtm4c?We(YJ++`}pDs!;Kvj=ngdtt;eveiE>EEmm1Bs9aR;oLDmI z&RTDV0ycRj>@2`-3l^K-4FR!xhfNJN+BgJ*D!6e#nek&bsT0U4D{(|?RI_8!1j(t zI1@>14{$U$jTr4VehT*uByNyWjGQ38H;@ZJ0WDn#XdZubp%)RL5;6~Ram0}E$=q-}}<4tO^AA6W}|kB@}G z0ZW2tuf@?dJ-M%V(TW}af&s!H3m>c-buA(-}%lq#5500 z1DzLYT>tt@V&l1Jz_r8^beNy?pR3 zWuwj@Zo(|*ZYcYB7C(N;*~hwcyeaFl&e5aXpv-DKk_AS(2V_JQ!FdUj0&~Kc=d z@D�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 RYg(}*`o|CDe|hS={{~bb-P-^F literal 0 HcmV?d00001 diff --git a/docs/source/contributor-guide/benchmark-results/0.5.0/comet-tpcds.json b/docs/source/contributor-guide/benchmark-results/0.5.0/comet-tpcds.json new file mode 100644 index 0000000000..8d249e3c7d --- /dev/null +++ b/docs/source/contributor-guide/benchmark-results/0.5.0/comet-tpcds.json @@ -0,0 +1,744 @@ +{ + "engine": "datafusion-comet", + "benchmark": "tpcds", + "data_path": "/mnt/bigdata/tpcds/sf100/", + "query_path": "../../tpcds/", + "spark_conf": { + "spark.executor.memoryOverhead": "4914M", + "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.cast.allowIncompatible": "true", + "spark.app.submitTime": "1736811668530", + "spark.comet.explainFallback.enabled": "false", + "spark.cores.max": "16", + "spark.comet.exec.shuffle.enabled": "true", + "spark.app.startTime": "1736811668800", + "spark.memory.offHeap.enabled": "true", + "spark.driver.port": "42815", + "spark.executor.instances": "2", + "spark.executor.memory": "16G", + "spark.comet.exec.shuffle.fallbackToColumnar": "true", + "spark.serializer.objectStreamReset": "100", + "spark.driver.host": "10.0.0.118", + "spark.submit.deployMode": "client", + "spark.executor.cores": "8", + "spark.driver.extraClassPath": "/home/andy/git/apache/datafusion-comet/spark/target/comet-spark-spark3.4_2.12-0.5.0-SNAPSHOT.jar", + "spark.app.id": "app-20250113164109-0060", + "spark.comet.exec.replaceSortMergeJoin": "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.driver.maxResultSize": "2G", + "spark.shuffle.manager": "org.apache.spark.sql.comet.execution.shuffle.CometShuffleManager", + "spark.sql.warehouse.dir": "file:/home/andy/git/personal/research/benchmarks/spark-standalone/spark-warehouse", + "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.plugins": "org.apache.spark.CometPlugin", + "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.memory.offHeap.size": "24g", + "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.comet.enabled": "true", + "spark.submit.pyFiles": "", + "spark.app.name": "comet benchmark derived from tpcds", + "spark.comet.exec.sortMergeJoinWithJoinFilter.enabled": "false", + "spark.app.initial.jar.urls": "spark://10.0.0.118:42815/jars/comet-spark-spark3.4_2.12-0.5.0-SNAPSHOT.jar", + "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.comet.explain.native.enabled": "false" + }, + "1": [ + 4.536968469619751, + 1.3565826416015625, + 1.338052749633789, + 1.4378666877746582, + 1.3548147678375244 + ], + "2": [ + 3.3205230236053467, + 2.462737798690796, + 2.488901376724243, + 2.5463438034057617, + 2.527088165283203 + ], + "3": [ + 1.6579983234405518, + 1.47391939163208, + 1.4881572723388672, + 1.484151840209961, + 1.5221748352050781 + ], + "4": [ + 34.67596936225891, + 33.768837451934814, + 34.09213376045227, + 34.43401646614075, + 34.43135046958923 + ], + "5": [ + 6.600037097930908, + 6.366944074630737, + 6.282367467880249, + 6.359925985336304, + 6.503366231918335 + ], + "6": [ + 1.7636768817901611, + 1.6569476127624512, + 1.564842939376831, + 1.6130192279815674, + 1.562074899673462 + ], + "7": [ + 3.080796480178833, + 3.0056214332580566, + 3.1245322227478027, + 3.1279425621032715, + 3.1556527614593506 + ], + "8": [ + 1.871955394744873, + 1.6913323402404785, + 1.6697134971618652, + 1.7257518768310547, + 1.782395839691162 + ], + "9": [ + 6.713606357574463, + 6.480487108230591, + 6.67946982383728, + 6.535262823104858, + 6.520689249038696 + ], + "10": [ + 2.2367494106292725, + 2.069857120513916, + 2.1344666481018066, + 2.0363876819610596, + 2.0629072189331055 + ], + "11": [ + 13.441156148910522, + 13.661643505096436, + 13.749130487442017, + 13.663432121276855, + 13.914729118347168 + ], + "12": [ + 1.4952607154846191, + 1.327760934829712, + 1.3590035438537598, + 1.3424949645996094, + 1.3338284492492676 + ], + "13": [ + 4.1215620040893555, + 4.143518447875977, + 4.115273952484131, + 4.1204657554626465, + 4.203814268112183 + ], + "14": [ + 27.271831274032593, + 27.740113973617554, + 27.78661036491394, + 28.459989070892334, + 28.01462411880493 + ], + "15": [ + 3.972994327545166, + 4.010797739028931, + 4.036948204040527, + 4.097492933273315, + 4.126002788543701 + ], + "16": [ + 9.47628664970398, + 9.299378871917725, + 9.3838791847229, + 9.37733244895935, + 9.319334745407104 + ], + "17": [ + 3.5423672199249268, + 3.4606869220733643, + 3.5566649436950684, + 3.574188709259033, + 3.5854296684265137 + ], + "18": [ + 3.558619499206543, + 3.7194430828094482, + 3.720961332321167, + 3.7957425117492676, + 3.7437338829040527 + ], + "19": [ + 4.280632495880127, + 4.2238616943359375, + 4.188013792037964, + 4.338703155517578, + 4.348641633987427 + ], + "20": [ + 2.1416103839874268, + 2.134965419769287, + 2.132283926010132, + 2.2123031616210938, + 2.1274831295013428 + ], + "21": [ + 1.6397242546081543, + 1.6214661598205566, + 1.5790197849273682, + 1.5165207386016846, + 1.5434236526489258 + ], + "22": [ + 7.052053689956665, + 7.3520801067352295, + 7.85315465927124, + 7.75153112411499, + 7.7829179763793945 + ], + "23": [ + 43.88178491592407, + 44.70656991004944, + 44.685741901397705, + 45.05996298789978, + 44.751373291015625 + ], + "24": [ + 16.058145999908447, + 16.151873111724854, + 16.42806100845337, + 16.49088191986084, + 16.125349283218384 + ], + "25": [ + 3.971809148788452, + 4.022783279418945, + 3.9840853214263916, + 4.052400588989258, + 4.11824893951416 + ], + "26": [ + 1.5638508796691895, + 1.5986883640289307, + 1.596513271331787, + 1.7379155158996582, + 1.6375956535339355 + ], + "27": [ + 2.977374315261841, + 3.2149150371551514, + 3.2501866817474365, + 3.2618322372436523, + 3.1989095211029053 + ], + "28": [ + 6.967320203781128, + 6.830939769744873, + 6.937035799026489, + 7.009445428848267, + 7.003203392028809 + ], + "29": [ + 5.793797969818115, + 5.6882500648498535, + 5.628785848617554, + 5.72254753112793, + 5.698575019836426 + ], + "30": [ + 1.488220453262329, + 1.3394947052001953, + 1.3159022331237793, + 1.3776261806488037, + 1.3321137428283691 + ], + "31": [ + 9.204715251922607, + 8.69102168083191, + 8.614688873291016, + 8.787571668624878, + 8.771551370620728 + ], + "32": [ + 2.203498125076294, + 2.1785271167755127, + 2.0557124614715576, + 2.211980104446411, + 2.1879453659057617 + ], + "33": [ + 3.9984161853790283, + 4.1804728507995605, + 4.131994247436523, + 4.213898658752441, + 4.188544034957886 + ], + "34": [ + 1.875131368637085, + 1.9190173149108887, + 1.9300975799560547, + 1.9599437713623047, + 1.869981288909912 + ], + "35": [ + 3.308222532272339, + 3.061551332473755, + 3.043506145477295, + 3.083115577697754, + 3.160632371902466 + ], + "36": [ + 3.769775629043579, + 3.782244920730591, + 3.828948736190796, + 3.8956804275512695, + 3.8769822120666504 + ], + "37": [ + 2.8596391677856445, + 2.8715765476226807, + 2.8092164993286133, + 2.891303777694702, + 2.855314254760742 + ], + "38": [ + 3.4315402507781982, + 3.4382240772247314, + 3.4430289268493652, + 3.531895637512207, + 3.455247163772583 + ], + "39": [ + 19.4264817237854, + 20.363921403884888, + 19.874735593795776, + 19.83957862854004, + 19.403523683547974 + ], + "40": [ + 5.129716634750366, + 5.0438196659088135, + 5.126132249832153, + 5.1094677448272705, + 5.055907487869263 + ], + "41": [ + 0.14982271194458008, + 0.1292414665222168, + 0.16390562057495117, + 0.134552001953125, + 0.12277865409851074 + ], + "42": [ + 1.2786576747894287, + 1.2783203125, + 1.3130738735198975, + 1.3072741031646729, + 1.3132829666137695 + ], + "43": [ + 1.6863470077514648, + 1.6458985805511475, + 1.7347028255462646, + 1.765425682067871, + 1.7646584510803223 + ], + "44": [ + 2.0259382724761963, + 2.0535051822662354, + 1.9940221309661865, + 2.0074307918548584, + 1.9784820079803467 + ], + "45": [ + 2.4755594730377197, + 2.326653003692627, + 2.3411612510681152, + 2.347200632095337, + 2.477112054824829 + ], + "46": [ + 3.9604787826538086, + 3.8620941638946533, + 3.7819931507110596, + 3.939593553543091, + 3.838043451309204 + ], + "47": [ + 7.505825996398926, + 7.342543125152588, + 7.576608657836914, + 7.725332736968994, + 7.735831260681152 + ], + "48": [ + 2.8078317642211914, + 2.809493064880371, + 2.826028347015381, + 2.9383201599121094, + 2.9243483543395996 + ], + "49": [ + 7.083904266357422, + 7.132755279541016, + 6.944513320922852, + 6.931026935577393, + 6.920399188995361 + ], + "50": [ + 6.608541250228882, + 7.139689922332764, + 6.71970796585083, + 6.847019195556641, + 6.901025772094727 + ], + "51": [ + 7.687297344207764, + 7.605288982391357, + 7.882007360458374, + 7.688341856002808, + 7.858721017837524 + ], + "52": [ + 1.515904188156128, + 1.5196130275726318, + 1.5246155261993408, + 1.539452314376831, + 1.529005765914917 + ], + "53": [ + 1.6835079193115234, + 1.7078402042388916, + 1.7528693675994873, + 1.754622459411621, + 1.801300287246704 + ], + "54": [ + 4.626687288284302, + 4.8692405223846436, + 4.670963764190674, + 4.76296854019165, + 4.630118370056152 + ], + "55": [ + 1.5379326343536377, + 1.559366226196289, + 1.585902452468872, + 1.5425207614898682, + 1.5508875846862793 + ], + "56": [ + 3.372633457183838, + 3.4592878818511963, + 3.4758856296539307, + 3.563056707382202, + 3.5439987182617188 + ], + "57": [ + 3.630242109298706, + 3.5384538173675537, + 3.5876047611236572, + 3.6837234497070312, + 3.6626791954040527 + ], + "58": [ + 6.306454181671143, + 6.243661642074585, + 6.297546148300171, + 6.354742050170898, + 6.31113076210022 + ], + "59": [ + 3.9262125492095947, + 3.9229207038879395, + 3.985262632369995, + 4.089562892913818, + 4.107280969619751 + ], + "60": [ + 3.506413698196411, + 3.5923097133636475, + 3.5940756797790527, + 3.6000287532806396, + 3.6011013984680176 + ], + "61": [ + 7.301086664199829, + 7.541475057601929, + 7.927215576171875, + 7.743303298950195, + 7.7511231899261475 + ], + "62": [ + 1.0287232398986816, + 1.033036708831787, + 1.0503861904144287, + 1.053584337234497, + 1.036078929901123 + ], + "63": [ + 1.6723690032958984, + 1.7417714595794678, + 1.97025728225708, + 1.807016372680664, + 1.8281068801879883 + ], + "64": [ + 15.89651346206665, + 15.665365934371948, + 16.01818823814392, + 15.994118690490723, + 16.00064516067505 + ], + "65": [ + 7.785307884216309, + 7.80276894569397, + 7.865602016448975, + 7.857702016830444, + 7.766430616378784 + ], + "66": [ + 3.1051344871520996, + 3.1696081161499023, + 3.300004243850708, + 3.5985312461853027, + 3.43051815032959 + ], + "67": [ + 30.156902551651, + 30.163670778274536, + 30.0355327129364, + 30.676511764526367, + 30.507113456726074 + ], + "68": [ + 4.870973825454712, + 4.989592552185059, + 4.550822973251343, + 4.479772329330444, + 5.1386706829071045 + ], + "69": [ + 2.1566920280456543, + 2.2332279682159424, + 2.0824127197265625, + 2.211796998977661, + 2.105759620666504 + ], + "70": [ + 3.654249668121338, + 3.706080198287964, + 3.664548873901367, + 3.912018299102783, + 3.7903084754943848 + ], + "71": [ + 3.5541186332702637, + 3.5453219413757324, + 3.483576536178589, + 3.603425979614258, + 3.5967133045196533 + ], + "72": [ + 85.7537453174591, + 84.34932899475098, + 85.4409408569336, + 82.9489848613739, + 86.19663500785828 + ], + "73": [ + 1.5869219303131104, + 1.5673043727874756, + 1.5760784149169922, + 1.6549866199493408, + 1.6651747226715088 + ], + "74": [ + 9.591845989227295, + 9.609638690948486, + 9.660242319107056, + 9.578797101974487, + 9.830672264099121 + ], + "75": [ + 12.06259274482727, + 12.131521224975586, + 12.339975833892822, + 12.526771783828735, + 12.704570055007935 + ], + "76": [ + 3.1800994873046875, + 3.1969289779663086, + 3.2074594497680664, + 3.249382495880127, + 3.2397830486297607 + ], + "77": [ + 3.9328701496124268, + 3.8905186653137207, + 4.043585777282715, + 4.000932216644287, + 4.100231409072876 + ], + "78": [ + 19.32929301261902, + 18.75995111465454, + 19.079716444015503, + 18.925426721572876, + 19.023631811141968 + ], + "79": [ + 2.897693157196045, + 3.135042667388916, + 3.0352957248687744, + 3.0536019802093506, + 3.0584769248962402 + ], + "80": [ + 15.195313692092896, + 15.409253120422363, + 15.783752918243408, + 15.655308961868286, + 15.55367660522461 + ], + "81": [ + 1.6697850227355957, + 1.6849262714385986, + 1.7256522178649902, + 1.6104223728179932, + 1.5729634761810303 + ], + "82": [ + 4.702307462692261, + 4.762118101119995, + 4.631009101867676, + 4.632325172424316, + 4.699774742126465 + ], + "83": [ + 0.9655017852783203, + 0.964923620223999, + 1.0950005054473877, + 0.9366519451141357, + 0.9813294410705566 + ], + "84": [ + 0.8160817623138428, + 0.7901313304901123, + 0.9309515953063965, + 0.7813336849212646, + 0.8049192428588867 + ], + "85": [ + 2.1436941623687744, + 2.0501821041107178, + 2.3379878997802734, + 2.2173709869384766, + 2.0497560501098633 + ], + "86": [ + 0.8833699226379395, + 0.8855693340301514, + 1.003610610961914, + 0.9266695976257324, + 0.8708605766296387 + ], + "87": [ + 3.5058393478393555, + 3.5163745880126953, + 3.8271989822387695, + 3.621147632598877, + 3.5709948539733887 + ], + "88": [ + 6.482669115066528, + 6.477633714675903, + 6.942981958389282, + 6.804642677307129, + 6.639838457107544 + ], + "89": [ + 2.1237101554870605, + 2.126112461090088, + 2.1807539463043213, + 2.172977924346924, + 2.20328426361084 + ], + "90": [ + 0.5848908424377441, + 0.5502984523773193, + 0.6235551834106445, + 0.569770336151123, + 0.5719239711761475 + ], + "91": [ + 0.6266171932220459, + 0.5699453353881836, + 0.6588234901428223, + 0.6302447319030762, + 0.6418545246124268 + ], + "92": [ + 0.8711974620819092, + 0.8485770225524902, + 0.8334972858428955, + 0.8226969242095947, + 0.8113462924957275 + ], + "93": [ + 9.335367202758789, + 9.483666181564331, + 9.641432046890259, + 9.4573495388031, + 9.48092794418335 + ], + "94": [ + 5.219858884811401, + 5.30799126625061, + 5.2076966762542725, + 5.314690589904785, + 5.152010202407837 + ], + "95": [ + 20.359986066818237, + 19.688702821731567, + 20.081215381622314, + 19.575989961624146, + 21.01106309890747 + ], + "96": [ + 0.8545236587524414, + 0.8409044742584229, + 0.8572230339050293, + 0.8502027988433838, + 0.9349768161773682 + ], + "97": [ + 5.144511938095093, + 5.298552751541138, + 5.229865789413452, + 5.0392138957977295, + 5.193090915679932 + ], + "98": [ + 4.391782283782959, + 4.436994552612305, + 4.410702705383301, + 4.459229946136475, + 4.5571510791778564 + ], + "99": [ + 1.6422052383422852, + 1.5400826930999756, + 1.5657870769500732, + 1.5555531978607178, + 1.582702398300171 + ] +} \ No newline at end of file diff --git a/docs/source/contributor-guide/benchmark-results/0.5.0/spark-tpcds.json b/docs/source/contributor-guide/benchmark-results/0.5.0/spark-tpcds.json new file mode 100644 index 0000000000..f3e3b6c323 --- /dev/null +++ b/docs/source/contributor-guide/benchmark-results/0.5.0/spark-tpcds.json @@ -0,0 +1,722 @@ +{ + "engine": "datafusion-comet", + "benchmark": "tpcds", + "data_path": "/mnt/bigdata/tpcds/sf100/", + "query_path": "../../tpcds/", + "spark_conf": { + "spark.eventLog.enabled": "true", + "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.sql.warehouse.dir": "file:/home/andy/git/personal/research/benchmarks/spark-standalone/spark-warehouse", + "spark.cores.max": "16", + "spark.executor.id": "driver", + "spark.master": "spark://woody:7077", + "spark.app.submitTime": "1736815365737", + "spark.driver.memory": "8G", + "spark.executor.memory": "32G", + "spark.app.startTime": "1736815366015", + "spark.rdd.compress": "True", + "spark.executor.instances": "2", + "spark.app.id": "app-20250113174246-0062", + "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.serializer.objectStreamReset": "100", + "spark.driver.host": "10.0.0.118", + "spark.driver.port": "43797", + "spark.submit.pyFiles": "", + "spark.submit.deployMode": "client", + "spark.app.name": "spark benchmark derived from tpcds", + "spark.executor.cores": "8" + }, + "1": [ + 5.2619593143463135, + 1.960148811340332, + 2.1967520713806152, + 2.1494410037994385, + 1.9935636520385742 + ], + "2": [ + 3.4253926277160645, + 2.6879563331604004, + 2.561516046524048, + 2.5716545581817627, + 2.563164710998535 + ], + "3": [ + 1.5403835773468018, + 1.4260897636413574, + 1.2098140716552734, + 1.2134122848510742, + 1.208524227142334 + ], + "4": [ + 56.53691649436951, + 56.77414393424988, + 56.02755045890808, + 56.025816440582275, + 56.88295769691467 + ], + "5": [ + 10.489055871963501, + 9.67568039894104, + 9.388097763061523, + 9.27160382270813, + 9.536203384399414 + ], + "6": [ + 2.1579461097717285, + 1.9873638153076172, + 1.9221436977386475, + 1.9461965560913086, + 2.0963733196258545 + ], + "7": [ + 3.032843828201294, + 2.7287216186523438, + 2.9177908897399902, + 2.675243616104126, + 2.7577996253967285 + ], + "8": [ + 2.2934205532073975, + 2.0310394763946533, + 1.994276762008667, + 1.9520981311798096, + 2.4081742763519287 + ], + "9": [ + 5.7878358364105225, + 5.4902870655059814, + 5.461946725845337, + 5.400648593902588, + 5.5186686515808105 + ], + "10": [ + 2.3901453018188477, + 2.212461233139038, + 2.298922538757324, + 2.1111397743225098, + 2.4135324954986572 + ], + "11": [ + 17.00469183921814, + 17.168133020401, + 15.51388955116272, + 14.93636679649353, + 15.758571863174438 + ], + "12": [ + 1.1017069816589355, + 0.9583470821380615, + 0.9638540744781494, + 0.9336667060852051, + 1.1460154056549072 + ], + "13": [ + 4.34652304649353, + 4.188030481338501, + 3.886648416519165, + 3.856201171875, + 4.094677209854126 + ], + "14": [ + 44.88281464576721, + 44.40218901634216, + 43.64497995376587, + 43.865254640579224, + 44.34578776359558 + ], + "15": [ + 3.323901414871216, + 3.366013765335083, + 3.1583144664764404, + 3.360898971557617, + 3.554365396499634 + ], + "16": [ + 12.555872917175293, + 13.052572965621948, + 12.834516048431396, + 12.673231363296509, + 12.716522216796875 + ], + "17": [ + 4.7320332527160645, + 4.594316720962524, + 4.3970723152160645, + 4.33561897277832, + 4.495761871337891 + ], + "18": [ + 3.5807242393493652, + 3.535151481628418, + 3.6561989784240723, + 3.8135147094726562, + 3.7007369995117188 + ], + "19": [ + 2.4516489505767822, + 2.5885403156280518, + 2.571218729019165, + 2.6798818111419678, + 2.587368965148926 + ], + "20": [ + 1.1769890785217285, + 1.084374189376831, + 1.1451663970947266, + 1.0745131969451904, + 1.0696895122528076 + ], + "21": [ + 2.2724456787109375, + 1.6616766452789307, + 2.0807278156280518, + 1.9577069282531738, + 1.7267327308654785 + ], + "22": [ + 21.127835512161255, + 21.504271745681763, + 20.774054765701294, + 20.130521297454834, + 21.08124542236328 + ], + "23": [ + 104.4822952747345, + 102.66089034080505, + 101.6080904006958, + 101.47286200523376, + 102.44011735916138 + ], + "24": [ + 15.568699359893799, + 15.30924916267395, + 14.502421855926514, + 14.607846736907959, + 15.179453611373901 + ], + "25": [ + 4.512059450149536, + 4.125646352767944, + 4.210487365722656, + 4.141698598861694, + 4.136176586151123 + ], + "26": [ + 2.0296761989593506, + 1.7046644687652588, + 1.8830039501190186, + 1.9740185737609863, + 1.7992558479309082 + ], + "27": [ + 2.637375831604004, + 2.3286960124969482, + 2.4201674461364746, + 2.5083210468292236, + 2.554165840148926 + ], + "28": [ + 8.454154253005981, + 8.10464596748352, + 8.339635848999023, + 8.20319676399231, + 8.14726972579956 + ], + "29": [ + 5.196781158447266, + 4.76829719543457, + 4.92963433265686, + 4.789939880371094, + 4.786316633224487 + ], + "30": [ + 2.0309393405914307, + 1.8231163024902344, + 2.189394235610962, + 1.9110958576202393, + 1.9947915077209473 + ], + "31": [ + 5.668262720108032, + 5.5171403884887695, + 5.473530292510986, + 5.337523460388184, + 5.736505746841431 + ], + "32": [ + 1.852400779724121, + 1.6409556865692139, + 1.7917094230651855, + 1.6856303215026855, + 1.6647214889526367 + ], + "33": [ + 3.3466131687164307, + 2.9173898696899414, + 2.859670639038086, + 2.8988308906555176, + 2.7332468032836914 + ], + "34": [ + 1.7460660934448242, + 1.8845741748809814, + 1.580057144165039, + 1.7185635566711426, + 1.5153119564056396 + ], + "35": [ + 3.7872586250305176, + 3.661235809326172, + 3.492677927017212, + 3.553354501724243, + 3.6253058910369873 + ], + "36": [ + 2.4619619846343994, + 2.133469343185425, + 2.03787899017334, + 2.0881924629211426, + 2.1240320205688477 + ], + "37": [ + 4.0605480670928955, + 3.6801133155822754, + 3.9225871562957764, + 3.9400532245635986, + 3.707016944885254 + ], + "38": [ + 6.2957329750061035, + 5.905467987060547, + 5.979095220565796, + 7.394719839096069, + 5.790559530258179 + ], + "39": [ + 8.440297603607178, + 8.22698163986206, + 8.441386938095093, + 8.33523440361023, + 8.563800573348999 + ], + "40": [ + 7.396990537643433, + 7.279749631881714, + 7.595478773117065, + 7.514429807662964, + 7.445756912231445 + ], + "41": [ + 0.23249292373657227, + 0.20892643928527832, + 0.23296880722045898, + 0.2194194793701172, + 0.21021556854248047 + ], + "42": [ + 1.1865589618682861, + 1.1890931129455566, + 1.2970597743988037, + 1.2622613906860352, + 1.2915732860565186 + ], + "43": [ + 1.297257900238037, + 1.3796677589416504, + 1.23530912399292, + 1.2672350406646729, + 1.2549505233764648 + ], + "44": [ + 0.941680908203125, + 0.8873088359832764, + 0.9511497020721436, + 0.949620246887207, + 0.9585254192352295 + ], + "45": [ + 2.0431082248687744, + 1.9389359951019287, + 1.8346209526062012, + 1.8326334953308105, + 1.9307496547698975 + ], + "46": [ + 2.762038230895996, + 2.790123224258423, + 2.7187981605529785, + 2.74556303024292, + 2.5963001251220703 + ], + "47": [ + 4.917082786560059, + 4.889256000518799, + 5.025712728500366, + 4.852914333343506, + 4.931396484375 + ], + "48": [ + 8.931923627853394, + 8.777977705001831, + 8.91053819656372, + 8.892403841018677, + 8.816314935684204 + ], + "49": [ + 7.473886251449585, + 7.176199197769165, + 7.320720434188843, + 7.655316352844238, + 7.141919136047363 + ], + "50": [ + 10.274503707885742, + 10.186567068099976, + 10.226274490356445, + 10.341506004333496, + 10.175342321395874 + ], + "51": [ + 13.496302127838135, + 13.125258922576904, + 13.10242748260498, + 13.413541078567505, + 13.212175369262695 + ], + "52": [ + 1.303222894668579, + 1.4358396530151367, + 1.4652376174926758, + 1.3406119346618652, + 1.5421879291534424 + ], + "53": [ + 1.8200466632843018, + 1.7202496528625488, + 1.773848533630371, + 1.7078053951263428, + 1.649254322052002 + ], + "54": [ + 3.2271203994750977, + 3.08542799949646, + 3.0598156452178955, + 3.265996217727661, + 2.9859659671783447 + ], + "55": [ + 1.4394917488098145, + 1.4950504302978516, + 1.499817132949829, + 1.3825452327728271, + 1.3539316654205322 + ], + "56": [ + 2.7544610500335693, + 2.6781766414642334, + 2.6310033798217773, + 2.745976209640503, + 2.5964338779449463 + ], + "57": [ + 3.1029934883117676, + 3.2437119483947754, + 3.088554859161377, + 2.882737636566162, + 3.0023646354675293 + ], + "58": [ + 3.291809558868408, + 3.0720701217651367, + 3.1128735542297363, + 2.799436569213867, + 3.03535532951355 + ], + "59": [ + 3.6170177459716797, + 3.502054214477539, + 3.6569032669067383, + 3.454932689666748, + 3.7024710178375244 + ], + "60": [ + 2.3729071617126465, + 2.374262809753418, + 2.363983392715454, + 2.4041998386383057, + 2.2664554119110107 + ], + "61": [ + 3.4571456909179688, + 3.543290138244629, + 3.4700188636779785, + 3.515277147293091, + 3.5213046073913574 + ], + "62": [ + 1.141568899154663, + 1.1349658966064453, + 1.154313087463379, + 1.1754529476165771, + 1.1065878868103027 + ], + "63": [ + 1.536681890487671, + 1.5299901962280273, + 1.5405244827270508, + 1.6240346431732178, + 1.5590183734893799 + ], + "64": [ + 22.64835238456726, + 21.65506911277771, + 22.328132152557373, + 22.563674449920654, + 22.57821035385132 + ], + "65": [ + 10.918822765350342, + 10.771467447280884, + 10.830023527145386, + 10.823500871658325, + 10.827515602111816 + ], + "66": [ + 3.189873695373535, + 3.2264277935028076, + 3.0621445178985596, + 3.1594581604003906, + 3.149355173110962 + ], + "67": [ + 80.8468451499939, + 79.63782620429993, + 79.21770143508911, + 80.91981196403503, + 79.78550696372986 + ], + "68": [ + 2.941169500350952, + 2.8041577339172363, + 2.956421375274658, + 2.7988245487213135, + 2.732013463973999 + ], + "69": [ + 2.204758405685425, + 2.115067720413208, + 2.287461280822754, + 2.1623363494873047, + 2.3425257205963135 + ], + "70": [ + 2.833672523498535, + 2.9473845958709717, + 2.8611886501312256, + 2.8069379329681396, + 2.874908685684204 + ], + "71": [ + 2.9525787830352783, + 2.8629682064056396, + 2.8824713230133057, + 2.9291234016418457, + 2.9217307567596436 + ], + "72": [ + 92.81920456886292, + 90.03170561790466, + 88.50960922241211, + 88.13007974624634, + 89.58278608322144 + ], + "73": [ + 1.395726203918457, + 1.3789515495300293, + 1.3403804302215576, + 1.4275565147399902, + 1.6597483158111572 + ], + "74": [ + 20.643322706222534, + 18.648181676864624, + 20.02110981941223, + 20.94976043701172, + 18.866977214813232 + ], + "75": [ + 12.679317951202393, + 12.062625408172607, + 12.371514558792114, + 11.771496057510376, + 11.608371257781982 + ], + "76": [ + 3.0363106727600098, + 3.0028562545776367, + 3.063755750656128, + 2.8598508834838867, + 3.0945818424224854 + ], + "77": [ + 3.665741443634033, + 3.4514997005462646, + 3.597266435623169, + 3.332911968231201, + 3.495286464691162 + ], + "78": [ + 31.306552410125732, + 31.237448930740356, + 32.20013928413391, + 30.75121283531189, + 30.8237726688385 + ], + "79": [ + 2.084214925765991, + 2.194493532180786, + 2.1290676593780518, + 2.12060284614563, + 2.1929309368133545 + ], + "80": [ + 25.5107364654541, + 26.140331983566284, + 25.496628046035767, + 26.28699231147766, + 25.533350229263306 + ], + "81": [ + 2.231703996658325, + 2.351255416870117, + 2.2447509765625, + 2.3641414642333984, + 2.3690547943115234 + ], + "82": [ + 7.771524667739868, + 7.738788366317749, + 7.6906514167785645, + 7.706395387649536, + 7.73229455947876 + ], + "83": [ + 1.6065571308135986, + 1.6151466369628906, + 1.8333814144134521, + 1.5380127429962158, + 1.8119380474090576 + ], + "84": [ + 1.2147200107574463, + 1.3057491779327393, + 1.379417896270752, + 1.3735690116882324, + 1.3126640319824219 + ], + "85": [ + 4.671465635299683, + 5.442366600036621, + 4.581593990325928, + 4.7632105350494385, + 4.413646936416626 + ], + "86": [ + 1.0525786876678467, + 0.9334254264831543, + 0.8857343196868896, + 0.9687070846557617, + 0.943767786026001 + ], + "87": [ + 6.769503355026245, + 6.3070619106292725, + 6.363903284072876, + 6.062292098999023, + 6.507101058959961 + ], + "88": [ + 5.166539907455444, + 5.316728830337524, + 5.028919696807861, + 4.994849681854248, + 5.05009126663208 + ], + "89": [ + 1.8866407871246338, + 1.8803751468658447, + 1.8070712089538574, + 1.9447128772735596, + 1.8955137729644775 + ], + "90": [ + 0.7426741123199463, + 0.7263903617858887, + 0.8066353797912598, + 0.857090950012207, + 0.7823832035064697 + ], + "91": [ + 0.8765714168548584, + 1.0066447257995605, + 0.9977982044219971, + 0.9710574150085449, + 1.0417554378509521 + ], + "92": [ + 1.2541251182556152, + 1.2637217044830322, + 1.277681827545166, + 1.272780418395996, + 1.307555913925171 + ], + "93": [ + 22.15599775314331, + 21.807148694992065, + 21.700384855270386, + 21.663914918899536, + 21.595760583877563 + ], + "94": [ + 6.799180030822754, + 6.733048439025879, + 6.928405523300171, + 6.735382318496704, + 6.847370147705078 + ], + "95": [ + 27.122989416122437, + 27.059486389160156, + 26.826467514038086, + 26.69485092163086, + 27.168644428253174 + ], + "96": [ + 0.7550704479217529, + 0.7472677230834961, + 0.6998603343963623, + 0.7055039405822754, + 0.7615151405334473 + ], + "97": [ + 9.790446996688843, + 9.716257095336914, + 9.671125650405884, + 9.580909967422485, + 9.678182125091553 + ], + "98": [ + 2.175020933151245, + 2.2659518718719482, + 2.1904609203338623, + 2.0544354915618896, + 2.0489299297332764 + ], + "99": [ + 1.5075435638427734, + 1.5963904857635498, + 1.3782060146331787, + 1.4856946468353271, + 1.3421602249145508 + ] +} \ No newline at end of file diff --git a/docs/source/contributor-guide/benchmark-results/tpc-ds.md b/docs/source/contributor-guide/benchmark-results/tpc-ds.md index 3fa70eb862..a6650f7e74 100644 --- a/docs/source/contributor-guide/benchmark-results/tpc-ds.md +++ b/docs/source/contributor-guide/benchmark-results/tpc-ds.md @@ -25,21 +25,21 @@ and we encourage you to run these benchmarks in your own environments. The tracking issue for improving TPC-DS performance is [#858](https://github.com/apache/datafusion-comet/issues/858). -![](../../_static/images/benchmark-results/0.4.0/tpcds_allqueries.png) +![](../../_static/images/benchmark-results/0.5.0/tpcds_allqueries.png) Here is a breakdown showing relative performance of Spark and Comet for each query. -![](../../_static/images/benchmark-results/0.4.0/tpcds_queries_compare.png) +![](../../_static/images/benchmark-results/0.5.0/tpcds_queries_compare.png) The following chart shows how much Comet currently accelerates each query from the benchmark in relative terms. -![](../../_static/images/benchmark-results/0.4.0/tpcds_queries_speedup_rel.png) +![](../../_static/images/benchmark-results/0.5.0/tpcds_queries_speedup_rel.png) The following chart shows how much Comet currently accelerates each query from the benchmark in absolute terms. -![](../../_static/images/benchmark-results/0.4.0/tpcds_queries_speedup_abs.png) +![](../../_static/images/benchmark-results/0.5.0/tpcds_queries_speedup_abs.png) The raw results of these benchmarks in JSON format is available here: -- [Spark](0.4.0/spark-tpcds.json) -- [Comet](0.4.0/comet-tpcds.json) +- [Spark](0.5.0/spark-tpcds.json) +- [Comet](0.5.0/comet-tpcds.json)