The Computer Language
25.02 Benchmarks Game

Chapel versus Julia

How the programs are written matters! Always look at the source code.

If the fastest programs are flagged * possible hand-written vector instructions or "unsafe" or naked ffi, does the host language matter? You might be more interested in the less optimised programs — more seconds, less gz source code.

fannkuch-redux      
  elapsed Mean or 95% CI      
source secs cpu secs mem gz make
* Julia #2 8.59 31.99 333,136 1077 0.12
Chapel #2 8.48 33.63—33.69 9,699 737 21.01
* Julia #3 9.44 35.60—35.68 333,103 896 0.12
Julia 42.56 42.61 309,703 441 0.10
n-body      
  elapsed Mean or 95% CI      
source secs cpu secs mem gz make
Chapel #3 3.61 3.58 9,720 983 20.46
Julia #5 3.80 3.84—3.96 345,936 1129 0.11
Chapel #4 4.68 4.66 9,568 1027 20.35
Chapel #2 5.74 5.72 9,929 977 20.76
Julia #4 7.17 7.23 415,039 1168 0.13
Julia #3 8.05 8.10—8.14 415,158 1548 0.11
Julia #2 28.79 29.10—29.76 415,015 1084 0.09
spectral-norm      
  elapsed Mean or 95% CI      
source secs cpu secs mem gz make
Chapel #2 0.79 2.91 9,916 348 20.86
Julia #4 1.30 3.72 315,802 435 0.14
Julia #2 2.83 5.80—5.84 414,999 377 0.09
Chapel 1.50 5.78 10,109 322 20.65
mandelbrot      
  elapsed Mean or 95% CI      
source secs cpu secs mem gz make
Chapel #3 1.18 4.52 42,295 582 21.29
Julia #7 1.53 4.86 357,155 629 0.10
Julia #2 1.56 4.96 356,286 634 0.12
Julia #3 1.61 5.16—5.20 376,521 589 0.13
Julia #4 2.07 5.19 368,177 583 0.12
Julia #5 1.76 5.84 381,854 580 0.12
Julia #6 2.25 5.88 368,796 571 0.08
Chapel 6.68 26.49 41,964 447 20.87
Julia 26.66 26.72 339,251 379 0.09
fasta      
  elapsed Mean or 95% CI      
source secs cpu secs mem gz make
Chapel #6 0.84 0.81 10,310 1108 21.24
Julia #2 1.28 1.32 317,960 1094 0.06
Julia #5 2.67 2.72 334,729 957 0.12
Julia #4 2.73 2.77 320,463 1053 0.12
Chapel #5 1.01 3.54—3.60 11,284 1391 22.88
Chapel #3 4.07 4.05 9,597 1219 22.91
* Julia #7 1.98 4.86—5.21 405,914 1189 0.10
* Julia #6 2.25 4.70—4.91 391,623 1213 0.13
Julia #3 11.67 11.72—11.76 318,525 901 0.10
k-nucleotide      
  elapsed Mean or 95% CI      
source secs cpu secs mem gz make
Julia #6 6.82 14.29—14.70 524,403 965 0.08
Chapel #4 5.02 16.99—17.77 197,980 1074 28.32
Chapel #3 5.99 20.72—21.61 190,841 1044 28.35
Julia #7 9.91 24.02—24.48 576,082 1379 0.10
Julia 132.16 133.46—134.30 1,696,596 703 0.13
reverse-complement      
  elapsed Mean or 95% CI      
source secs cpu secs mem gz make
Julia #7 1.75 1.83 1,128,034 531 0.12
Julia #9 2.08 2.17 1,330,057 456 0.12
Chapel #9 1.00 2.82—2.88 1,087,742 1260 21.34
Chapel #5 1.83 3.23—3.45 1,442,632 554 20.72
Chapel #3 1.84 3.27—3.41 1,669,767 709 20.76
Julia #2 29.38 29.83—30.87 2,259,771 464 0.13
binary-trees      [ Contentious. Different approaches. ]
  elapsed Mean or 95% CI      
source secs cpu secs mem gz make
Chapel #5 2.06 7.24 1,825,448 646 19.88
Julia #2 12.60 13.45—14.61 552,776 430 0.11
Julia #4 14.42 15.81—15.87 551,617 378 0.07
Julia #3 7.34 19.54—21.11 569,876 640 0.12
Chapel #3 8.61 26.00—26.04 314,032 494 20.69
Chapel #4 7.29 26.60—26.71 495,673 489 20.08
Julia #5 22.15 60.91—62.04 1,392,615 396 0.08
pidigits      [ Contentious. Different libraries. ]
  elapsed Mean or 95% CI      
source secs cpu secs mem gz make
* Chapel #4 0.80 0.78 11,416 515 19.88
Chapel #2 0.80 0.78 11,543 423 20.04
* Julia #3 1.13 1.24 307,601 512 0.12
* Julia #2 1.24 1.31 315,621 686 0.13
Julia #4 3.76 3.86—3.92 414,806 531 0.11
regex-redux      [ Contentious. Different libraries. ]
  elapsed Mean or 95% CI      
source secs cpu secs mem gz make
* Julia #5 1.91 3.18 519,856 766 0.12
* Julia #4 2.00 3.26—3.33 522,338 772 0.09
* Julia #3 2.18 3.58 671,347 630 0.12
Chapel #3 3.17 4.07—4.13 392,372 503 22.24
Chapel #2 3.58 4.51 391,442 498 21.16
Julia 5.19 5.26—5.35 714,330 414 0.11
Chapel

chpl version 2.3.0
built with LLVM version 19.1.1
Copyright 2020-2024
Hewlett Packard Enterprise Development LP
Copyright 2004-2019 Cray Inc.

Julia

julia version 1.11.1