Chapel VS D benchmarks

Current benchmark data was generated on Sat Nov 16 2024, full log can be found HERE

CONTRIBUTIONS are WELCOME!

[x86_64][4 cores] AMD EPYC 7763 64-Core Processor (Model 1)

* -m in a file name stands for multi-threading or multi-processing

* -i in a file name stands for direct intrinsics usage. (Usage of simd intrinsics via libraries is not counted)

* -ffi in a file name stands for non-stdlib FFI usage

* (You may find time < time(user) + time(sys) for some non-parallelized programs, the overhead is from GC or JIT compiler, which are allowed to take advantage of multi-cores as that's more close to real-world scenarios.)

binarytrees

Input: 18

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 1.d 1714ms 10ms 312.4MB 1680ms 40ms ldc2 1.39.0
chapel 4.chpl 1955ms 6.7ms 66.3MB 1940ms 3ms chpl 1.31.0
chapel 3.chpl 2044ms 11ms 66.3MB 2033ms 3ms chpl 1.31.0
d 1.d 2690ms 19ms 314.8MB 2890ms 27ms dmd 2.109.1

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 1.d 161ms 4.1ms 209.0MB 127ms 20ms ldc2 1.39.0
chapel 4.chpl 192ms 0.3ms 36.4MB 183ms 0ms chpl 1.31.0
chapel 3.chpl 196ms 2.7ms 34.4MB 183ms 0ms chpl 1.31.0
d 1.d 233ms 2.4ms 210.6MB 207ms 10ms dmd 2.109.1

coro-prime-sieve

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 1-m.chpl 2249ms 48ms 525.8MB 4357ms 87ms chpl 1.31.0
d 1.d timeout 0.0ms 16.5MB 4957ms 33ms dmd 2.109.1
d 1.d timeout 0.0ms 14.8MB 4950ms 30ms ldc2 1.39.0

Input: 1000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 1-m.chpl 176ms 5.9ms 231.6MB 287ms 23ms chpl 1.31.0
d 1.d 1049ms 8.0ms 8.4MB 1023ms 10ms ldc2 1.39.0
d 1.d 1313ms 9.7ms 10.8MB 1290ms 13ms dmd 2.109.1

edigits

Input: 250001

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 1.chpl 79ms 0.6ms 36.5MB 70ms 3ms chpl 1.31.0
d 1.d 2539ms 2.5ms 8.1MB 2530ms 0ms ldc2 1.39.0
d 1.d 2922ms 4.0ms 10.3MB 2913ms 3ms dmd 2.109.1

Input: 100000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 1.chpl 41ms 0.9ms 34.5MB 30ms 0ms chpl 1.31.0
d 1.d 441ms 1.2ms 7.9MB 430ms 0ms ldc2 1.39.0
d 1.d 535ms 5.9ms 10.1MB 523ms 0ms dmd 2.109.1

fasta

Input: 2500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 5-m.chpl 113ms 0.6ms 32.4MB 190ms 0ms chpl 1.31.0
d 1.d 196ms 1.6ms 31.9MB 177ms 3ms ldc2 1.39.0
d 1.d 623ms 3.2ms 48.0MB 607ms 10ms dmd 2.109.1

Input: 250000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 1.d 24ms 0.6ms 7.3MB 17ms 0ms ldc2 1.39.0
chapel 5.chpl 29ms 0.2ms 32.4MB 20ms 3ms chpl 1.31.0
d 1.d 66ms 0.7ms 12.2MB 60ms 0ms dmd 2.109.1

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 1.d 1.7ms 0.2ms 2.9MB 0ms 0ms ldc2 1.39.0
d 1.d 2.3ms 0.3ms 5.1MB 0ms 0ms dmd 2.109.1
chapel 1.chpl 16ms 0.3ms 32.8MB 10ms 0ms chpl 1.31.0

knucleotide

Input: 2500000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 3-m.chpl 751ms 2.5ms 103.0MB 1410ms 10ms chpl 1.31.0
d 1-m.d 793ms 57ms 51.9MB 2410ms 20ms ldc2 1.39.0
d 1-m.d 1878ms 30ms 54.8MB 5587ms 17ms dmd 2.109.1

Input: 250000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 1-m.d 99ms 1.8ms 42.1MB 253ms 13ms ldc2 1.39.0
chapel 3-m.chpl 121ms 0.9ms 91.1MB 193ms 7ms chpl 1.31.0
d 1-m.d 203ms 2.6ms 45.9MB 587ms 13ms dmd 2.109.1

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 2.chpl 328ms 1.8ms 32.8MB 320ms 0ms chpl 1.31.0
d 2.d 361ms 0.5ms 2.9MB 350ms 0ms ldc2 1.39.0
d 1.d 361ms 1.0ms 2.9MB 350ms 0ms ldc2 1.39.0
d 1.d 680ms 2.2ms 4.6MB 670ms 0ms dmd 2.109.1
d 2.d 2009ms 2.2ms 4.6MB 2000ms 0ms dmd 2.109.1

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 1.d 39ms 0.5ms 2.9MB 30ms 0ms ldc2 1.39.0
d 2.d 39ms 0.7ms 2.9MB 30ms 0ms ldc2 1.39.0
chapel 2.chpl 52ms 0.1ms 32.9MB 37ms 7ms chpl 1.31.0
d 1.d 71ms 0.9ms 4.8MB 63ms 0ms dmd 2.109.1
d 2.d 203ms 0.2ms 4.6MB 190ms 0ms dmd 2.109.1

pidigits

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 2.chpl 450ms 0.4ms 34.3MB 440ms 0ms chpl 1.31.0
d 1.d 2410ms 8.4ms 8.0MB 2367ms 387ms ldc2 1.39.0
d 1.d 4352ms 6.4ms 10.1MB 4243ms 487ms dmd 2.109.1

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 2.chpl 121ms 0.8ms 34.4MB 113ms 0ms chpl 1.31.0
d 1.d 578ms 1.6ms 8.1MB 557ms 93ms ldc2 1.39.0
d 1.d 1041ms 11ms 10.2MB 1027ms 113ms dmd 2.109.1

regex-redux

Input: 2500000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 3.d 614ms 6.0ms 171.9MB 793ms 23ms ldc2 1.39.0
d 3.d 1345ms 56ms 174.6MB 1557ms 23ms dmd 2.109.1
chapel 3.chpl 1387ms 3.4ms 224.1MB 1337ms 37ms chpl 1.31.0

Input: 250000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 3.d 71ms 3.4ms 25.9MB 83ms 0ms ldc2 1.39.0
d 3.d 145ms 6.4ms 26.5MB 153ms 7ms dmd 2.109.1
chapel 3.chpl 170ms 0.4ms 52.9MB 147ms 13ms chpl 1.31.0

secp256k1

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 1.chpl 1210ms 50ms 33.1MB 1200ms 0ms chpl 1.31.0
d 1.d 4798ms 38ms 3.9MB 4770ms 327ms ldc2 1.39.0
d 1.d timeout 0.0ms 6.6MB 5013ms 217ms dmd 2.109.1

Input: 500

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 1.chpl 312ms 3.8ms 33.1MB 303ms 0ms chpl 1.31.0
d 1.d 1207ms 7.1ms 4.0MB 1160ms 110ms ldc2 1.39.0
d 1.d 2023ms 38ms 6.4MB 1990ms 113ms dmd 2.109.1

spectral-norm

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 1-m.chpl 1932ms 20ms 32.9MB 3827ms 0ms chpl 1.31.0
d 1.d 3584ms 9.1ms 4.1MB 3570ms 0ms ldc2 1.39.0
d 1.d 3665ms 31ms 5.9MB 3653ms 0ms dmd 2.109.1
chapel 1.chpl 3718ms 11ms 32.8MB 3707ms 0ms chpl 1.31.0

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 1-m.chpl 496ms 0.6ms 32.9MB 957ms 0ms chpl 1.31.0
d 1.d 902ms 0.5ms 3.5MB 890ms 0ms ldc2 1.39.0
d 1.d 911ms 2.1ms 5.8MB 900ms 0ms dmd 2.109.1
chapel 1.chpl 947ms 4.7ms 32.8MB 937ms 3ms chpl 1.31.0

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 1-m.chpl 140ms 0.2ms 32.9MB 243ms 0ms chpl 1.31.0
d 1.d 227ms 0.4ms 3.0MB 220ms 0ms ldc2 1.39.0
d 1.d 235ms 1.0ms 4.9MB 220ms 0ms dmd 2.109.1
chapel 1.chpl 253ms 1.1ms 32.8MB 243ms 0ms chpl 1.31.0