CODS 636 Introduction to High Performance Computing
The goal of this graduate-level course is to provide students with the fundamentals of high-performance computing (HPC), their programming paradigms, and their applications to the data sciences and big data analytics. The course starts with motivational examples on the need for HPC in data sciences. Next, the students are introduced to HPC programming methods for distributed and shared memory systems, including message passing (MPI), multithreading (pThreads) and openMP. The course will also cover HPC methods based on data parallelism using single-instruction-multiple-data (SIMD) computing and Graphical-Processing Unit (GPU) accelerators. The HPC opportunities of cloud computing services will also be addressed, especially in their relation to business data analytics. Application examples from machine learning, business intelligence, econometrics and finance will illustrate the wide applicability of HPC to problems of practical importance. The students will use the HPC resources provided by KU Research Computing for their assignments and projects.