Chapel VS Go benchmarks

Current benchmark data was generated on Sat Jan 28 2023, full log can be found HERE

CONTRIBUTIONS are WELCOME!

[x86_64][2 cores] Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz (Model 106)

* -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
chapel 4.chpl 2288ms 12ms 46.2MB 2260ms 7ms chpl 1.29.0
chapel 3.chpl 2449ms 12ms 46.2MB 2427ms 13ms chpl 1.29.0
go 1.go 3021ms 13ms 47.5MB 4350ms 33ms go 1.19.5
go 1.go 3856ms 10ms 38.6MB 3840ms 3ms tinygo 0.25.0

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 4.chpl 219ms 3.7ms 14.0MB 207ms 0ms chpl 1.29.0
chapel 3.chpl 226ms 0.3ms 14.0MB 220ms 0ms chpl 1.29.0
go 1.go 265ms 1.5ms 9.9MB 340ms 0ms go 1.19.5
go 1.go 348ms 1.9ms 6.9MB 337ms 0ms tinygo 0.25.0

coro-prime-sieve

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
go 1-m.go 883ms 44ms 13.6MB 1720ms 0ms go 1.19.5
go 1.go 1683ms 4.3ms 257.5MB 1620ms 47ms tinygo 0.25.0
chapel 1-m.chpl 3927ms 97ms 59.5MB 7640ms 30ms chpl 1.29.0

Input: 1000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
go 1-m.go 86ms 33ms 5.4MB 147ms 0ms go 1.19.5
go 1.go 268ms 2.0ms 65.3MB 250ms 3ms tinygo 0.25.0
chapel 1-m.chpl 270ms 6.8ms 20.4MB 480ms 7ms chpl 1.29.0

edigits

Input: 250001

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 1.chpl 97ms 0.6ms 11.7MB 90ms 0ms chpl 1.29.0
go 1.go 165ms 1.5ms 8.1MB 150ms 3ms go 1.19.5

Input: 100000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 1.chpl 43ms 1.8ms 20.9MB 37ms 0ms chpl 1.29.0
go 1.go 50ms 1.1ms 8.2MB 40ms 0ms go 1.19.5

fasta

Input: 2500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 5-m.chpl 145ms 1.2ms 9.5MB 250ms 3ms chpl 1.29.0
go 3-m.go 251ms 1.7ms 2.9MB 453ms 0ms go 1.19.5

Input: 250000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 5.chpl 28ms 0.9ms 10.6MB 23ms 0ms chpl 1.29.0
go 3.go 32ms 0.1ms 2.9MB 40ms 0ms go 1.19.5

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
go 1.go 2.0ms 1.3ms 0.0MB 0ms 0ms tinygo 0.25.0
go 1.go 2.6ms 0.5ms 2.9MB 0ms 0ms go 1.19.5
chapel 1.chpl 15ms 2.8ms 10.2MB 13ms 0ms chpl 1.29.0

knucleotide

Input: 2500000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 3-m.chpl 1012ms 59ms 88.2MB 1780ms 33ms chpl 1.29.0
go 7-m.go 1512ms 45ms 38.5MB 2780ms 27ms go 1.19.5

Input: 250000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 3-m.chpl 165ms 1.3ms 63.5MB 267ms 13ms chpl 1.29.0
go 7-m.go 244ms 12ms 23.5MB 383ms 17ms go 1.19.5

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 2.chpl 374ms 1.0ms 2.6MB 363ms 0ms chpl 1.29.0
go 1.go 458ms 2.3ms 2.9MB 443ms 0ms go 1.19.5
go 1.go 843ms 1.9ms 0.0MB 830ms 0ms tinygo 0.25.0

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
go 1.go 50ms 2.0ms 2.9MB 40ms 0ms go 1.19.5
chapel 2.chpl 52ms 1.1ms 20.2MB 47ms 0ms chpl 1.29.0
go 1.go 87ms 1.1ms 0.0MB 80ms 0ms tinygo 0.25.0

pidigits

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 2.chpl 593ms 3.5ms 4.1MB 577ms 3ms chpl 1.29.0
go 8.go 1388ms 1.8ms 10.4MB 1367ms 0ms go 1.19.5

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 2.chpl 147ms 0.9ms 3.8MB 140ms 0ms chpl 1.29.0
go 8.go 334ms 1.0ms 10.3MB 310ms 3ms go 1.19.5

regex-redux

Input: 2500000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 3.chpl 1995ms 11ms 221.6MB 1847ms 137ms chpl 1.29.0
go 3.go timeout 0.0ms 116.1MB 4973ms 67ms go 1.19.5
go 3.go timeout 0.0ms 120.9MB 4963ms 20ms tinygo 0.25.0

Input: 250000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 3.chpl 218ms 3.7ms 35.6MB 187ms 17ms chpl 1.29.0
go 3.go 2541ms 30ms 18.5MB 2523ms 17ms go 1.19.5
go 3.go timeout 0.0ms 30.0MB 4977ms 3ms tinygo 0.25.0

secp256k1

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
go 0-ffi.go 174ms 6.2ms 9.4MB 160ms 3ms go 1.19.5
chapel 1.chpl 1539ms 19ms 32.3MB 1507ms 13ms chpl 1.29.0

Input: 500

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
go 0-ffi.go 59ms 4.1ms 9.6MB 43ms 0ms go 1.19.5
chapel 1.chpl 398ms 0.6ms 32.3MB 387ms 0ms chpl 1.29.0

spectral-norm

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 1-m.chpl 2300ms 88ms 32.3MB 4430ms 7ms chpl 1.29.0
go 4-m.go 2484ms 4.4ms 5.4MB 4830ms 0ms go 1.19.5
chapel 1.chpl 4374ms 2.3ms 32.4MB 4363ms 3ms chpl 1.29.0
go 1.go 4964ms 6.5ms 5.4MB 4953ms 0ms go 1.19.5
go 1.go timeout 0.0ms 0.4MB 4983ms 0ms tinygo 0.25.0

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 1-m.chpl 581ms 0.8ms 32.3MB 1110ms 0ms chpl 1.29.0
go 4-m.go 628ms 2.7ms 3.4MB 1197ms 0ms go 1.19.5
chapel 1.chpl 1111ms 1.9ms 32.3MB 1100ms 0ms chpl 1.29.0
go 1.go 1245ms 4.2ms 2.9MB 1230ms 0ms go 1.19.5
go 1.go 2577ms 4.4ms 0.0MB 2563ms 0ms tinygo 0.25.0

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
chapel 1-m.chpl 164ms 3.6ms 32.3MB 287ms 3ms chpl 1.29.0
go 4-m.go 167ms 2.2ms 2.9MB 297ms 0ms go 1.19.5
chapel 1.chpl 297ms 1.7ms 32.3MB 287ms 0ms chpl 1.29.0
go 1.go 313ms 1.7ms 2.9MB 297ms 0ms go 1.19.5
go 1.go 647ms 1.1ms 0.0MB 633ms 0ms tinygo 0.25.0