First, are Julia’s threads still “experimental”? The paper claiming it, published in September, seems to have been been first out in June, so that may explain it. More importantly, are Julia’s threads “not yet mature enough” (and Chapel’s better)?
I thought Chapel’s syntax and semantics were stable, but you may find their change from 0-based to 1-based intriguing (or their reasoning), they’re otherwise arbitrary-based (like Fortran, and Pascal, need to specify start, end). This is a special case, and it’s probably mostly stable.
https://chapel-lang.org/whatsnew.html
Novemer 16, 2020
[For some reason, and not yet done at its Wikipedia page, Cray no longer supporting?]
- Removed the “Cray” mark from the version of the Chapel logo used on the website.
[…]
October 8, 2020
- Added a mention of Chapel being named a Bossie 2020 Award Winner to the front page [I believe Julia also got Bossie award, previously.]
[…]
October 7, 2020
- Added slides for Brad’s PACT’20 keynote on compiling Chapel to the featured presentations list.
[…]June 25, 2020
- Added a new journal paper comparing Chapel, Julia, and Python/Numba to OpenMP by Gmys et al. to the publications and papers page.
April 16, 2020
- Chapel version 1.22.0 was released today, switching Chapel’s implicitly indexed types and interfaces from 1-based to 0-based indexing—download your copy today!
https://www.sciencedirect.com/science/article/pii/S2210650220303734
In terms of parallel performance, the multi-threaded loop-level parallelism provided by Python/Numba and Julia allows us to speed up computations, but their multi-threading support (experimental) is not yet mature enough to compete with OpenMP, especially for very fine-grained tasks. Chapel’s task-based parallelism, on the other hand, scales nearly as well as optimized C/OpenMP.
https://chapel-lang.org/papers.html
Abstract for the one above:
This paper compares Chapel with Julia, Python/Numba, and C+OpenMP in terms of performance, scalability and productivity. Two parallel metaheuristics are implemented for solving the 3D Quadratic Assignment Problem (Q3AP), using thread-based parallelism on a multi-core shared-memory computer. The paper also evaluates and compares the performance of the languages for a parallel fitness evaluation loop, using four different test functions with different computational characteristics. The authors provide feedback on the implementation and parallelization process in each language.*
You would think with the version number 1.23 (26th release) it’s stable: https://github.com/chapel-lang/chapel/blob/release/1.23/CHANGES.md
library:
- added new ‘Heap’ and ‘OrderedSet’ modules
[…]
the
mason
package manager:
- interactive modes for
mason new
andmason init
- improved ergonomics for
mason search
,test
,build
, andpublish
bash
completion support
minor improvements to Python interoperability
Deprecated / Unstable / Removed Language Features
[lots, e.g.]
removed
string
vs.bytes
comparisons
[…]
removed support forC++-style
deinitializer names e.g.proc ~C()
removed support for vectorization hinting to the C backend