PAR Class 3, Thurs 2019-01-17
Table of contents::
1 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.
2 LLNL parallel tutorial
We'll quickly finish it. https://computing.llnl.gov/tutorials/parallel_comp/
3 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:
- 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.
4 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.
5 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:
- This is a problem.
- One partial solution is to use batch to queue your job to run when the system is unloaded.