Chapel VS C# benchmarks

Current benchmark data was generated on Wed Jan 22 2025, 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
csharp 1.cs 912ms 14ms 187.1MB 903ms 140ms dotnet/aot 9.0.102
csharp 1.cs 964ms 9.3ms 206.6MB 947ms 153ms dotnet 9.0.102
csharp 1.cs 1752ms 85ms 103.6MB 1933ms 253ms mono 6.12.0
chapel 4.chpl 1949ms 7.9ms 66.2MB 1943ms 0ms chpl 1.31.0
chapel 3.chpl 2033ms 5.5ms 66.3MB 2020ms 3ms chpl 1.31.0

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 1.cs 117ms 2.5ms 41.9MB 80ms 30ms dotnet/aot 9.0.102
csharp 1.cs 151ms 2.8ms 46.3MB 127ms 10ms mono 6.12.0
chapel 4.chpl 191ms 2.9ms 36.4MB 180ms 0ms chpl 1.31.0
chapel 3.chpl 199ms 3.7ms 34.3MB 187ms 3ms chpl 1.31.0
csharp 1.cs 204ms 17ms 64.6MB 153ms 37ms dotnet 9.0.102

coro-prime-sieve

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 1-m.cs 2167ms 61ms 71.6MB 7430ms 90ms dotnet/aot 9.0.102
chapel 1-m.chpl 2257ms 56ms 518.0MB 4400ms 70ms chpl 1.31.0
csharp 1-m.cs 2627ms 90ms 82.1MB 8133ms 107ms dotnet 9.0.102

Input: 1000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 1-m.cs 174ms 6.3ms 28.9MB 467ms 20ms dotnet/aot 9.0.102
chapel 1-m.chpl 192ms 11ms 444.7MB 303ms 37ms chpl 1.31.0
csharp 1-m.cs 285ms 11ms 50.6MB 790ms 33ms dotnet 9.0.102

edigits

Input: 250001

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 1.chpl 80ms 0.6ms 36.5MB 70ms 0ms chpl 1.31.0
csharp 1.cs 4084ms 2.2ms 24.3MB 4053ms 17ms dotnet/aot 9.0.102
csharp 1.cs 4938ms 22ms 43.7MB 4910ms 17ms dotnet 9.0.102

Input: 100000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 1.chpl 40ms 0.2ms 34.5MB 33ms 3ms chpl 1.31.0
csharp 1.cs 685ms 5.5ms 20.5MB 660ms 3ms dotnet/aot 9.0.102
csharp 1.cs 858ms 3.8ms 40.0MB 827ms 17ms dotnet 9.0.102

fasta

Input: 2500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 5-m.chpl 112ms 0.7ms 32.4MB 187ms 3ms chpl 1.31.0
csharp 5-m.cs 138ms 5.4ms 33.9MB 347ms 123ms dotnet/aot 9.0.102
csharp 5-m.cs 188ms 2.6ms 50.8MB 470ms 113ms dotnet 9.0.102
csharp 5-m.cs 259ms 14ms 58.4MB 653ms 157ms mono 6.12.0

Input: 250000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 5-m.cs 26ms 1.6ms 23.7MB 33ms 17ms dotnet/aot 9.0.102
chapel 5.chpl 29ms 0.2ms 32.4MB 23ms 0ms chpl 1.31.0
csharp 5-m.cs 61ms 1.5ms 47.1MB 83ms 20ms dotnet 9.0.102
csharp 5-m.cs 70ms 1.0ms 39.6MB 103ms 17ms mono 6.12.0

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 1.chpl 16ms 0.5ms 32.8MB 7ms 3ms chpl 1.31.0
csharp 1.cs 18ms 10ms 12.5MB 0ms 0ms dotnet/aot 9.0.102
csharp 1.cs 31ms 0.2ms 23.3MB 22ms 0ms mono 6.12.0
csharp 1.cs 35ms 0.3ms 30.3MB 16ms 4ms dotnet 9.0.102

knucleotide

Input: 2500000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 6-m.cs 481ms 30ms 54.6MB 1310ms 20ms dotnet/aot 9.0.102
chapel 3-m.chpl 750ms 2.0ms 101.0MB 1407ms 10ms chpl 1.31.0
csharp 6-m.cs 761ms 32ms 77.6MB 2040ms 37ms dotnet 9.0.102
csharp 6-m.cs 999ms 25ms 64.5MB 2880ms 20ms mono 6.12.0

Input: 250000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 6-m.cs 89ms 4.3ms 43.4MB 157ms 13ms dotnet/aot 9.0.102
chapel 3-m.chpl 122ms 1.7ms 81.1MB 197ms 10ms chpl 1.31.0
csharp 6-m.cs 171ms 13ms 64.0MB 250ms 20ms dotnet 9.0.102
csharp 6-m.cs 193ms 0.8ms 49.5MB 377ms 13ms mono 6.12.0

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 2.chpl 329ms 2.4ms 32.8MB 320ms 0ms chpl 1.31.0
csharp 9.cs 360ms 2.4ms 34.2MB 340ms 10ms dotnet 9.0.102
csharp 8.cs 370ms 0.4ms 15.7MB 357ms 0ms dotnet/aot 9.0.102
csharp 8.cs 418ms 0.9ms 33.8MB 393ms 10ms dotnet 9.0.102
csharp 8.cs 1246ms 5.3ms 22.4MB 1230ms 0ms mono 6.12.0

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 8.cs 46ms 1.7ms 16.0MB 30ms 0ms dotnet/aot 9.0.102
chapel 2.chpl 52ms 0.4ms 32.8MB 40ms 7ms chpl 1.31.0
csharp 9.cs 92ms 1.1ms 34.0MB 77ms 0ms dotnet 9.0.102
csharp 8.cs 105ms 9.8ms 34.0MB 73ms 10ms dotnet 9.0.102
csharp 8.cs 162ms 2.1ms 26.3MB 147ms 3ms mono 6.12.0

pidigits

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 2.chpl 452ms 1.6ms 34.4MB 440ms 0ms chpl 1.31.0
csharp 1.cs 3242ms 11ms 19.9MB 3120ms 117ms dotnet/aot 9.0.102
csharp 1.cs 3579ms 48ms 42.2MB 3567ms 147ms dotnet 9.0.102

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 2.chpl 121ms 1.3ms 34.4MB 113ms 0ms chpl 1.31.0
csharp 1.cs 761ms 6.6ms 19.2MB 713ms 33ms dotnet/aot 9.0.102
csharp 1.cs 996ms 11ms 43.7MB 1077ms 40ms dotnet 9.0.102

regex-redux

Input: 2500000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 3.chpl 1392ms 7.7ms 224.2MB 1343ms 37ms chpl 1.31.0
csharp 6.cs 1747ms 9.0ms 429.4MB 1660ms 133ms dotnet/aot 9.0.102
csharp 5.cs 2081ms 40ms 454.7MB 2120ms 190ms dotnet 9.0.102
csharp 6.cs 2702ms 39ms 451.9MB 2663ms 167ms dotnet 9.0.102
csharp 5.cs 4204ms 37ms 425.2MB 4097ms 153ms dotnet/aot 9.0.102

Input: 250000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 3.chpl 168ms 1.8ms 52.9MB 153ms 7ms chpl 1.31.0
csharp 6.cs 191ms 1.2ms 54.4MB 167ms 17ms dotnet/aot 9.0.102
csharp 5.cs 293ms 6.7ms 80.4MB 240ms 43ms dotnet 9.0.102
csharp 6.cs 390ms 2.9ms 78.2MB 350ms 37ms dotnet 9.0.102
csharp 5.cs 429ms 2.0ms 58.0MB 403ms 17ms dotnet/aot 9.0.102

secp256k1

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 1.chpl 1187ms 3.1ms 33.1MB 1177ms 0ms chpl 1.31.0
csharp 1.cs 2807ms 10ms 17.1MB 2760ms 40ms dotnet/aot 9.0.102
csharp 1.cs 2940ms 11ms 39.4MB 2987ms 57ms dotnet 9.0.102

Input: 500

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 1.chpl 318ms 2.7ms 33.1MB 307ms 3ms chpl 1.31.0
csharp 1.cs 718ms 12ms 15.0MB 697ms 3ms dotnet/aot 9.0.102
csharp 1.cs 999ms 20ms 40.3MB 1080ms 20ms dotnet 9.0.102

spectral-norm

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 3-m.cs 1873ms 37ms 18.4MB 7180ms 7ms dotnet/aot 9.0.102
chapel 1-m.chpl 1913ms 0.6ms 32.8MB 3787ms 0ms chpl 1.31.0
csharp 3-m.cs 1971ms 75ms 38.1MB 7220ms 13ms dotnet 9.0.102
chapel 1.chpl 3715ms 5.7ms 32.8MB 3700ms 0ms chpl 1.31.0
csharp 3-m.cs 4634ms 249ms 30.7MB 17543ms 10ms mono 6.12.0

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 3-m.cs 476ms 1.6ms 18.2MB 1790ms 10ms dotnet/aot 9.0.102
chapel 1-m.chpl 497ms 2.2ms 32.9MB 960ms 0ms chpl 1.31.0
csharp 3-m.cs 542ms 12ms 39.9MB 1870ms 10ms dotnet 9.0.102
chapel 1.chpl 945ms 2.0ms 32.8MB 937ms 0ms chpl 1.31.0
csharp 3-m.cs 1203ms 18ms 31.0MB 4483ms 7ms mono 6.12.0

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 3-m.cs 129ms 1.0ms 18.4MB 440ms 7ms dotnet/aot 9.0.102
chapel 1-m.chpl 140ms 2.4ms 32.9MB 247ms 0ms chpl 1.31.0
csharp 3-m.cs 193ms 15ms 36.4MB 497ms 10ms dotnet 9.0.102
chapel 1.chpl 255ms 3.6ms 32.8MB 247ms 3ms chpl 1.31.0
csharp 3-m.cs 348ms 2.4ms 26.4MB 1160ms 7ms mono 6.12.0