.. title: PAR Class 3, Thurs 2019-01-17
.. slug: class03
.. date: 2019-01-17
.. tags: class
.. category: 
.. link: 
.. description: 
.. type: text

.. raw:: html

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

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

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


parallel.ecse
-------------

Its accounts are completely separate from RCS; I just had you use the same userid for convenience.  Changing your password on parallel does not affect your RCS password, and vv.


LLNL parallel tutorial
----------------------

We'll quickly finish it.  https://computing.llnl.gov/tutorials/parallel_comp/

Student talks - 1st set
-----------------------

#. Go to https://doodle.com/poll/viz67bb7xrw45yv3.  Pick a topic by entering your name and rcsid (because sometimes students have similar names and sometimes students use different names from what's on the classlist).   The topics are:

   a. Describe the fastest 2 computers on the top500 list.  https://www.top500.org/lists/2018/11/

   #. Describe computers 3 and 4 on top500.

   #. Describe computers 5 and 6 on top500.

   #. Describe RPI's Blue Gene.

   #. Summarize python's parallel capabilities.

   #. Summarize Matlab's parallel capabilities.
      
   #. Summarize Mathematica's parallel capabilities.
      
   #. Summarize MPI.

   #. Describe an application where physics needs/uses parallel computing.
      
   #. Describe an application where astronomy needs/uses parallel computing.
      
   #. Describe an application where biology needs/uses parallel computing.
      
   #. Describe an application where astronomy needs/uses parallel computing.
      
   #. Give an application where machine learning needs/uses parallel computing.
      
   #. Give an application where computational fluid dynamics needs/uses parallel computing.
      
   #. Summarize OpenACC.

   #. Summarize pthreads.

   #. Other related topic of your choice.   Tell me an I'll add it to the list.   
      

      
#. Note that any topic can be picked at most once.
      
#. Two students may work together to present one talk.
   
#. Prepare and give 5-10 minute talk next Thurs 1/24.    A team would jointly give one 5-10 minute talk.



OpenMP
------

#. We'll see some examples running on parallel, at /parallel-class/openmp/rpi

#. We saw that running even a short OpenMP program could be
   unpredictable.  The reason for that was a big lesson.

   There are no guarantees about the scheduling of the various
   threads.  There are no guarantees about fairness of resource
   allocation between the threads.  Perhaps thread 0 finishes
   before thread 1 starts.  Perhaps thread 1 finishes before
   thread 2 starts.  Perhaps thread 0 executes 3 machine
   instructions, then thread 1 executes 1 instruction, then thread
   0 executes 100 more, etc.  Each time the process runs,
   something different may happen.  One thing may happen almost
   all the time, to trick you.


   
Compiling and running
---------------------
	  
#. c++ compilers:   g++-8 etc., clang-7 etc..  I'm updating them.

#. Measuring program times when many people are on the machine:

   i. This is a problem.
   #. One partial solution is to use **batch** to queue your job to run when the system is unloaded.


    
