psteinb / hpc-in-a-day

a full day lesson material to teach the basics of using a HPC cluster to novices
Other
33 stars 13 forks source link

is python the best language to teach parallel programming? #17

Open psteinb opened 7 years ago

psteinb commented 7 years ago

the feedback to the course mentioned at some point, that we don't work with threads at all (even though many tools in HPC ask by means on CLI options how many threads are to be used)

the internals of python force the materials to express parallelism through multiple processes (multiprocessing)

shwina commented 7 years ago

is python the best language to teach parallel programming?

IMO, Python is a bad choice for a parallel-programming-in-a-day workshop, but as good a choice as any other (and probably the "best") language for hpc-in-a-day.

If the objective is to get learners started with interacting and using an HPC cluster, and getting them to write and submit their first program which uses multiple cores, multiple nodes, or both, Python is a great choice (via multiprocessing, numba, mpi4py, or other options for parallel programming with Python).

If the objective is more about teaching parallel programming itself, e.g., communication, synchronization, race conditions, etc., a lower level language such as C may be more appropriate.