East Carolina University
Department of Computer Science

CSCI 4110
High Performance Computing
Standard Syllabus


3 credits Prepared by Venkat Gudivada, May 2018

Catalog entry

P: CSCI 3000, CSCI 3675. Software design and development targeting high performance computing architectures. Multi-core and many-core systems. MPI, OpenMP, MapReduce, CUDA, and OpenCL computing models.

Course summary

We are producing data at unprecedented levels. This data is often referred to as big data. Given the data volume and data heterogeneity, we need high performance computing to harness this data.

High Performance Computing (HPC) encompasses special hardware and software, and parallel algorithms. There are three classes of HPC computers: multicore and many core shared memory computers, distributed memory computers -- clusters and supercomputers, and sequential or parallel computers with deep memory hierarchies.

This course provides a balanced coverage of theory and practice. You will learn how to solve large-scale, processing and data-intensive problems using HPC hardware and software.

Course topics

Student learning outcomes

Textbook

Thomas Sterling, Matthew Anderson, and Maciej Brodowicz. High Performance Computing: Modern Systems and Practices. Burlington, Massachusetts: Morgan Kaufmann, 2017. ISBN: 978-0124201583

Other required material

Grading

Course grade is based on four components:

Activity Weight (%)
Assignments (paper-and-pencil) 20
Assignments (programming) 30
Midterm exam 20
Final exam 30

Grade meanings

Grade Meaning
A  Achievement substantially exceeds basic course expectations
A−  
B+  
B Achievement exceeds basic course expectations
B−  
B+  
C Achievement adequately meets basic course expectations
C−  
D+  
D Achievement falls below basic course expectations
D−  
F Failure – achievement does not justify credit for course