Shared Memory Application Programming: Concepts and Strategies in Multicore Application Programming