Shared-Memory Parallelism Can be Simple, Fast, and Scalable (Acm Books)