- Level Awareness
- Course by The University of Texas at Austin
- Total students 1,820 enrolled
-
Offered by
About
Is my code fast? Can it be faster? Scientific computing, machine learning, and data science are about solving problems that are compute intensive. Choosing the right algorithm, extracting parallelism at various levels, and amortizing the cost of data movement are vital to achieving scalable speedup and high performance.
In this course, the simple but important example of matrix-matrix multiplication is used to illustrate fundamental techniques for attaining high-performance on modern CPUs. A carefully designed and scaffolded sequence of exercises leads the learner from a naive implementation to one that effectively utilizes instruction level parallelism and culminates in a high-performance multithreaded implementation. Along the way, it is discovered that careful attention to data movement is key to efficient computing.
Prerequisites for this course are a basic understanding of matrix computations (roughly equivalent toWeeks 1-5 of Linear Algebra: Foundations to Frontiers on edX) and an exposure to programming. Hands-on exercises start with skeletal code in the C programming language that is progressively modified, so that extensive experience with C is not required. Access to a relatively recent x86 processor such as Intel Haswell or AMD Ryzen (or newer) running Linux is required.
MATLAB Online licenses will be made available to the participants free of charge for the duration of the course.
Join us to satisfy your need for speed!
What you will learn
- Mapping algorithms to architectures
- Extracting parallelism at multiple levels
- Amortizing data movement over computation
- Understanding performance data
- Managing complexity through layering of software
Skills you learn
Syllabus
0 Getting Started
1 Loops and More Loops
2 Start Your Engines
3 Pushing the Limits
4 Multithreaded Parallelism
Auto Summary
Unlock the secrets of high-performance programming with "LAFF-On Programming for High Performance"! This dynamic course, designed for those in the IT and Computer Science fields, delves into optimizing code for scientific computing, machine learning, and data science. Led by expert instructors from edX, the course uses matrix-matrix multiplication to teach essential techniques for achieving scalable speedup on modern CPUs. Throughout the course, you'll progress from a basic implementation to a high-performance multithreaded version, learning to harness instruction-level parallelism and minimize data movement. Whether you're a beginner with some knowledge of matrix computations and basic programming or an experienced coder looking to enhance your skills, this course is your gateway to efficient computing. The course provides hands-on exercises with C programming and offers free MATLAB Online licenses for the duration of your studies. A relatively recent x86 processor running Linux is required to fully benefit from this course. Immerse yourself in this transformative learning experience and satisfy your need for speed with flexible subscription options, including the Starter plan. This course is perfect for those at the awareness level, aiming to elevate their programming proficiency in high-performance computing.

Maggie Myers

Robert van de Geijn

Devangi Parikh