Chapel VS C# benchmarks

Current benchmark data was generated on Wed May 25 2022, full log can be found HERE

CONTRIBUTIONS are WELCOME!

[x86_64][2 cores] Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz (Model 85)

* -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 1595ms 35ms 305.1MB 1500ms 147ms dotnet 6.0.300
csharp 1.cs 2472ms 34ms 107.8MB 2887ms 257ms mono 6.12.0
chapel 4.chpl 2509ms 8.4ms 66.1MB 2477ms 20ms chpl 1.26.0
chapel 3.chpl 2721ms 5.2ms 64.1MB 2687ms 23ms chpl 1.26.0

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 1.cs 164ms 1.0ms 44.7MB 137ms 13ms mono 6.12.0
csharp 1.cs 193ms 1.5ms 77.6MB 143ms 23ms dotnet 6.0.300
chapel 4.chpl 234ms 1.7ms 34.1MB 213ms 10ms chpl 1.26.0
chapel 3.chpl 245ms 1.0ms 36.1MB 230ms 3ms chpl 1.26.0

coro-prime-sieve

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 1-m.chpl 4218ms 372ms 111.4MB 7983ms 47ms chpl 1.26.0
csharp 1-m.cs 4737ms 96ms 89.8MB 8880ms 67ms dotnet 6.0.300

Input: 1000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 1-m.chpl 289ms 3.3ms 44.2MB 510ms 23ms chpl 1.26.0
csharp 1-m.cs 429ms 21ms 78.6MB 657ms 47ms dotnet 6.0.300

edigits

Input: 250001

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 1.chpl 92ms 1.1ms 36.1MB 70ms 10ms chpl 1.26.0
csharp 1.cs timeout 0.0ms 0.0MB 0ms 0ms dotnet 6.0.300

Input: 100000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 1.chpl 46ms 0.8ms 34.1MB 27ms 7ms chpl 1.26.0
csharp 1.cs 844ms 57ms 47.7MB 803ms 7ms dotnet 6.0.300

fasta

Input: 2500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 5-m.chpl 135ms 2.9ms 32.0MB 220ms 7ms chpl 1.26.0
csharp 5-m.cs 401ms 20ms 91.1MB 600ms 93ms dotnet 6.0.300
csharp 5-m.cs 528ms 11ms 34.3MB 877ms 113ms mono 6.12.0

Input: 250000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 5.chpl 30ms 1.5ms 32.0MB 27ms 3ms chpl 1.26.0
csharp 5-m.cs 98ms 9.7ms 34.6MB 113ms 37ms mono 6.12.0
csharp 5.cs 100ms 11ms 40.3MB 77ms 37ms dotnet 6.0.300

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 1.chpl 18ms 1.8ms 32.4MB 2ms 8ms chpl 1.26.0
csharp 1.cs 22ms 0.9ms 25.8MB 10ms 0ms mono 6.12.0
csharp 1.cs 52ms 6.4ms 29.0MB 20ms 4ms dotnet 6.0.300

knucleotide

Input: 2500000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 3-m.chpl 982ms 4.5ms 99.0MB 1783ms 33ms chpl 1.26.0
csharp 6.cs 1274ms 7.0ms 77.3MB 1860ms 37ms dotnet 6.0.300
csharp 6-m.cs 1776ms 5.9ms 69.5MB 2940ms 27ms mono 6.12.0

Input: 250000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 3-m.chpl 168ms 1.4ms 88.3MB 243ms 30ms chpl 1.26.0
csharp 6.cs 249ms 7.7ms 62.2MB 280ms 27ms dotnet 6.0.300
csharp 6.cs 270ms 6.3ms 55.6MB 357ms 20ms mono 6.12.0

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 2.chpl 406ms 1.2ms 32.4MB 383ms 7ms chpl 1.26.0
csharp 9.cs 443ms 4.3ms 31.2MB 410ms 3ms dotnet 6.0.300
csharp 8.cs 618ms 8.4ms 27.2MB 583ms 7ms dotnet 6.0.300
csharp 8.cs 1298ms 29ms 25.0MB 1280ms 0ms mono 6.12.0

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 2.chpl 61ms 1.2ms 32.4MB 40ms 7ms chpl 1.26.0
csharp 9.cs 96ms 3.5ms 27.2MB 60ms 0ms dotnet 6.0.300
csharp 8.cs 112ms 7.1ms 29.1MB 83ms 0ms dotnet 6.0.300
csharp 8.cs 147ms 9.2ms 25.0MB 133ms 0ms mono 6.12.0

pidigits

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 2.chpl 487ms 1.8ms 34.1MB 473ms 3ms chpl 1.26.0
csharp 1.cs timeout 0.0ms 0.0MB 0ms 0ms dotnet 6.0.300

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 2.chpl 129ms 0.5ms 34.1MB 110ms 3ms chpl 1.26.0
csharp 1.cs 1348ms 3.0ms 79.6MB 1333ms 43ms dotnet 6.0.300

regex-redux

Input: 2500000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 3.chpl 2026ms 1.2ms 250.5MB 1817ms 197ms chpl 1.26.0
csharp 5.cs 2913ms 188ms 589.8MB 2837ms 267ms dotnet 7.0.100
csharp 5p.cs 3745ms 33ms 591.6MB 3603ms 257ms dotnet 7.0.100
csharp 5.cs 3954ms 237ms 522.8MB 3853ms 243ms dotnet 6.0.300

Input: 250000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 3.chpl 213ms 0.5ms 56.8MB 190ms 7ms chpl 1.26.0
csharp 5.cs 455ms 7.3ms 168.0MB 390ms 50ms dotnet 7.0.100
csharp 5p.cs 494ms 19ms 162.0MB 423ms 53ms dotnet 7.0.100
csharp 5.cs 537ms 6.2ms 89.3MB 483ms 43ms dotnet 6.0.300

secp256k1

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 1.chpl 1538ms 3.6ms 32.3MB 1520ms 7ms chpl 1.26.0
csharp 1.cs 4641ms 242ms 79.1MB 4623ms 33ms dotnet 6.0.300

Input: 500

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 1.chpl 399ms 2.2ms 32.3MB 380ms 7ms chpl 1.26.0
csharp 1.cs 1157ms 36ms 75.0MB 1140ms 23ms dotnet 6.0.300

spectral-norm

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 1-m.chpl 1899ms 4.4ms 32.4MB 3597ms 7ms chpl 1.26.0
csharp 3-m.cs 2478ms 3.8ms 29.7MB 4743ms 17ms dotnet 6.0.300
chapel 1.chpl 3781ms 2.3ms 32.4MB 3760ms 7ms chpl 1.26.0
csharp 3.cs timeout 0.0ms 0.0MB 0ms 0ms mono 6.12.0

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 1-m.chpl 495ms 1.7ms 32.4MB 930ms 7ms chpl 1.26.0
csharp 3-m.cs 686ms 0.7ms 30.1MB 1230ms 10ms dotnet 6.0.300
chapel 1.chpl 964ms 0.8ms 32.4MB 950ms 0ms chpl 1.26.0
csharp 3-m.cs 2554ms 15ms 27.7MB 4747ms 3ms mono 6.12.0

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 1-m.chpl 141ms 3.2ms 32.4MB 233ms 7ms chpl 1.26.0
csharp 3-m.cs 227ms 5.2ms 27.3MB 337ms 7ms dotnet 6.0.300
chapel 1.chpl 257ms 0.8ms 32.4MB 240ms 3ms chpl 1.26.0
csharp 3-m.cs 662ms 0.1ms 29.7MB 1207ms 0ms mono 6.12.0