4 ms·
Chapel has great syntax and ergonomics as others have mentioned. What it doesn't currently have is great performance, e.g. [1]. That said, it appears to be head
by bovine3dom 7y ago
Chapel has great syntax and ergonomics as others have mentioned. What it doesn't currently have is great performance, e.g. [1]. That said, it appears to be heading in the right direction [2]. I last checked about 5 years ago and the story was much worse.
[1]: https://drops.dagstuhl.de/opus/volltexte/2019/10879/pdf/OASIcs-SLATE-2019-12.pdf https://drops.dagstuhl.de/opus/volltexte/2019/10879/pdf/OASI...
[2]: https://chapel-lang.org/perf/chapcs/ https://chapel-lang.org/perf/chapcs/
- roknovosel 7y agoWow, never thought I'd see my paper[1] on HN :) Even though getting the right performance was tricky, I was more frustrated with the lack of tooling, sometimes cryptic compiler messages and long compilation times for even mid-sized programs. Most of the issues were mitigated by the great community around Chapel. They are usually very responsive and helpful in their Gitter channel. In regards to actual parallel programming, Chapel was a breeze. Documentation is solid and most of the parallel concepts were easy to use.
- bradcray 7y agoChapel performance has improved by leaps and bounds over the past 5+ years, though link [2] above focuses on single-node performance whereas most the team's recent optimization efforts have been focused on improving distributed memory performance and scalability, some indications of which can be seen at [3]. Of course, it's very possible for programmers without Chapel expertise to write and publish bad performance results in Chapel. The Chapel team is very interested in working with such users to help them understand where performance is being lost and to improve things to benefit future users. Most of our recent optimizations have been motivated by user feedback, and in practice we're typically able to help users get their codes to match or beat the performance of conventional approaches with reduced effort. A favorite recent example of mine can be seen in slides 6-16 of Nikhil Padmanabhan's talk at PAW-ATM 2019 [4]. A good way to keep up with Chapel performance improvements beyond whatever gets peppered into our talks is through the release notes that we publish every six months, e.g. [5], [6], [7]. [3]: https://chapel-lang.org/perf/16-node-xc/?configs=gnuugniqthreads&graphs=hpccraatomicsperfgupsn233,hpccraonperfgupsn233,hpccrarmoperfgupsn233,hpccstreamepperfgbsn5723827200,hpccglobalstreamperfgbsn5723827200,sscassca2kernel4perftepssize2224vertices,prkstencilvariationsperf,isxrelease https://chapel-lang.org/perf/16-node-xc/?configs=gnuugniqthr... [4]: https://github.com/sourceryinstitute/PAW/raw/gh-pages/PAW-ATM19/presentations/PAW-ATM2019_talk3.pdf https://github.com/sourceryinstitute/PAW/raw/gh-pages/PAW-AT... [5]: https://chapel-lang.org/releaseNotes/1.20/06-perf-opt.pdf https://chapel-lang.org/releaseNotes/1.20/06-perf-opt.pdf [6]: https://chapel-lang.org/releaseNotes/1.19/05-benchmark-opts.pdf https://chapel-lang.org/releaseNotes/1.19/05-benchmark-opts.... [7]: https://chapel-lang.org/releaseNotes.html https://chapel-lang.org/releaseNotes.html