It's deja vu all over again. In the old days (35 plus years ago), developers wanting to write half-decent programs had to know their hardware. Those days are back. Clock frequencies have peaked and hardware can no longer be abstracted behind high-level languages. Designed for developers with high performance requirements (games, finance analysis, scientific computation, etc.), this course teaches you what really happens when …
High-Performance Computing and Concurrency
Video description
It's deja vu all over again. In the old days (35 plus years ago), developers wanting to write half-decent programs had to know their hardware. Those days are back. Clock frequencies have peaked and hardware can no longer be abstracted behind high-level languages. Designed for developers with high performance requirements (games, finance analysis, scientific computation, etc.), this course teaches you what really happens when programs are executed and the subtle details that make a program go slow or fast.
With a focus on concurrency, specifically local concurrency (multi-threading), the course is all about writing efficient programs that make the best use of the computing resources available to you. While the sample code is written in C++, the course is not C++ specific. If you can read C++ code, but don’t use it in your work, you will still learn from this class.
Learn how programs execute in hardware and the subtle details that affect program speed
Practice writing efficient programs that get the most out of today’s CPUs, caches, and memory
Discover how single and multi-core CPUs interact with memory and how to avoid memory slowness
Explore memory models, concurrent data structures, lock-free concurrency, and lock-based concurrency
Acquire the tools needed to measure the performance of programs and their components
Fedor G. Pikus is a chief engineering scientist in the Design-to-Silicon division of Mentor Graphics and a former senior software engineer at Google. Fedor builds the design automation tools used by the people who build the chips in your computers, cars, and more. He has over 25 patents, and over 90 papers and conference presentations on physics, EDA, software design, and the C++ language. He holds a Ph.D. in Applied Physics from Peter the Great St. Petersburg Polytechnic University.
Access Patterns And Impact On Algorithms And Data Structure Design
00:14:00
Many Threads (Multi-Core Access)
00:12:45
Measuring Time In Programs
Real Time And CPU Time
00:13:34
TSC Timers
00:09:25
Profiling Tools
00:09:08
Threads
Overview
00:07:37
Threads In C++
00:14:39
Avoiding Data Races And Its Cost
00:11:54
How Threads Interact With Memory
Concurrency And Memory
00:14:17
Data Sharing
00:06:51
False Data Sharing
00:15:41
Synchronization Of Memory Accesses
Locks (Mutexes) Part - 1
00:12:04
Locks (Mutexes) Part - 2
00:12:03
Locks (Spinlocks)
00:17:12
Lock-Free Synchronization And Other Options - Part 1
00:11:15
Lock-Free Synchronization And Other Options - Part 2
00:10:27
Memory Models
Memory Model
00:10:01
C++ Memory Model
00:06:47
Memory Order
00:07:36
Memory Order Guarantees In C++
00:06:30
Memory Barriers
Need For Memory Barriers
00:18:06
Memory Barriers
00:10:07
Synchronization, Revisited - Part 1
00:07:42
Synchronization, Revisited - Part 2
00:19:19
Lock-Based And Lock-Free Programming
Efficient Concurrency; Types Of Concurrent Programs
00:12:01
Problems With Locks Part - 1
00:10:13
Problems With Locks Part - 2
00:06:54
Thread-Safe Data Structures Part - 1
00:14:56
Thread-Safe Data Structures Part - 2
00:06:55
Introduction To Lock-Free Programming
00:17:49
Lock-Free Data Structures
Shared Pointer Part - 1
00:10:49
Shared Pointer Part - 2
00:09:02
Shared Pointer Part - 3
00:10:34
Shared Pointer Part - 4
00:10:26
Shared Pointer Part - 5
00:09:51
Shared Pointer Part - 6
00:15:42
Node-Based Containers Part - 1 (List)
00:10:40
Node-Based Containers Part - 2 (List)
00:08:27
Node-Based Containers Part - 3 (List)
00:11:23
Node-Based Containers Part - 4 (List)
00:11:16
Node-Based Containers Part - 5 (List)
00:09:44
Node-Based Containers Part - 6 (List)
00:06:33
Node-Based Containers Part - 7 (List)
00:07:56
Sequential Containers Part - 1 (Queue)
00:10:09
Sequential Containers Part - 2 (Queue)
00:10:09
Sequential Containers Part - 3 (Queue)
00:13:20
Sequential Containers Part - 4 (Queue)
00:09:37
Sequential Containers Part - 5 (Queue)
00:09:55
Sequential Containers Part - 6 (Queue)
00:13:36
Performance In Real Life
Practical Performance
00:16:03
Factors Affecting Performance Part -1
00:09:13
Factors Affecting Performance Part -2
00:12:30
Concurrent Data Structures In Depth
Concurrency, Performance, And Order Guarantees Part - 1
00:08:19
Concurrency, Performance, And Order Guarantees Part - 2
00:09:15
Toward More General Data Structures
00:09:54
Conclusion
Conclusions And Where To Go From Here
00:14:14
Start your Free Trial Self paced Go to the Course We have partnered with providers to bring you collection of courses, When you buy through links on our site, we may earn an affiliate commission from provider.
This site uses cookies. By continuing to use this website, you agree to their use.I Accept