Yulin Li
Email: yulinli@cs.utexas.edu Office: TAY Basement
Office Hours: Tuesday & Thursday 1-2pm and via email and by appointment
Prerequisites:
The following courses, with a grade of at least C in each: CS310 or CS310H,
CS336 or CS336H, M408D and consent of the adviser.
Non-CS students are welcome to take this course!
Please talk to the instructor or the undergraduate advisor
regarding alternative prerequisites
(upper-division standing, somey knowledge of linear
algebra, programming experience at the level of an upper-division CS
student.)
Textbooks:
(Textbooks will be put on reserve in the library for students who do
not wish to purchase them!)
Other material is handed out in class or is available
on the World Wide Web. For example, the class Web-pages may contain
information about MPI and scientific computing.
Course Objectives:
An introduction parallel and distributed computing
as used in science and engineering. A survey
of techniques for solving systems of linear equations involving
high performance computing machines: parallel, distriubuted, grid, and
clusters.
Programming projects may be done on a parallel supercomputer
so that students can obtain hands-on experience
with an actual parallel computer system and its parallel software
such as those at the
Texas Advanced Computing Center:
Cray-Dell Linux Cluster
(lonestar.tacc.utexas.edu),
IBM Power4 System
(longhorn.tacc.utexas.edu), or
Apple Xserve GS Cluster
(stampede.tacc.utexas.edu)
.
The goals of the course are:
to introduce the students to timely issues
in high-performance computing;
to discuss and write about many of the critical issues involved;
to hone the student's skills for technical exposition and
presentation.
This is a writing-intensive excursion into some of the most
interesting issues in high-performance computing of today.
This class is a substantial writing component course.
Outline:
Topics to be covered include the following (as time permits):
Parallel and vector computers (architecture and processor organization)
Basic concepts of parallelization and vectorization
Parallel and distributed programming languages
Elementary parallel algorithms
Parallel Numerical Integration
Basic linear algebra concepts and subprograms
Matrix multiplication
Solving linear systems:
direct methods and iterative methods
Parallel Algorithms: bitonic sorting, tree search, and combinatorial
optimization
Performance
Parallel Libraries
Final projects based on sections from Quinn's book or other material.