Principles of ParallelismCovers the basics of parallelism, including physical examples, historical context, multicore era, and parallel collections in Scala.
Complexity of AlgorithmsExplores algorithm complexity, analyzing efficiency and worst-case scenarios of sorting algorithms.
Parallel Programming ICovers the basics of parallel programming, including concurrency, forms of parallelism, synchronization, and programming models like PThreads and OpenMP.
Parallelism: Programming and PerformanceExplores parallelism in programming, emphasizing trade-offs between programmability and performance, and introduces shared memory parallel programming using OpenMP.
Introduction to ComplexityIntroduces time complexity and worst-case analysis of algorithms, abstracting computational complexity from implementation details.
Introduction to ComplexityIntroduces time complexity and worst-case analysis of algorithms, abstracting computational complexity from implementation details.
Computation & Algorithms IExplores algorithm complexity, time complexity estimation, Landau notations, and asymptotic behavior analysis.
Implementing CombinersCovers the implementation of combiners in parallel programming in Scala, including efficient combine methods and set data structures.
P vs NP: Complexity TheoryDelves into complexity theory, focusing on the P vs NP problem and the classification of computational problems based on efficiency.
Speculative Query ParallelizationExplores accelerating complex analytics through speculation, parallelizing queries, handling mispredictions, and transitioning to speculative plans.