First: Can we use over 100% CPU? The way top defines it, yes Image filters, part 2: What exactly is an image? A bunch of numbers... RGB for each pixel An array of unsigned char So to find a pixel, it's at 3x the index width and height How to convert image coordinates to an index We should be able to make a square or something on it Maybe add an image border Detecting things: Let's make a flashlight effect This is "embarrassingly parallel" What's NOT? Quicksort parallel example Primes: Higher numbers are harder Numbers are asymmetrically harder Some numbers are easy to eliminate (example: All evens) Result reporting, and hotspots All threads may need all sets of results Image filter example: "greenness" index Map/Reduce may be appropriate here mutex trylock vs. lock If you had something else to do anyway Can keep a queue of per-thread results