Due Date

  • by noon Tuesday Sept. 7: Your talk slides .pdf in your public_html with link to and other info added to SystemReports.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)

    Remember: class starts at 1pm on by noon Tuesday Sept. 7

  • by 11:59pm Wednesday, Sept. 8: Complete System Summary (Group.X.adoc) and pushed to Parallel-Systems-Report

Your group and assigned system is: Paper1 Assigned Systems and Groups

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 15 time slot during your Monday lab section next week (12-13 minutes of presentation and 2-3 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 Group.X.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 the SystemsReport.adoc (and the webpage generated and tested) and pushed by noon Tuesday Sept. 7

  • 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 (12-13 minute of presentation with 2-3 minutes for questions).

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.

Starting Point

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.

  1. 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
  2. Create or grab a simple starting point for your homepage (it need to be in a file named index.html or index.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
  3. 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

  1. Create subdirectory for Paper1:

    cd ~/public_html
    mkdir cs87_Paper1
    chmod 755 cs87_Paper1
    cd cs87_Paper1
  2. 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

Clone shared repo

In your cs87 subdirectory clone a copy of the single, shared by the entire class, repository for this assignment:

  1. get the ssh-URL from the CS87 git org. The repository to clone is named Parallel-Systems-Report.

  2. cd into your cs87 subdirectory:

    $ cd ~/cs87/Labs
    $ pwd
  3. and clone a copy of the repo:

    $ git clone [Parallel-Systems-Report url]
    $ cd Parallel-Systems-Report
    $ ls
    Makefile README.adoc  SystemsReport.adoc images/  group.1.adoc group.2.adoc ...

The files included in this repo are:

  • Makefile: builds a webpage from the SystemsReport.adoc and Group.X.adoc files

  • README.md: some notes to you about what to edit and what do do

  • SystemsReport.adoc: all groups will edit this file

  • Group.X.adoc: a file for each group (X is your group number file) into which you will add information

  • Group.Ex.adoc: an example

Directions for Editing

Which files

  1. to the SystemsReport.adoc, you will

    1. commit and push your system’s name, and its top500 and green500 ranking

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

  2. to your groups Group.GroupNUM.adoc file you will add (see Group.Ex.adoc as an example):

    1. Replace "X.Y System Name and Org" with the name of your system and its organization

    2. List your group member names after "Presented by:"

    3. Add content for System Summary

    4. Add content for Useful Resource and Links

If you include images in your Group.X.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 Group.Ex.adoc file as and example of how to add an image

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 Group.GROUPNUM.adoc files. Here is a handy reference AsciiDoc Quick Reference

  • View Your Edits (and fix) before pushing If you type make, the webpage index.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 to index.html):

    file:///home/newhall/cs87/Labs/Parallel-Systems-Report/index.html

    (or see the Makefile comment about make install for an alternate way of viewing index.html using a cs.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)

Requirements

System write-up

In your group’s Group.X.adoc file you will add:

  1. A title of your system, your names, and a short (1-2 paragraph) summary of your system.

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

  3. 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")

Presentation

Together your group will give a 15 minute presentation on your system to your lab section (12-13 minutes of content, leave 2-3 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.

  1. Definition of the system: its name and location, and what type of system it is and how your particular machine fits this definition/classification.

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

  3. How are processors/nodes interconnected?

  4. Which parts are shared? Which are private?

  5. If your system is on the Top500 and/or Green500, include its ranking(s) and include a brief discussion of its Green500 ranking

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

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

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:

  1. Things to improve

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

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 Group.X.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 Group.X.adoc
git commit -m "group X added 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.

Handy Resources