LAFF-On Programming for High Performance
About this Course
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!Created by: The University of Texas at Austin
Level: Intermediate

Related Online Courses
Housing and Cities is a design-oriented architecture course that focuses on key moments of European urban housing history. It looks into ordinary or replicated housing types of different social... more
This course covers a wide range of SQL techniques, beyond basic CRUD (Create, Read, Update, and Delete) operations in PostgreSQL. You will learn the specifics of aggregation, transactions, reading... more
The building façade forms the interface between outside conditions and the habitable indoor climate, where we spend most of our time. So its design and construction seriously affect the ... more
Every day, our computers and phones correct our spelling, curate our social media, or translate news articles for us. But have you ever wondered how these applications work on a basic level? It... more
El internet de las Cosas (IoT) está alrededor de nosotros y rápidamente se está expandiendo, a penas estamos viendo sus beneficios. El IoT ayuda a los individuos a mejorar su calidad de vida, ad... more