PGE 383 - High Performance Computing for Engineers
Instructor: John T. Foster, Ph.D.
Office: PGE 3.108
Phone: 512-471-6972
Email: john.foster@utexas.edu
Class Location: CPE 3.144
Class Time: T-Th 12:30 - 2:00 PM
Office Hours: F 9:00 AM - 10:30 PM and by appointment
Course Website: https://utexas.instructure.com/courses/1234537
Required Text: None
Introduction:
As engineers we often encounter problems too large or too difficult to solve in a conventional manner; therefore, we resort to using the computer to do the hard work for us. These types of problems include problems in computational mechanics, optimization, and statistical analysis. Sometimes, these problems can become so large that the computational expense overwhelms our desktop workstations and we seek out high-performance computing (HPC) resources or HPC clusters to perform the job. These HPC machines are almost always computers that run a UNIX/Linux style operating system and include different parallelization paradigms such as MPI, OpenMPI, OpenCL, CUDA, etc. This course will introduce the student to the UNIX environment in a scientific computing context and include instruction on several import UNIX applications that will make them more productive users. We will also cover, at an introductory level, the differences between these parallelization styles of computing and develop a basic working understanding of how to utilize the application programming interfaces (APIs) in scientific applications.
Outline: Below is a general outline of what I intend to cover in the course. This is subject to change based on the needs and preparation of the students in the class. Any updates will be posted as they occur.
Week | Topic | Specifics |
---|---|---|
Aug. 30 | Introduction to HPC and UNIX | Syllabus, Codecademy, Github, Spindletop |
Sept. 4,6 | Git and Github | |
Sept. 11, 13 | Introduction to UNIX | File system, permissions, regular expressions |
Sept. 18, 20 | Editors | vi |
Sept. 25, 27 | Intermediate UNIX | grep, find, Python scripting, customizing environment |
Oct. 2,4 | Managing Projects | building code, git, cmake |
Oct. 9,11 | Scientific Python | numpy, scipy |
Oct. 16,18 | Scientific Python | matplotlib, LaTeX integration |
Oct. 23,25 | Scientific Python | Calling other languages from Python, cffi, SWIG |
Oct. 30,Nov. 1 | Parallel Programming | MPI, cluster job submission |
Nov. 6,8 | Parallel Programming | MPI, PyTrilinos |
Nov. 13,15 | Parallel Programming | PyTrilinos |
Nov. 20,Thanksgiving | Parallel Programming | PyTrilinos |
Nov. 27,29 | Parallel Programming | IPython, Jupyter notebook |
Dec. 4,6 | Machine Learning | scikit-learn, PyTorch |
Additional topics if time allows: Other scientific languages: C/C++
Grading:
- Codecademy course completion - 10%
- This grade will be given entirely based on completing the assigned modules on time.
- Video lecture quizzes - 20%
- In-class exercises - 30%
- These will be exercises performed on the computer, in-class, with the guidance of the instructor. Additional out-of-class time may be required to finish exercises not completed in-class.
- Assigned projects - 40%
- These will be longer exercises that may be started or worked on in-class, but will require out-of-class time to complete.
Grade Assignment
Range | Grade |
---|---|
>92 | A |
90-92 | A- |
88-90 | B+ |
82-88 | B |
80-82 | B- |
78-80 | C+ |
72-78 | C |
70-72 | C- |
60-70 | D |
< 60 | F |
Disability Statement: The University of Austin provides upon request appropriate academic accommodations for qualified students with disabilities. For more information, contact the Office of the Dean of Students at 512-471-6259 or see https://www.utexas.edu/diversity/ddce/ssd/ for more information.