8 Rules of Thumb

  1. Think parallel.
  2. Program using abstraction.
  3. Program in tasks (chores), not threads (cores).
  4. Design with the option to turn concurrency off.
  5. Avoid using locks.
  6. Use tools and libraries designed to help with concurrency.
  7. Use scalable memory allocators.
  8. Design to scale through increased workloads.

These are from the Intel presentation ''Multi-Core is Mainstream: Are you Ready?'' by James Reinder