1. Due Date
-
Due by noon, Monday, Jan. 27: Your talk slides .pdf in your
public_html
with link to and other info added toSystemReports.adoc
, and pushed to Parallel-Systems-Report shared repo. (make sure to generate .html page with your changes and test that your links work before pulling and then pushing your changes) -
Due by 11:5pm, Tuesday, Jan. 28: Complete System Summary (
LabX.Y.adoc
) and pushed to Parallel-Systems-Report
Your group and assigned system is: Paper1 Assigned Systems and Groups
2. Overview and Goals
Assignment Goals:
-
Investigate and learn about a Parallel System.
-
Write a summary of what you learned.
-
Design and deliver an oral presentation about your system using talk slides.
-
Learn how to create a homepage on our system
-
Learn some asciidoctor along the way
Assignment Overview:
This week’s "paper" is not paper discussion and reaction notes, but a group presentation. Each Group will prepare a 15 minute presentation on a specific parallel architecture and system that they will deliver in class week 2.
This week you will spend work with your Paper1 group to together investigate your assigned parallel or distributed system, and to prepare and deliver your presentation in a 20 time slot during your Monday lab section next week (13-15 minutes of presentation and 5 minutes for questions). You will also add information about your system to a shared webpage that is generated from asciidoctor files that the entire class will edit. Your contribution to this shared document will include a short summary about your system and links to to useful information about the system that you discovered in preparing your presentation.
With your Paper1 group you will:
-
Research your assigned system. I suggest adding content to your
LabX.Y.adoc
file information about your system as you go. I also suggest that you meet frequently to hear what each other has learned, and to plan your next round of further investigation. -
Together come up with and outline for your presentation, and create talk slides. You can use powerpoint, google docs, libreoffice (on our system), or anything you would like to create slides. You will need to produce a pdf version of your slides that are copied into your
~/public_html/cs87_Paper1/
directory, and a link to it added to theSystemsReport.adoc
(and the webpage generated and tested) and pushed by to the by noon on Monday. -
Give practice talks and fix talk slides, talk content, and slide transitions that do not work well. And cut or add content based on its timing (13-15 minute of presentation with 5 minutes for questions).
3. Your Group and System
Here are the assigned Group and the assigned Systems for each group:
Your group is assigned a specific type of system, and may pick one particular system of this type for your presentation. Try to pick a particular system of your assigned type early based on how much information seems to be available on it, and then focus your effort on presenting information about that particular system. It is also valuable to include in your presentation some general characteristics about the type of system it is, but the details should be about your particular example system.
As soon as you pick your particular system, update the SystemsReport.adoc
file with your system’s name and a link to its main page, and push
your changes to the shared repo.
4. Starting Point
4.1. Setup and homepage
First, set up directory struction for CS87
Create a cs87 subdirectory into which you will add all assignments and other course materials:
cd
mkdir cs87
Next, create structure for your homepage on our system:
If you do not already have this set-up, you are going to create a homepage on our system, and then you will add a subdirectory into which you will add your .pdf presentation slides.
-
Create a
public_html
subdirectory in your home directory (this is where our webserver will look for your homepage:cd mkdir public_html chmod 755 public_html
-
Create or grab a simple starting point for your homepage (it need to be in a file named
index.html
orindex.php
.You can copy one over from here (and copy over the README file with more information and instructions and links for creating a webpage):
cd ~/public_html cp ~newhall/public/webpage/* . chmod 644 index.html
-
Try loading your homepage in a browser with this url
https://www.cs.swarthmore.edu/~yourusername
See the README file you copied over for more information
Finally, create a subdirectory in your public_html
directory
into which you will put a .pdf version of your presentation slides
-
Create subdirectory for Paper1:
cd ~/public_html mkdir cs87_Paper1 chmod 755 cs87_Paper1 cd cs87_Paper1
-
Create an index.html file that has a very simple message in it (for testing and to hide external listing of the contents of this subdirectory)
touch index.html chmod 644 index.html vim index.html
Add the following into the contents of the index.html file in your editor
<html> <body> nothing here. </body> </html>
Then try it out by loading this url:
www.cs.swarthmore.edu/~yourusername/cs87_Paper1
4.2. Clone shared repo
In your cs87
subdirectory clone a copy of the single, shared by
the entire class, repository for this assignment:
-
get the ssh-URL from the CS87 git org. The repository to clone is named Parallel-Systems-Report.
-
cd into your
cs87
subdirectory:$ cd ~/cs31/labs $ pwd
-
and clone a copy of the repo:
$ git clone [Parallel-Systems-Report url] $ cd Parallel-Systems-Report $ ls Makefile README.adoc SystemsReport.adoc images/ labA.1.adoc labA.2.adoc ...
The files included in this repo are:
-
Makefile
: builds a webpage from the SystemsReport.adoc and labX.Y.adoc files -
README.md
: some notes to you about what to edit and what do do -
SystemsReport.adoc
: all groups will edit this file -
LabX.Y.adoc
: a file for each group into which you will add information about your system -
LabEx.adoc
: an example
5. Directions for Editing
5.1. Which files
-
to the SystemsReport.adoc, you will
-
commit and push your system’s name, and its top500 and green500 ranking
-
commit and push the link to a .pdf version of your presentation slides that you will copy into your
~/public_html/cs87_Paper1/
subdirectory on our system (you may additionally include a link to a Google doc version of your slides if you want to use that version for your presentation)
-
-
to your groups LabNUM.GRPNUM.adoc file you will add (see
LabEx.adoc
as an example):-
Replace "X.Y System Name and Org" with the name of your system and its organization
-
List your group member names after "Presented by:"
-
Add content for System Summary
-
Add content for Useful Resource and Links
-
If you include images in your LabX.Y.adoc file, add the image file (.jpg, .pnp,
etc.) to the images/
subdirectory, and git add
it to the repo when you are
happy with it (please try not to edit image files multiple times and commit
changes to the git repo multiple times…image files are large and their diffs
are big and not really helpful). See the example LabEx.adoc
files as and
example of how to add an image
5.2. Editing steps
-
This is a single git repo shared by the entire class.
-
Before pushing any of your changes do a
git pull
to avoid merge conflicts. There should be no merge conflicts across groups, as you each are editing separate files, or independent parts of the SystemsReport.adoc. -
After pushing: you can view SystemsReport.adoc in github to see that your changes are showing up.
-
-
You will use asciidoctor to make edits to the SystemsReport.adoc and your groups LabNUM.GROUPNUM.adoc files. Here is a handy reference AsciiDoc Quick Reference
-
View Your Edits (and fix) before pushing If you type
make
, the webpageindex.html
will be built from the .adoc files. View this file for asciidoctor syntax editing in a browser by loading the path to it in a browser running on the same machine, like this (but using your path name toindex.html
:file:///home/newhall/cs87/Parallel-Systems-Report/index.html
(or see the Makefile comment about
make install
for an alternate way of viewingindex.html
using acs.swarthmore.edu
url) -
After you do a git push, view the SystemsReport.adoc in github to see its rendering of your changes. Make sure it renders okay in github (github renders most of asciidoctor but not everything, but make sure it reads okay)
6. Requirements
6.1. System write-up
In your group’s LabX.Y.adoc
file you will add:
-
A title of your system, your names, and a short (1-2 paragraph) summary of your system.
-
An annotated list of 3-6 of the best/most useful Reference materials that you found for your system, with a 1-2 sentence explanation of what useful information it contained. Do not list materials that you looked at but did not use or that you did not find helpful. I expect to see a few good links that contain useful information about your system or parts of your system (3 at a minimum, no more than the 6 best/most useful with good annotations, others can go in part 3. and have more brief annotations).
-
Optional: Additional references you found and used annotated very briefly and/or a descriptive link name to just describe what it is (like: "Lawrence Livermore National Lab pthread tutorial")
6.2. Presentation
Together your group will give a 20 minute presentation on your system to your lab section (13-15 minutes of content, leave 5 minutes for questions). Every member of your group must participate in the presentation. Together decide who will talk for each slide.
You must create slides for presentation. You may use any any software you would like for editing your presentation slides as long as you can generate a PDF version of your slides for submission from the software you use (google docs, powerpoint, office libreoffice, are some suggestions).
You must upload a .pdf of your talk slide to your ~/public_html/cs87_Paper1/
directory, and
add and push a link to it in the shared repo that creates the webpage
(and check that it works), by noon on Monday .
Your presentation should address each of the items listed below. For some systems, discussing certain ones of these will take more time than for other systems. For example, for some systems the details of the architecture may be the most interesting, for others, it may be how the system is used. Part of your job is to determine which are the most important things to focus on.
-
Definition of the system: its name and location, and what type of system it is and how your particular machine fits this definition/classification.
-
Architecture overview. For this part you can grab figures from other sites (be sure to list a citation of from where you grabbed a figure if you do this)
-
How are processors/nodes interconnected?
-
Which parts are shared? Which are private?
-
If your system is on the Top500 and/or Green500, include its ranking(s) and include a brief discussion of its Green500 ranking
-
Is the system designed or optimized for a specific type of use? Is it designed for a specific programming model, programming language or program workload? Or does it support general parallel computing. Explain.
-
How scalable is the system? explain.
It may be difficult to find answers to the last two items for all systems. Do the best you can, and based on what you find out about the other parts, you can at least say what your thoughts are about how well the system scales in some dimension.
This is also not an exhaustive list of what to cover. Part of your job is to determine what is interesting about your particular system.
How much to prepare and at what level:
As you present parts of your system, do so in a top-down way: start with a high-level overview and then refine some parts in more detail. You only have 15 minutes, so you are going to have to pick one or two things to discuss in more detail, and leave much of the system to present at a high-level (and skip even discussing some parts of the system). Think big-picture definition of this system, and some detail about one (or two) things that are most unique or interesting about it. You do not need to know everything about the system you present, but you should be able to present both a high-level overview, some detail about an interesting part, and address the points above in your presentation.
6.3. Practice talk
Your group should do at least one practice talk together, and I encourage you to do more than one. After the first one adjust slide content, figure out what you want to say for each slide, and adjust transitions between slides. Then, try another practice talk when you have made these changes. Repeat.
I also encourage you to give a practice talk to at least one other group (and be a practice talk audience for them). I suggest picking the group in the other lab section who is presenting a similar system to yours.
As you give your practice talk, do not stop and make changes as you go. It should be a timed dry run of your in-class presentation (12 minutes of presentation and 3 minutes for questions). You should have talked through your slides at least once prior to your practice talk.
Audience members should provide feedback to each person, to help them improve slide content, and phrasing and content of their part of the oral presentation. Write down your comments during other group member’s parts of your presentation, and the end of your presentation, go back over feedback for all slides and all presenters together. Every audience member should provide two pieces of feedback to every presenter:
-
Things to improve
-
Things that went well
Neither should be empty. Your feedback should include presentation style, slide content, and presentation content. And, be sure to be as specific as possible in your comments to help the speakers improve their presentation.
7. Submit
add, commit, make and test, pull and then push your changes to the shared repo:
-
Your changes to
SystemsReport.adoc
by Monday noon -
Your changes to
LabX.Y.adoc
by Tuesday before 11:59pm
Because this is a shared repo be very careful to only make edits to your parts of the file, and to do a git pull before doing a git push. You should follow this protocol for pushing your changes:
make
# test that the build webpage is correct with your updates
make clean
git add SystemsReport.adoc
git add LabX.Y.adoc
git commit -m "group X.Y addd link to our presenation"
git pull
# if you pulled other's pushed changes, make and test webpage again
git pull
git push
If you have difficulty pushing your changes, see the "Troubleshooting" section and the "can’t push" sections at the end of the using gitfor CS31 labs (written for CS31, but applicable in general).
And for more information and help with using git, see the git help page.
8. Handy Resources
-
Tools for creating documents using Google Slides to create your presentation slides may be easiest
-
Class piazza page for questions and answers about assignment
-
Misc: Some Useful Unix Commands, vi (and vim) quick reference, make and makefiles man and Manual pages