This course is targeted to scientists, engineers, scholars, or anyone seeking to solve problems efficiently in high-performance computing environments or in the cloud. Students completing this course will have a basic understanding of how to find bottlenecks in their programs as well as how to address those bottlenecks. The course will provide a high-level introduction to modern compute node architectures of high-performance and cloud computing instances.
This course can be taken for academic credit as part of CU Boulder’s Master of Science in Data Science (MS-DS) degree offered on the Coursera platform. The MS-DS is an interdisciplinary degree that brings together faculty from CU Boulder’s departments of Applied Mathematics, Computer Science, Information Science, and others. With performance-based admissions and no application process, the MS-DS is ideal for individuals with a broad range of undergraduate education and/or professional experience in computer science, information science, mathematics, and statistics. Learn more about the MS-DS program at https://www.coursera.org/degrees/master-of-science-data-science-boulder.
Syllabus 5
Finding Performance Bottlenecks 2 hours
In this module, we cover an approach to analyze and optimize program performance, such as profiling, using optimized libraries, and compiler options for increasing efficiency.
Simple Optimization Techniques 1 hour
In this module, we examine simple techniques that help with program performance. We are looking at scalar and loop optimization methods that can have a large impact on a program’s floating-point performance.
Computer Architecture and Vectorization 1 hour
In this module, we introduce the basic architecture of modern computers focusing on how the architecture influences program performance. We are looking at processor level data parallelism and how optimized code for parallelism has a much increased floating-point performance.
Computer Architecture 1.5 hours
Memory performance is generally the main performance bottleneck since the speed of the main memory has not kept up with the capabilities of processors to process floating-point numbers. We introduce how layers of fast memory, called cache memory, can speed up computations and provide an example of…
Parallel and High Throughput Computing 1.5 hours
This module will provide an introduction to parallel and high throughput computing. It will also demonstrate slurm job arrays, where there are mechanisms for working with many similar jobs quickly and easily. Finally, this module will look at running many jobs concurrently with GNU Parallel.
Advantages and disadvantages
Advantages
Structured courses with graded quizzes, assignments and deadlines you can reset.
A shareable certificate from the university or company when you pay.
Financial aid is often approved for students in India (apply 15 days before you need it).
Self-paced: start any time.
A clear syllabus (5 parts) you can see before you start.
Disadvantages
Paid after a 7-day free trial (Coursera Plus or per course).
Some courses can be audited for free, but graded work and certificates need payment.
Some points apply to every course of this kind; see how we rank.
This course is paid. Here is how to take it for free
Free trials: You can start a 7-day free trial for many individual courses, Specializations, or a Coursera Plus subscription to test full course features. Cancel before the seventh day if you do not want to be charged.
Financial aid: If you cannot afford the fee for a certificate, you can apply for financial aid through the link on the course home page by filling out an application about your background and goals.
Taught by
Shelley KnuthAssociate Director of User Services, Research Computing, University of Colorado Boulder
Thomas HauserDirector of Research Computing, Research Computing
This is CS50P, CS50's Introduction to Programming with Python. Register for free at https://cs50.edx.org/python. Slides and source code at https://cs50.harvard.edu/python. Playlist at https://www.youtube.com/playlist?list=PLhQjrBD2T3817j24-GogXmWqO5Q5vYy0V. An introduction to programming using a la…
Instructor: Ana Bell View the complete course: https://ocw.mit.edu/courses/6-100l-introduction-to-cs-and-programming-using-python-fall-2022/ *Note: Lectures 6, 10 have been updated! This subject is aimed at students with little to no programming experience. It aims to provide students with an under…
-Learn more and enroll in the program: https://online.stanford.edu/programs/generative-ai-technology-business-and-society-program Recent advancements in generative AI are reshaping industries, pushing technological boundaries, and revolutionizing creative processes. In this fast-changing landscape…
For more information about Stanford's Artificial Intelligence programs visit: https://stanford.io/ai Delve into the exciting world of Artificial Intelligence with insights and research from the world's top experts. This playlist offers a comprehensive journey, from foundational machine learning con…
Led by Andrew Ng, this course provides a broad introduction to machine learning and statistical pattern recognition. Topics include: supervised learning (generative/discriminative learning, parametric/non-parametric learning, neural networks, support vector machines); unsupervised learning (cluster…