Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Stanford University

Stanford CS149 - Parallel Computing 2023

Stanford University via YouTube

Overview

Google, IBM & Meta Certificates — All 10,000+ Courses at 40% Off
One annual plan covers every course and certificate on Coursera. 40% off for a limited time.
Get Full Access
Explore the fundamental principles and engineering trade-offs of modern parallel computing systems through this comprehensive Stanford University course taught by Kayvon Fatahalian and Kunle Olukotun. Master both parallel hardware and software design concepts essential for understanding ubiquitous parallel processing found in smartphones, multi-core CPUs, GPUs, supercomputers, and large-scale websites. Begin with foundational concepts including why parallelism and efficiency matter, then dive deep into modern multi-core processor architecture and ISPC programming abstractions. Learn parallel programming basics, performance optimization techniques focusing on work distribution, scheduling, locality, communication, and contention management. Develop expertise in GPU architecture and CUDA programming while mastering data-parallel thinking and distributed data-parallel computing using Spark. Gain practical knowledge of efficiently evaluating deep neural networks on GPUs and understand critical concepts like cache coherence, memory consistency, and fine-grained synchronization including lock-free programming. Explore advanced topics such as domain-specific programming languages, transactional memory systems, and hardware specialization for parallel computing. Access hands-on programming experience with modern parallel programming techniques necessary to effectively utilize parallel machines, while building a deep understanding of key machine performance characteristics that inform good parallel program design.

Syllabus

Stanford CS149 I Parallel Computing I 2023 I Lecture 1 - Why Parallelism? Why Efficiency?
Stanford CS149 I Parallel Computing I 2023 I Lecture 2 - A Modern Multi-Core Processor
Stanford CS149 I 2023 I Lecture 3 - Multi-core Arch Part II + ISPC Programming Abstractions
Stanford CS149 I Parallel Computing I 2023 I Lecture 4 - Parallel Programming Basics
Stanford CS149 I 2023 I Lecture 5 - Performance Optimization I: Work Distribution and Scheduling
Stanford CS149 I Lecture 6 - Performance Optimization II: Locality, Communication, and Contention
Stanford CS149 I Parallel Computing I 2023 I Lecture 7 - GPU architecture and CUDA Programming
Stanford CS149 I Parallel Computing I 2023 I Lecture 8 - Data-Parallel Thinking
Stanford CS149 I 2023 I Lecture 9 - Distributed Data-Parallel Computing Using Spark
Stanford CS149 I Parallel Computing I 2023 I Lecture 10 - Efficiently Evaluating DNNs on GPUs
Stanford CS149 I Parallel Computing I 2023 I Lecture 11 - Cache Coherence
Stanford CS149 I Parallel Computing I 2023 I Lecture 12 - Memory Consistency
Stanford CS149 I 2023 I Lecture 13 - Fine-Grained Synchronization and Lock-Free Programming
Stanford CS149 I Parallel Computing I 2023 I Lecture 14 - Midterm Review
Stanford CS149 I Parallel Computing I 2023 I Lecture 15 - Domain Specific Programming Languages
Stanford CS149 I Parallel Computing I 2023 I Lecture 16 - Transactional Memory 1
Stanford CS149 I Parallel Computing I 2023 I Lecture 17 - Transactional Memory 2
Stanford CS149 I Parallel Computing I 2023 I Lecture 18 - Hardware Specialization
Stanford CS149 I Parallel Computing I 2023 I Lecture 19 - Accessing Memory + Course Wrap Up

Taught by

Stanford Online

Reviews

4.9 rating, based on 10 Class Central reviews

Start your review of Stanford CS149 - Parallel Computing 2023

  • Profile image for Mansi Kapse - 23BCE10627
    Mansi Kapse - 23BCE10627
    The course provided a well-structured and engaging learning experience that helped build a strong understanding of the subject. The content was organized logically, starting from basic concepts and gradually moving toward more advanced topics, makin…
  • Profile image for Saksham Kohli 23bce10558
    Saksham Kohli 23bce10558
    Stanford CS149 is an excellent course that provides a strong foundation in parallel computing and performance optimization. It covers key topics such as SIMD, multithreading, GPU computing, and memory hierarchy, helping learners understand how moder…
  • Profile image for Munish Upadhyay 23bce10925
    Munish Upadhyay 23bce10925
    This course on Parallel and Distributed Computing provides a strong foundation in both theoretical concepts and practical implementation. It clearly explains key topics such as concurrency, synchronization, parallel architectures, and distributed sy…
  • Profile image for Yoshita Upadhyay 23BCE11822
    Yoshita Upadhyay 23BCE11822
    This course offered a clear and engaging introduction to parallel and distributed computing concepts. Complex ideas were broken down into simple, understandable sections, making it easier to grasp core principles. The structured approach helped buil…
  • Profile image for Akhil Astitva
    Akhil Astitva
    I am extremely happy to get this course done without any issue.
    I got to learn each and every topic about The Parallel And Distributive Computing very deeply.They teached us in a very effictive way to get the concepts in a blink of an eye.
    The script of the subject seems very easy to understand and anyone new to this course will surely gonna love the way the teacher teaches.
  • Profile image for Suchit Chavan
    Suchit Chavan
    I completed the Stanford CS149 Parallel Computing course and found it very useful for understanding how programs can run faster using parallel execution. The course explains important ideas like parallelism, threads, synchronization, and performance…
  • Profile image for ARJUN VASHISHTHA 23BCE11644
    ARJUN VASHISHTHA 23BCE11644
    Very Nice course,I recently completed the course and was thoroughly impressed by the depth and structure of the material. The instructor was incredibly knowledgeable, breaking down complex topics into digestible, engaging modules that made learning both fun and practical.
    What I appreciated most was the balance between theory and real-world application, allowing me to immediately apply new techniques to my daily work. The course materials were well-organized, and the platform was easy to navigate. This has been a worthwhile investment for my professional development, and I highly recommend it to anyone looking to improve their skills in this field.
  • Profile image for Shriyam Rastogi
    Shriyam Rastogi
    CS149 isn't just about learning syntax; it’s a fundamental shift in how you think about problem-solving. In most classes, you care about $O(n)$ vs $O(n^2)$. Here, you care about why your $O(n)$ algorithm is crawling because of a cache miss or false sharing.Workload: High. Expect to spend significant hours in the "basement" (or your remote equivalent) debugging race conditions that only appear once every 1,000 runs.Prerequisites: You must be comfortable with C++. If you’re still shaky on pointers or memory management, this course will be a trial by fire.
  • Profile image for Kalpaang Sen
    Kalpaang Sen
    It is good course to learn Parallel Computing. It provides students with video tutorials and help them understand the basic concept of Parallel and Distributed Computing
  • Profile image for Lakshya Tatoo 23bce11403
    Lakshya Tatoo 23bce11403
    Knowledge fruitful experience that was very interesting and learned asking experience.
    It helped me understand more about the parallel computing

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.