hpc-carpentry / coordination

Delocalized issues relevant to the HPC Carpentry organization overall
https://hpc-carpentry.github.io/
6 stars 7 forks source link

Proposal: archive hpc-chapel #86

Closed tkphd closed 3 years ago

tkphd commented 3 years ago

At the SC21 BOF, interest in topics was (src):

topic upvotes
Containers 75%
Python 63%
MPI 60%
Dask 21%
Julia 17%
Chapel 0%

Based on this feedback, I propose archiving the hpc-chapel repository. This is mostly symbolic, as no significant attention has been paid to those lessons recently, but it is better to clearly signal that we are not going to devote any time to it (by archiving it) than it is to imply intent without actually having any (by leaving it open, but untouched).

razoumov commented 3 years ago

Ouch, that hurts, especially that from all the topics listed, Chapel has the most to do with HPC, and containers the least. I am biased however, having developed the HPC Chapel lessons, and we use them regularly for teaching shared- and distributed-memory parallel programming.

tkphd commented 3 years ago

oooo... sorry @razoumov! I was not aware that you regularly use the HPC Chapel lesson. Are you able to attend a Coordination or Coworking meeting in the next month or two to share your experiences & goals for the material? It's possible that our community simply does not know where Chapel fits in.

razoumov commented 3 years ago

@tkphd Yes, I'll be happy to attend a Coordination or Coworking meeting either before or after my vacation (Dec-13 to Jan-11) -- please ping me when you schedule a meeting. In short, in our HPC consortium over the past 5 years, we have largely switched from teaching MPI and OpenMP to teaching an Intro to HPC that includes maybe 10 mins on each -- MPI, OpenMP, Chapel, Julia, Dask -- to tell students few words about each of these frameworks, followed by full-day parallel Chapel and full-day parallel Julia workshops. We advise participants to attend either one or the other, but some attend both Chapel and Julia versions.

In the full-day workshops the goal is to expose participants to the principles and challenges of parallel programming, whether it is multi-threading or multi-processing, data and task parallelism, shared- and distributed-memory models, communication bottlenecks, parallel scaling and benchmarking, race conditions, deadlocks, atomic/sync variables and other mechanisms to synchronize tasks. It is much, much easier to teach all of these concepts in one day in Chapel than in MPI + OpenMP.

We recently started using Julia for all of this too, it has a lot of potential but also lots of quirks, typically requiring more initial knowledge than Chapel.

It is another question how many participants will actually write parallel code for their research. In reality, only a tiny fraction of our HPC users develop parallel codes, but I think it is important to expose them to these ideas, and to give practical knowledge to those few who decide to develop large simulation codes.

tkphd commented 3 years ago

Hi @razoumov, we're having a Coworking Hour later today; are you able to join at 2200 UTC to discuss Chapel? (see #88 for details)

razoumov commented 3 years ago

@tkphd Hi Tervor - yes, I'll be there in 2 hours. Thanks for pinging me!

tkphd commented 3 years ago

Following today's conversation, Chapel is very much Still Alive, and we'll work on updating it from @razoumov's materials rather than archiving.

I feel happy!