3 ms·
I’ve worked with Chapel a lot. It’s an insanely powerful language that will challenge your ideas (at least for me) about many language constructs in the spirit
by eismcc 7y ago
I’ve worked with Chapel a lot. It’s an insanely powerful language that will challenge your ideas (at least for me) about many language constructs in the spirit of HPC. I went to it around 2014 for doing distributed arm projects and implemented several projects. Here’s a simple search engine. My github had a number of chapel projects.
Once you get the hang of Chapel you will find it changes how you think about parallel computing. For more advanced concepts the learning curve is steep and not something you can get in a hello world example, but totally worth the effort.
https://github.com/briangu/chearch https://github.com/briangu/chearch
- zentiggr 7y agoFor us non-HPC developers, does it make any sense to dig deeper? I get the feeling there could be some interesting thread/core usage maximisation ideas, or some such, but I've not delved before so I have no frame of reference.
- Abishek_Muthian 7y agoThank you. I've been experimenting lately with multi-architecture distributed computing (ARM <---> x86_64) with frameworks such as dask, ray and although there were quirks in getting them running on ARM; I was able to make it work [1]. I was thinking of checking out Julia's distributed computing capabilities next, but their insistence on same OS, path etc. (last time I checked) didn't inspire confidence in me for my purpose. Would Chapel be a good alternative for multi-architecture distributed computing? My goals are simple, to explore what it takes to distribute & compute something across different architectures in parallel. [1]https://gist.github.com/heavyinfo/aa0bf2feb02aedb3b38eef203b4b8cc4 https://gist.github.com/heavyinfo/aa0bf2feb02aedb3b38eef203b...
- eismcc 7y agoMaybe but it wasn’t the last time I did it. The main issue at the tome was that the naive deployment model uses SSH to deploy the artifacts and setup the cluster. Maybe it’s possible to create a hybrid build and do it that way but I’ve not tried.
- bradcray 7y agoHistorically, Chapel had an effort to support mixed instruction sets within a single logical program, but this effort fell by the wayside due to the amount of effort required to maintain it, combined with the fact that it was virtually unused (most HPC programmers are using homogeneous nodes, or at least ones with compatible ISAs). Chapel can still be used in multi-architecture distributed computing today, but by running a Chapel program per ISA and having them communicate through more traditional means (e.g., ZMQ).
- Abishek_Muthian 7y agoThank you for the heads-up.
- _pmf_ 7y agoVery interesting; thought it was a bit academic, and finding somebody who has actually used it makes me more motivated to look into it.