.. title: PAR Class 17, Thu 2020-03-26
.. slug: class17
.. date: 2020-03-07
.. tags: class
.. category: 
.. link: 
.. description: 
.. type: text
.. has_math: true

.. raw:: html

   <style> .red {color:red} </style>
   <style> .blue {color:blue} </style>

.. role:: red
.. role:: blue

.. sectnum::
.. contents:: Table of contents
..



Mediatesite
-----------

The videos of our classes will be in my Mediatesite channel `ECSE-4740 Applied Parallel Computing for Engineers <https://mediasite.mms.rpi.edu/Mediasite5/Channel/ecse-4740>`_.

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


Thrust
------

#. `Stanford's parallel course notes <../files/stanford/>`_.

   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.

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

   Nvidia's proprietary version is slightly newer.
   
#. The most comprehensive doc is online at http://thrust.github.io/doc/index.html

   It is badly written and slightly obsolete.

#. There are various tutorials online, most obsolescent.  E.g.,
   they don't use C++-11 lambdas, which are a big help.
   
#. Look at some Thrust programs in /parallel-class/cuda/thrust

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

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

#. The alternatives are lower-level (= faster and harder to use) and newer (= possibly less debugged, fewer users).
   
#. However OpenACC now looks competitive.

#. 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.
   
