Skip to main content

PAR Class 2, Thu 2021-01-28

1 Webex, classes, etc

  1. I'll continue to use Webex Meet for awhile because it lets me show the chat window simultaneously.

  2. In Webex (formerly called Webex Teams), I have a space for people to talk.

  3. Mediasite has recordings of classes.

  4. My blog has transcripts and chats. See the Files tab.

2 LLNL parallel tutorial

We'll quickly finish it, starting at Parallel Programming Models. https://computing.llnl.gov/tutorials/parallel_comp/

3 Material

  1. Think about these questions.

    1. Why have machine cycle speeds stopped increasing?

    2. What architectures do the top 3 machines on the Top 500 list use?

    3. Which one of the following 4 choices are most GPUs: SISD, SIMD, MISD, MIMD.

    4. Which one of the following 4 choices are most current multicore CPUs: SISD, SIMD, MISD, MIMD.

    5. Per Amdahl's law, if a program is 10% sequential and 90% parallelizable, what is the max speed up that can be obtained with an infinite number of parallel processors?

4 Recently obsoleted parallel tech

  1. Intel Xeon Phi

  2. IBM BlueGene

5 My research

I do parallel geometry algorithms on large problems for CAD and GIS. See my home page. If this is interesting, talk to me. Maybe you can do something that leads to a jointly-authored paper.

6 parallel.ecse

  1. I've set up account for you.

  2. Your user name is your rcsid.

  3. I'll mention your initial password. Change it.

  4. Play with them. I recomend connecting with ssh.

  5. From outside RPI, you need to use the vpn.

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

7 OpenMP

  1. https://www.openmp.org/ Browse it.

  2. Read https://computing.llnl.gov/tutorials/openMP/

  3. We'll see some examples running on parallel, at /parclass2021/files/openmp/rpi

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