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 (Reacation Notes Guidlines) 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 2023 Papers

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


Paper 1: Due Monday Sept 11

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

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

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 Oct. 2

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 9

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 23

Because this is due right after fall break, there are no reaction notes this week, and no requirements to meet with your reading group. Instead, read the first paper in such a way that you are prepared to discuss the main ideas and its message (a bit less in depth than a Reaction Notes paper, but more in depth than a Quick Read paper). Read through the Skim paper for the big ideas of what the system is and how it is designed/implemented (a bit less in depth than a Quick Read paper).

Read Through paper The future of HPC

Skim paper Peer to Peer


Paper 7: Due. Oct 30

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 critique the design choice in terms of how well it meets its goal (and explain why)).


Paper 8: Due. Nov 6

Prior to reading the Chord paper, very briefly skim over some information about Peer-to-Peer systems from Wikipedia P2P. In particular, look at the difference between structured and unstructured P2P network architectures.

Reaction Notes papers Peer-to-Peer Systems

  • "Chord: A Scalable Peer-to-peer Lookup Protocol for Internet Applications by Ion Stoica, Robert Morris, David Liben-Nowell, David R. Karger, M. Frans Kaashoek, Frank Dabek, Hari Balakrishnan, IEEE/ACM Transactions on Networking, Vol. 11, No. 1, February 2003

    focus on sections I-IV, and don’t worry to much about the theorms and proofs. Just skim other sections.

Reaction Notes Question

No reaction notes this week due to project proposal

Here is the one I would have given you, and something to think about this as you read the paper for understanding: Explain in your own words how the Chord lookup protocol works; do not repeat all the details, but describe the big idea of how it works and why it is desgined that way.


Paper 9: Due. Nov. 20

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 10: Due. Nov 27

Skim paper Cloud Computing Stack Definitions

Reaction Notes papers Cloud and Green Computing

Even though there are three papers, all are short (1 page, 3 pages, 5.5 pages)

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 11: Due. Dec. 4

Reaction Notes papers Cloud and Edge Computing

Quick Read paper Containers

  • Borg, Omega, and Kubernetes, Burns, Grant, Oppenheimer, Brewer, Wilkes, Communications of the ACM, Vol. 59, No. 5, May, 2016.

    Read this to get and understanding of the big ideas about containers, what they are and what they provide (what, why), and also some of the solutions that Kubernetes implements that solve problems with the Borg (and Omega) approaches.

Reaction Notes Question on Emergence of Edge Computing

Pick one of the four ways that proximity helps (listed on page 32), and expain in your own words what the issue/problem is related to proximity, and how edge computing helps to solve it. I encourage you to think of your own examples to use to help explain your answer.


Paper 12: just for fun some security readings

Because we have project presentations next week, there is no paper 12 assignment. However, since we did not get much chance to read and discuss security issues this semester, here are a couple papers I may have assigned for paper 12. The first is a classic paper about security issues in distributed systems. The second is a interesting story about the first computer worm, how it worked, what happened, and the aftermath. A worm is malware that can independently propogate, attack and infect a system connected to a NW (vs. a computer virus that requires a user to explicitly catch by running a binary, clicking on an email attachment, etc.).

Optional (for fun) papers some readings on computer security