Reading Groups

You have been assigned to a reading group for the semester:

Your reading group will meet weekly to discuss the weekly paper assignment, and to write reacation notes together that you will submit prior to the Monday class meeting where we discuss the paper(s). Note that this must be completed prior to the class meeting when we discuss the assigned paper(s). Specifically, each week your group will:

  • Meet to discuss the weekly paper prior to the class meeting in which the paper will be discussed. Prior to meeting with your reading group, each group member should have critically read the paper(s) ( Tips for reading research papers), and taken some notes on their reading to prepare for the discussion.

  • After your group’s discussion of the paper(s), together you will work on a single Reaction Notes document by your reading group. One Reaction Notes document will be submitted per Reading Group. Group members should take turns with lead editing repsonsibility of the write-up. However, you are all responsible for its content and will all receive the same grade on it.

The purpose of your weekly reading group meetings and reaction notes writing is to help you prepare for in-class discussions of papers.

Requirements

READ THIS: Reading Group and Reacation Notes Guide. It contains detailed requirements for reading notes and reading groups, as well as tips for reading research papers, reading group meetings, and information about how to access your ReactionNotes repo from CS87 github org, and write-up and submit your group’s reaction notes.

Because your reading group will meet weekly, you should schedule a regular weekly meeting time for your group.

Finally, remember to bring a print-out or electronic version of your reaction notes and the paper(s) to class with you each week.

Viewing and Printing Papers

Papers that are available from ACM or IEEE digital library must be accessed from within swarthmore.edu to download a .pdf version of the paper that you can then print and read.

You can view and print pdf files using acroread or evince:

$ acroread file.pdf
$ evince file.pdf

You can view most postscript files (and gziped postscript files) using gv on our system:

$ gv file.ps.gz

gv cannot handle some version of postscript, in this case you should save a copy of the paper.ps.gz file, gunzip it, and try viewing in gs or convert it to pdf and view it using evince or acroread:

$ gunzip file.ps.gz
$ gs file.ps
$ ps2pdf file.ps      # creates file.pdf you can open with acroread

You can print a postscript file using lpr (but lpr is not pdf files!):

$ lpr file.ps
$ mpage -2 -M-10 -dp file.ps | lpr     # using mpage to create a 2-up version

You can print a pdf file from evince or acroread. You could also convert a pdf file to postcript using pdf2ps and then print the postscript conversion using lpr.

$ pdf2ps file.pdf  # creates file.ps you can print with lpr

Fall 2021 Papers

In addition to the assigned weekly readings, there are some related paper references here: Additional Cluster and Distributed Computing Papers


Paper 1: Due Tues Sept 7 (class starts at 1pm)

This week is not a paper discussion, but a group presentation. Each Reading Group will prepare a 15 minute presentation on a specific parallel architecture and system that they will deliver in class week 2.


Paper 2: Due Sept. 13

NOTE: your reactionsnotes.tex and QUESTIONNAIRE.adoc must be pushed to your repo by 9am

Reaction Notes paper on System Design:

Quick Read paper* on Network Communication:

Reaction Notes Question

What is meant by an endpoint? Is there any benefit to putting a function not at an endpoint (in a lower-level or intermediate point)? If yes, explain what is gained by doing so and if any guarantee about the functionality can be made by doing so. If no, explain why not. You may want to use an example to explain your answer.

*About Quick Read Papers

With the main Reaction Notes paper(s) each week, there may also be a Quick Read paper assignment. Quick Read papers are ones you should read through less thoroughly than the main paper(s)--read through one time to try to get a big picture ideas of the paper. They are related to the main Reaction Notes paper(s). They may present comparision systems, provide a example, or help explain some parts of the main Reaction Notes paper. We discus them in class, but not at the same depth level as the main paper(s).

We will discuss this paper briefly and at a high-level. As you skim through it try to understand the main goals and a rough idea of how those lead to separate protocol layers TCP and IP (and UDP-IP). You do NOT need to know, nor understand, the details of IP, UDP, TCP. Nor do you need to know any of the other protocols presented (just FYI: ISO-OSI is the original layered protocol model for communication networks, and X.25 is an older protocol for packet switched networks (pre-dating IP)).


Paper 3: Due Sept. 20

Reaction Notes papers on Parallel Languages

Don’t get too bogged down in the code examples in these, focus on the language, goals, and types of parallelization and target systems. It is probably easier to understand the OpenMP paper if you read the MPI paper first.
  1. MPI: A message passing standard for MPP and workstations, Dongarra, Otto, Snir, and Walker, CACM, 39(7), 1996, pp. 84-90

  2. OpenMP: OpenMP: An Industry-Standard API for Shared-Memory Programming, by Leonardo Dagum and Ramesh Menon, in IEEE Computational Science and Engineering, January 1998

    Note: in the Fortran code examples, lines that begin with 'c' are comments. Chapt. 14.7 of Dive into Systems, and the Lawrence Livermore National Laboratory OpenMP tutorial have OpenMP examples in C (and C++).

Reaction Notes Question

What are the target systems for MPI and OpenMP? How well would each fit for programming on a cluster of multicore nodes? Explain the strengths and weakness of MPI and OpenMP for a cluster of multicore nodes.


Paper 4: Due Sept. 27

Reaction Notes papers Heterogenous Computing

Reaction Notes Question

For the Summary part of your Reaction Notes: breifly describe the purpose/goals of CUDA and OpenCL (the big what and why of each).

Reaction Notes Question: Compare the the level of programming abstraction presented by CUDA to MPI and OpenMP. What is exposed to the programmer and what is abstracted away in CUDA? Which of these three languages to you think are the easiest to program in and which the most difficult? Why?


Paper 5: Due. Oct 4

Reaction Notes papers Map Reduce

Reaction Notes Question

Discuss the scalability of the Map Reduce Implementation. How well is it designed to scale to large-sized systems and large-sized applications? Explain/support your answer.


Paper 6: Due. Oct 18

No reaction notes this week, no requirements to meet with your reading group, and no reaction notes papers. Instead, read through this quick read paper, and be prepared to discuss it at a high-level on Monday.

Quick Read paper


Paper 7: Due Oct. 25

Reaction Notes paper Distributed Shared Memory

Reaction Notes Question

Describe Lazy Consistency. What data consistency guarentees does it make? Evaluate Lazy Consistency for Distributed Shared Memory Systems (why? what are the trade-offs? explain.)


Paper 8: Due Nov. 1

Reaction Notes papers GFS

Quick Read paper GFS today

Just skim this for an update about GFS: update on GFS

Reaction Notes Question

In what ways did the intended use of the file system lead to its design? Pick one of these ways to discuss in more details (include explaination of why the resulting design choice fits its intended use, and critic the design choice in terms of how well it meets its goal (and explain why)).


Paper 9: Due Nov. 8

Reaction Notes papers Cloud

A View of Cloud Compuring M. Armbrust, A. Fox, R. Griffith, A. D. Joseph, R. H. Katz, A. Konwinski, G. Lee, D. A. Patterson, A. Rabkin, I. Stoica, M. Zaharia, Communications of the ACM, April 2010. (paper also available here: paper.pdf)

Quick Read paper Green Computing

Reaction Notes Question

Pick one of the "top 10 obsticales or opportunities" that you thought was particularly interesting, or surprising, or the most important, or the most difficult and describe what about it (why) is the most interesting, surprising, important, or difficult to you. If your group disagrees, pick one and you can include the other(s) and in the optional reaction notes section if you’d like (you do not need to do this, but please just pick one for your reaction notes question).


Paper 10: Due Nov. 22

Reaction Notes papers Failure and Consensus

  • The Byzantine Generals Problem by Leslie Lamport, Robert Shostak, and Marshall Pease, ACM Transactions on Programming Languages and Systems, Vol 4, No. 3, July 1982.

    Just focus on sections 1-3, skim 4 and 6, and you can skip 5.

Quick Read paper Failure

Reaction Notes Question

No reaction notes this week, but your reading group should meet and together you should step through the example of applying the Byzantine Generals algorithm. Don’t get too bogged down by the proofs. Instead, make sure you understand the algorithm, can step through examples applying it, and have some intuition about the main proof results (ex, why is 3m+1 needed with m traitors?). Also, be prepared to discuss the big ideas from the quick read paper/presentation.


Paper 11: Due Nov. 29

Reaction Notes papers Edge Computing

Reaction Notes Question

No reaction notes this week due to Thanksgiving break. However, you should read these papers in the same way as other reaction notes papers, and be ready to discuss them in class.


Paper 12: Due Dec. 6

Quick Read paper Security

Optional paper for fun

Reaction Notes Question

No reaction notes this week. Just skim through the Lampson paper for the big ideas, and be ready to talk about in class. The Worm paper is an interesting read, but not required.