|
|
|
|
|
by wylie
5477 days ago
|
|
Do you think that learning about parallelism would help a beginner to learn how to program, or to understand code better? I consider myself an intermediate programmer, with about five years of experience, but have never explored HPC. Not sure it would have helped me more to have done so as a beginner. |
|
* assignment/sequence
* recursion
* concurrency.
Most students never master the first, and most of those never master the second, and so on. In that spirit, I would recommend that the OP firmly grasp the first two with both hands before reaching for the third. Of the languages the OP could study that treat concurrency or parallelism as a kind of conceptual primitive (e.g. Scala or Erlang), none are likely to appear as working languages in an HPC milieu. Almost always, the libraries are bolted on as an afterthought to traditionally popular languages for scientific computing.
I think this is a regrettable pattern, but a pattern which will shape the OP's daily work if they wish to begin (and remain in) a program in computational chemistry.
All I meant to suggest is that when the OP begins to learn parallel computing, they want to be thinking about parallel algorithms, not segfaults or pointer purgatory or the finer points of scp or vi. The sooner the former can be mentally sublimed, the better the OP will feel about HPC.