Abstract8.1 Select the Right “Core” for Your Multicore8.2 Improve Serial Performance before Migrating to Multicore (Especially ILP)8.3 Achieve Proper Load Balancing (SMP Linux) and Scheduling8.4 Improve Data Locality8.5 Reduce or Eliminate False Sharing8.6 Use Affinity Scheduling When Necessary8.7 Apply the Proper Lock Granularity and Frequency8.8 Remove Sync Barriers Where Possible8.9 Minimize Communication Latencies8.10 Use Thread Pools8.11 Manage Thread Count8.12 Stay Out of the Kernel If at all Possible8.13 Use Parallel Libraries (pthreads, OpenMP, etc.)