Chapel VS C# benchmarks

Current benchmark data was generated on Thu May 01 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 943ms 22ms 185.3MB 937ms 150ms dotnet 9.0.203
csharp 1.cs 955ms 17ms 188.9MB 957ms 143ms dotnet/aot 9.0.203
csharp 1.cs 1699ms 20ms 101.5MB 1897ms 217ms mono 6.12.0
chapel 4.chpl 1953ms 5.8ms 62.4MB 1947ms 0ms chpl 1.31.0
chapel 3.chpl 2034ms 5.7ms 62.3MB 2027ms 0ms chpl 1.31.0

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 1.cs 123ms 5.1ms 31.9MB 87ms 33ms dotnet/aot 9.0.203
csharp 1.cs 140ms 0.7ms 44.1MB 117ms 13ms mono 6.12.0
chapel 4.chpl 184ms 0.5ms 32.3MB 180ms 0ms chpl 1.31.0
chapel 3.chpl 189ms 2.4ms 32.3MB 183ms 0ms chpl 1.31.0
csharp 1.cs 206ms 6.4ms 50.4MB 157ms 37ms dotnet 9.0.203

coro-prime-sieve

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 1-m.cs 2151ms 190ms 51.9MB 7533ms 73ms dotnet/aot 9.0.203
chapel 1-m.chpl 2236ms 75ms 571.9MB 4350ms 80ms chpl 1.31.0
csharp 1-m.cs 2664ms 219ms 74.3MB 8140ms 107ms dotnet 9.0.203

Input: 1000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 1-m.cs 167ms 15ms 19.5MB 487ms 10ms dotnet/aot 9.0.203
chapel 1-m.chpl 193ms 3.2ms 540.5MB 307ms 50ms chpl 1.31.0
csharp 1-m.cs 275ms 8.4ms 36.8MB 787ms 20ms dotnet 9.0.203

edigits

Input: 250001

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 1.chpl 74ms 1.0ms 32.5MB 70ms 0ms chpl 1.31.0
csharp 1.cs 4174ms 6.8ms 18.4MB 4150ms 10ms dotnet/aot 9.0.203
csharp 1.cs 4970ms 26ms 37.8MB 4940ms 17ms dotnet 9.0.203

Input: 100000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 1.chpl 34ms 0.7ms 30.5MB 30ms 0ms chpl 1.31.0
csharp 1.cs 690ms 2.1ms 14.5MB 673ms 0ms dotnet/aot 9.0.203
csharp 1.cs 866ms 5.7ms 33.9MB 843ms 10ms dotnet 9.0.203

fasta

Input: 2500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 5-m.chpl 107ms 2.2ms 28.4MB 190ms 0ms chpl 1.31.0
csharp 5-m.cs 114ms 1.5ms 22.1MB 350ms 57ms dotnet/aot 9.0.203
csharp 5-m.cs 190ms 2.0ms 38.3MB 467ms 123ms dotnet 9.0.203
csharp 5-m.cs 241ms 15ms 51.6MB 663ms 123ms mono 6.12.0

Input: 250000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 5.chpl 21ms 1.7ms 28.4MB 20ms 0ms chpl 1.31.0
csharp 5-m.cs 24ms 1.2ms 15.6MB 33ms 13ms dotnet/aot 9.0.203
csharp 5-m.cs 65ms 3.9ms 37.4MB 87ms 17ms dotnet 9.0.203
csharp 5-m.cs 71ms 1.9ms 30.8MB 100ms 27ms mono 6.12.0

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 1.cs 10ms 5.6ms 7.6MB 0ms 0ms dotnet/aot 9.0.203
chapel 1.chpl 11ms 0.5ms 28.8MB 0ms 0ms chpl 1.31.0
csharp 1.cs 31ms 1.0ms 21.4MB 20ms 0ms mono 6.12.0
csharp 1.cs 34ms 0.4ms 26.0MB 20ms 2ms dotnet 9.0.203

knucleotide

Input: 2500000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 6-m.cs 456ms 12ms 46.2MB 1207ms 20ms dotnet/aot 9.0.203
csharp 6-m.cs 743ms 18ms 68.1MB 2037ms 30ms dotnet 9.0.203
chapel 3-m.chpl 751ms 2.2ms 85.0MB 1420ms 10ms chpl 1.31.0
csharp 6-m.cs 1019ms 22ms 66.8MB 2907ms 27ms 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 97ms 2.6ms 36.0MB 163ms 13ms dotnet/aot 9.0.203
chapel 3-m.chpl 116ms 1.0ms 87.0MB 200ms 7ms chpl 1.31.0
csharp 6-m.cs 178ms 11ms 58.2MB 260ms 27ms dotnet 9.0.203
csharp 6-m.cs 196ms 3.6ms 55.8MB 380ms 17ms mono 6.12.0

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 2.chpl 324ms 3.1ms 28.8MB 320ms 0ms chpl 1.31.0
csharp 9.cs 358ms 2.8ms 28.0MB 340ms 7ms dotnet 9.0.203
csharp 8.cs 370ms 3.1ms 9.9MB 360ms 0ms dotnet/aot 9.0.203
csharp 8.cs 423ms 3.6ms 27.5MB 400ms 7ms dotnet 9.0.203
csharp 8.cs 1250ms 5.1ms 20.4MB 1237ms 0ms mono 6.12.0

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 2.chpl 45ms 1.4ms 28.8MB 40ms 0ms chpl 1.31.0
csharp 8.cs 46ms 1.1ms 9.9MB 37ms 0ms dotnet/aot 9.0.203
csharp 9.cs 90ms 1.4ms 27.6MB 73ms 3ms dotnet 9.0.203
csharp 8.cs 94ms 1.2ms 27.5MB 80ms 3ms dotnet 9.0.203
csharp 8.cs 164ms 3.9ms 22.8MB 150ms 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 448ms 1.7ms 30.4MB 440ms 0ms chpl 1.31.0
csharp 1.cs 3245ms 17ms 14.0MB 3153ms 90ms dotnet/aot 9.0.203
csharp 1.cs 3618ms 42ms 38.1MB 3630ms 113ms dotnet 9.0.203

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 2.chpl 114ms 1.1ms 30.3MB 110ms 0ms chpl 1.31.0
csharp 1.cs 761ms 5.1ms 13.5MB 720ms 30ms dotnet/aot 9.0.203
csharp 1.cs 997ms 13ms 37.9MB 1083ms 40ms dotnet 9.0.203

regex-redux

Input: 2500000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 3.chpl 1396ms 9.5ms 220.2MB 1350ms 40ms chpl 1.31.0
csharp 6.cs 1761ms 4.6ms 416.8MB 1653ms 160ms dotnet/aot 9.0.203
csharp 5.cs 2090ms 65ms 445.0MB 2137ms 177ms dotnet 9.0.203
csharp 6.cs 2767ms 68ms 439.8MB 2703ms 187ms dotnet 9.0.203
csharp 5.cs 4291ms 32ms 418.5MB 4193ms 153ms dotnet/aot 9.0.203

Input: 250000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 3.chpl 162ms 3.8ms 48.9MB 140ms 17ms chpl 1.31.0
csharp 6.cs 191ms 2.6ms 47.8MB 167ms 17ms dotnet/aot 9.0.203
csharp 5.cs 281ms 1.6ms 72.4MB 253ms 30ms dotnet 9.0.203
csharp 6.cs 389ms 1.5ms 70.3MB 363ms 27ms dotnet 9.0.203
csharp 5.cs 443ms 4.6ms 46.8MB 417ms 13ms dotnet/aot 9.0.203

secp256k1

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 1.chpl 1187ms 11ms 29.1MB 1183ms 0ms chpl 1.31.0
csharp 1.cs 2903ms 55ms 13.1MB 2863ms 27ms dotnet/aot 9.0.203
csharp 1.cs 2974ms 56ms 35.3MB 3050ms 37ms dotnet 9.0.203

Input: 500

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 1.chpl 307ms 3.0ms 29.0MB 303ms 0ms chpl 1.31.0
csharp 1.cs 729ms 12ms 13.0MB 710ms 3ms dotnet/aot 9.0.203
csharp 1.cs 1010ms 34ms 35.5MB 1097ms 23ms dotnet 9.0.203

spectral-norm

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 3-m.cs 1857ms 0.8ms 10.5MB 7263ms 10ms dotnet/aot 9.0.203
csharp 3-m.cs 1927ms 7.1ms 30.0MB 7350ms 17ms dotnet 9.0.203
chapel 1-m.chpl 1928ms 23ms 28.9MB 3827ms 0ms chpl 1.31.0
chapel 1.chpl 3719ms 13ms 28.8MB 3713ms 0ms chpl 1.31.0
csharp 3-m.cs 4664ms 7.4ms 25.5MB 18030ms 17ms mono 6.12.0

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 3-m.cs 473ms 1.1ms 10.4MB 1810ms 0ms dotnet/aot 9.0.203
chapel 1-m.chpl 492ms 2.8ms 28.8MB 960ms 0ms chpl 1.31.0
csharp 3-m.cs 536ms 6.8ms 29.8MB 1880ms 10ms dotnet 9.0.203
chapel 1.chpl 944ms 3.9ms 28.8MB 937ms 0ms chpl 1.31.0
csharp 3-m.cs 1213ms 6.5ms 25.6MB 4547ms 10ms mono 6.12.0

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
csharp 3-m.cs 127ms 1.6ms 10.5MB 450ms 0ms dotnet/aot 9.0.203
chapel 1-m.chpl 134ms 1.5ms 28.9MB 247ms 0ms chpl 1.31.0
csharp 3-m.cs 181ms 4.2ms 28.5MB 503ms 10ms dotnet 9.0.203
chapel 1.chpl 247ms 2.2ms 28.8MB 240ms 0ms chpl 1.31.0
csharp 3-m.cs 353ms 13ms 25.5MB 1193ms 10ms mono 6.12.0