Skip to main content

PAR Class 17, Thu 2020-03-26

Table of contents

1   Mediatesite

The videos of our classes will be in my Mediatesite channel ECSE-4740 Applied Parallel Computing for Engineers.

Please report any problems. I have no easy way to see the system from a student's perspective.

2   Thrust

  1. Stanford's parallel course notes.

    Starting with lecture 5, which shows us a little CUDA code and, more important, optimizing techniques and parallel paradigms.

    I showed starting from lecture 5 through lecture 8, slide 19.

  2. The github repository, with demo is https://github.com/thrust/thrust.git .

    Nvidia's proprietary version is slightly newer.

  3. The most comprehensive doc is online at http://thrust.github.io/doc/index.html

    It is badly written and slightly obsolete.

  4. There are various tutorials online, most obsolescent. E.g., they don't use C++-11 lambdas, which are a big help.

  5. Look at some Thrust programs in /parallel-class/cuda/thrust

  6. One Nvidia-sponsored alternative is agency, at https://github.com/agency-library/ .

  7. There are other alternatives that I'll mention later.

  8. The alternatives are lower-level (= faster and harder to use) and newer (= possibly less debugged, fewer users).

  9. However OpenACC now looks competitive.

  10. The biggest problem with Thrust is that it appears that Nvidia has de-emphasized it, and appears to be making it proprietary. The two latest versions of Thrust do not allow Intel as a backend. That is a bad sign, and may be a reason to stop using it. The Thrust developers say that this is temporary but they haven't fixed it in the release version.