Data parallelism from a multicore perspective
summary
Surveys how to implement map‑reduce on a single multicore: split input into mapper threads that produce key/value streams and merge them with a reducer; mappers run embarrassingly parallel while the reducer typically stays sequential (but can itself be parallelized). Examples include word count, normalized word‑vector fingerprints and iterative K‑means; implementations use Java recursive tasks for best throughput, can target C++ with explicit memory reclamation, and contrast with distributed Hadoop/Spark where fault tolerance and file‑based I/O dominate. cache locality dominates performance and memory layout and allocation matter.
AI-written summary · about
chapters (12)
- 0:00Start
- 6:39When Does Multi-Core Become Popular
- 12:11Abstract Mapper Class
- 14:30Word Count Mapper
- 17:59Hadoop and Spark and Google's Mapreduce
- 20:48Reduce Phase
- 32:22Recapitulate
- 36:30Reduce Function
- 43:32Betweenness Centrality
- 44:18Multi-Threaded Mapreduce and Distributed Mapreduce
- 48:04Multi-Core Mapreduce
- 1:10:45Cash Locality
related talks
41mParallel Programming, Fork Join, and Reducers
50mFrom Concurrent to Parallel
52mSecrets of High Performance in Multicore Systems ☠️
39mThe best multicore-parallelization refactoring you've never heard of
56mParallelizing the C++ Standard Template Library
39mLet's talk concurrency
37mScalable Parallel Algorithms
41mConcurrent Stream Processing
