CS 575 Supercomputing for the Sciences

Syllabus (upd)

MW 4 - 5:15pm, Fall 2003, BAM 251
Dr. Kris Stewart (stewart@rohan.sdsu.edu)
Computer Sciences Department
San Diego State University
Office Hours: MW 2-3:30pm in GMCS 535

Text: High Performance Computing, Second Edition,
Kevin Dowd & Charles Severance, O'Reilly & Associates, 1998
http://www.oreilly.com/catalog/hpc2/index.html
Text Table of Contents

Class Calendar September/October/November/December

Assignments for Class [3Nov03 upd with Deadline Dates]

Email repository Fall 03

What are Supercomputers?

A supercomputer is the fastest computing platform to solve problems. This includes the time to compile the code written to solve a problem, the time to access the data that the running code may need, the time to output the useful data to an effective long - or - short-term storage medium, the time to obtain the useful solution to the problem. The definition of Supercomputer changes over time.

1986 ByteBuyer SDSC cover story on this widely circulated local flyer (now called Computer Edge) gives details on the Cray X-MP, the first supercomputer at San Diego Supercomputer Center. (thanks to Keith Thompson) local copy. Since 1986 was nearly two decades ago, you are likely to have this level computing power on your desktop at home these days.

IEEE History of Computing [celebrating 50 years of computers, 1996]

You may find the following, online discussion useful as an overview to the field of Scientific Computing.

Scientific Computing overview by Lloyd Fosdick & Elizabeth Jessup (University of Colorado, Boulder)

This Class (CS 575 Supercomputing):

CS 575 is an interdisciplinary course to introduce students in the sciences and engineering to advanced computing techniques using the supercomputers at the San Diego Supercomputer Center (SDSC). Additional architectures may also be explored. The computing projects will be focussed on developing skills to make effective use of the IBM Blue Horizon at SDSC, by first using the performance tools on computing platforms available on the SDSU campus.

Prerequisites are a programming background in C or Fortran 90

Problem solving skills will be enhanced through computational experiments that will involve both individual and group (collaborative) learning exercises. This emphasizes how science is done these days - involving collaboration, investigation and communcation.

The computers at SDSC are fast number crunching machines whose floating point performance is exceptional. Single-processor and multiple-processor architectures will be introduced, with parallel programming using MPI, the Message Passing Interface.

Care is taken to

* introduce UNIX (at a functional level),
* develop students' familiarity with local computing resources (Rohan) and software tools (timers, profilers, Answerbook, and more),
* develop students' understanding of the concept of performance and how to measure and interpret it
in lectures and labs with the instructor.

Assignments (3Nov03 - updated with dates)

The grade will be based on computational experiments. There will be 5 computer projects with written reports and group oral presentations to the class. These projects will start as individual projects to introduce you to the world of High Performance Computing and the class report-writing templates and grading rubric. These computational experiments will involve increased complexity as we cover more material from our text.
Computational Exploration of Costs Related to Problem Size with Report(10%)[24Sept03]
Computational Exploration of Timings with Report (15%) [29Oct03/31Oct03]
Group Presentation on Computer Security (15%) [12Nov03]
Computational Experiment with Report using Rohan / Group Project (20%) [03Dec03]
Computational Experiment with Report using IBM Blue Horizon Supercomputer / Group Project (40%)
Due: midnight Monday Dec. 15 (Final Exam Date)

Beginning Calendar for Class Activities

  1. September 2003
  2. October 2003
  3. November 2003
  4. December 2003
8Sept03 (Lecture in BAM 251):
Monday's lecture will cover Chapter 2 Ch2 HPC of text, which you should read beforehand.
You should also read the first pages of Chapter 6 on Timing. We will discuss Chap. 6 "Profiling" later in the semester.

10Sept03 (Lab in BAM 110):
Class will be held in Xterm lab BAM110 where your class ROHAN accounts will be distributed and we will begin the introduction to computing the HPC way.
Lab 1 Introduction to Xterms and Timers:
This exercise includes the start of your first computational experiment, which is due on 24 Sept 03. You will be expected to use the web-page template and gather appropriate data using the sample program provided in lab.

15Sept03 (Lecture in BAM 251):
More on performance today (Performance for HPC), to connect our text Chapters 2 and 6 with our lab exercise last week. We will also discuss Problem Solving Skills, which includes programming exploration, validating computed data, writing skills, and conclusion-driven experimentation.

17Sept03 (Lab in BAM 110):
Ensure clarity for first computational experiment and report.

22Sept03 Ch.3 Memory
The new version of Moore's Law is used to describe the growth in memory accompanied by its reduced cost. How is memory organized in a HPC. What is memory stride?

24Sept03 Information Overload
Class materials are made available from the class web site. You, as a student at SDSU, may also have your own personal web page on Rohan. Student Home Pages at SDSU

How does a person come to value this large amount of information? What are the clues that can guide the informed Internet user?

29Sept03 Ch 4 Floating Point Numbers
The representation of numbers and characters and other forms of data on digital media has evolved since the days of punch cards. Analog data was a basis for measurements, which, in turn, had to be stored. For example, the thermometer can measure body temperature which can be entered on your medical records file by the technician.

01Oct03 - BAM 110 Lab3: Floating Point and the Compiler
To continue our exploration of floating point numbers, we will work through some hands-on examples that will begin the preparation for your second computational report

06Oct03 Ch 5 What a Compiler Does

08Oct03 Diffusion Model for Performance Report 2 (Due: 29Oct03)
We will discuss the background information you will need to successfully explore your computational experiment and report. The programs you will build your next experiment on will be made available on Monday. It is important to establish the background in today's lecture.

13 October 03 (Columbus Day)
We will discuss Chapter 6 of our text today, Ch 6 Timing and Profiling, with links to online Sun Documents you may find useful. In lecture we also present a sample code to use for the gprof example, which are the codes for the Statement of Second Report.

15 October 03
Returning the report for the first computational experiment, it is appropriate to examine the instructor's Gradine Rubric. We also want to discuss Chapter 7 Eliminating Clutter

20 October 03
Guest lecture - on What is Data Intensive Computing?. Stewart must travel to Washington D.C. Kirsten Barber, Computer Resource Specialist

22 October 03
Ch8 Loop Optimization. Loops are the first step towards parallelism.


SDSU Campus closed 27-29 Oct 03 Due to County Fires

3 November 03
Ch9 Understanding Parallelism.

Today, the groups will self-select themselves to begin preparation for class discussion on Computer Network Security on 12 November 03. Form groups of three (3) and make plans for the topic you wish to prepare and present in 15 minutes. You should find class members with schedules compatible with yours and skills complementary to yours since you will be asked to work together on the group Rohan coding assignment and final group Blue Horizon coding assignment.

5 November 03 Linear Systems and Parallel Programming
Begin development of group programming assignment using MPI on Rohan. Highlight lectures on Ch 10 (Shared-Memory Multiprocessors), Ch 11 (Programming Shared-Memory Multiprocessors)

10 November 03
Section IV Text: Scalable Parallel Processing. Lecture will introduce Ch 12 Large-Scale Parallel Computing along with MPI on Rohan.
Ch 13 Language Support for Performance and Ch 14, Message-Passing Environments - MPI (Message-Passing Interface) will also be introduced, briefly.

NPACI Parallel Computing Institute - Stommel Model to complement the recent email Group Report AutoParallel (10Nov03)

12 November 03 15 minute Group presentation on topic related to Computer Network Security

17 November 03 Visualization and High Performance Computing (Guest Lecture by Jeff Sale, Staff Scientist, NPACI Ed Center on Computational Science & Engineering)

19 November 03 Groups work together on their group class project which will use MPI on Rohan.

24 November 03
How are groups progressing? Last three weeks of lecture, then final project due midnight 15 Dec 03

26November 03

01 December 03
The Computing Continuum, Guest Lecture by Dr. Sid Karin, Founder of the San Diego Supercomputer Center, in HH 130.

03 December 03 Group Report Due
Lectures extending our coverage of High Performance Computing, on Rohan (SDSU) and Blue Horizon (SDSC)

08 December 03
Lectures extending our coverage of High Performance Computing, on Rohan (SDSU) and Blue Horizon (SDSC)
Complete Stommel - Domain Decomposition for MPI (begun 03dec03) Domain Stommel
Especially Create Row Communicator/Column Communicator to replace MPI_COMM_WORLD
Stommel FinDif Model
Espcially Slide 49 (2D Mpi Decomposition)
To Avoid Deadlock
  1. If even column processor, Send left/receive left; Receiver right/send right using ROW_COMM
  2. Else (must be odd column processor), Receive right/send right; Send left/receive left using ROW_COMM
Followed by
  1. If even row processor, Send top/receive; Receive bottom/send bottom using COL_COMM
  2. else (must be odd row processor), Receive bottom/send bottom using COL_COMM

10 December 03
Return written reports to group and have final "trouble shoot" session.
Final Survey and BH refs
You will find good Blue Horizon references here. Also a student attitude survey that you should take. This survey is clickable and is important for this class. Please invest 10 minutes and provide your feedback.
Running 2D MPI decomposition on Rohan
Secure Copy files to BH NOTE: These were copied to $WORK (/work/u1676/ directory)
Compiling on BH
Running on Blue Horizon
Running on BH with modified grid

Tour San Diego Supercomputer Center - 3pm 12Dec03 (class voted 24Nov03)
Directions to SDSC Note: you can take your chances for a meter parking place in lot 354 - or go to the Information booth (on map) and purchase the day-permit to use lots 357 or 351.

Return to CS 575 Home Page [Fall 2003]