Page 1 of 1

Parallel Programming Resources

PostPosted: Wed Sep 24, 2014 11:21 am
by aolofsson
As part of the Parallella Kickstarter campaign, I committed to writing a book about parallel programming. I haven't forgotten and I am working on it. Now that we are finally into production and distribution safely with the Parallella board, education is becoming the #1 priority, so my writing pace WILL improve by a couple of orders of magnitude over the next few months. In the meantime, here are a number of pretty good free online resources:

An introduction to parallel programming from LLNL:
https://computing.llnl.gov/tutorials/parallel_comp/

Is Parallel Programming Hard, And, If So, What Can You Do About It?
https://www.kernel.org/pub/linux/kernel ... ook-e1.pdf

Programming on Parallel Machines.
http://heather.cs.ucdavis.edu/~matloff/ ... ocBook.pdf

Journeyman's Programming Tour
http://grid.hust.edu.cn/wusong/file/Par ... puting.pdf

An Introduction to Parallel Programming with OpenMP
http://www.roe.ac.uk/ifa/postgrad/pedag ... ssling.pdf

An Introduction to MPI from LLNL
https://computing.llnl.gov/tutorials/mpi/

Programming for the transputer in C. [historical]
http://cs.smith.edu/~thiebaut/transputer/toc.html

If you know of other high quality free resources, please respond to this topic.

Andreas

Re: Parallel Programming Resources

PostPosted: Wed Sep 24, 2014 4:40 pm
by theover
Hi Andreas,

I've looked at your impressive list of PP resources, and couldn't help but feel a few mismatches might be at stake here. First, the Parallella isn't (yet) a big*ss memory, convoluted caching structure mini/supercomputer in the traditional, towards which most of these papers seem to have a bias.
Maybe it would be interesting in the context of the first two and more specifically the third papers kind of academic realm (where I worked some years) to define more specifically what the difference is between the general concepts of modern computers and structural ordering in all kinds of ways (sensible and less sensible like all kinds of C++ hierarchies without much useful meaning,except that they exist and do something), what the technical basis is and how most of the actually efficient parallel programs work in practice.

Of course the Parallella with the Epiphany is a great parallel processing implementation vehicle, in some ways revolutionary, so I'd hope it can act as a good educational tool, which in my opinion will fail if the people who just want some opportunistic edge (of whom I met ample instances in the academic realm) get too much of the teaching floor. In good tradition, I think both at hard work-level and more theoretically, the technical scientists and engineers that work proper with the technological givens at hand achieve useful knowledge levels the easiest, and are the most respectable in their jobs. I mean some of the articles I browsed over are a bit far from the Parallella reality.

I learned about Thrust for Cuda 4.0+ and TBB going over the literature list above, thanks for that.

Theo V.