About this course
Is my code fast? Can it be faster? Scientific computing, machine learning, and data science are about solving problems that calculate intensively. Choosing the right algorithm, extracting parallelism at various levels, and amortizing the cost of data movement is vital to achieving scalable speedup and high performance.
In this course, the easy but important example of matrix-matrix multiplication is used to illustrate essential techniques for attaining high-performance on modern CPUs. A carefully designed and scaffolded sequence of activities 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 awareness of data movement is key to efficient computing.
Requirements for this course are a basic understanding of matrix computations (roughly equivalent to weeks 1-5 of Linear Algebra: Foundations to Frontiers on edX) and exposure to programming. Hands-on activities 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 time of the course.
Join us to meet your need for speed!
At a glance
- Institution: UTAustinX
- Subject: Computer Science
- Level: Intermediate
- Exposure to programming and Linux. Basic understanding of matrix-matrix multiplication.
- Language: English
- Video Transcript: English
What you’ll learn
- Mapping algorithms to architectures
- Extracting parallelism at multiple levels
- Amortizing data movement over computation
- Understanding performance data
- Managing complexity through the layering of software
- Getting Started
- Loops and More Loops
- Start Your Engines
- Pushing the Limits
- Multithreaded Parallelism
Begin with the LAFF-On Programming for High-Performance course at edX by observing the easy series of steps given below.
Step 1 – Tap on – https://www.edx.org/course/laff-on-programming-for-high-performance. It will extend the LAFF-On Programming for High-Performance online course page.
Step 2 – Close the top of the webpage, and click on the ‘Enroll’ button.
Step 3 – Now, you will keep signing up for an edX account. Enter and present your details for registration. Alternatively, you can sign in immediately by linking your existing Apple, Google, Facebook, or Microsoft account.
Step 4 – After reporting, you will enroll in the LAFF-On Programming for High-Performance by edX. A ‘Congratulations’ notification will be displayed to confirm your enrolment.
Filling the form
Joining the LAFF-On Programming for High-Performance online program does not need you to fill out an application form. Registration with edX is enough for getting admission to the course. However, you must equip your details like country of residence, email, password, public username, etc.
“We will retain this course as one of the leading onboarding materials for our team”
– Dr. Misha Smelyanskiy, Technical Lead and Head Manager of AI System Co-design Group at Facebook
How it helps
The LAFF-On Programming for High-Performance online course is created to offer you hands-on knowledge of the C programming language by beginning with skeletal code. Additionally, you will develop a sound hypothetical understanding of the various methods needed to gain the best performance from modern CPUs.
With edX’s LAFF-On Programming for High-Performance certification advantages, you have the option to get an educator-attested certificate, bearing the institution logo, that can be added to your CV/LinkedIn/Resume. With this, you can show recruiters the fluency you have in this sector, thus pursuing coveted profession profiles.
Ways to take this course
Choose your path when you enroll.