There's more...
Multithreading is another way to increase the efficiency of your algorithms, especially since the advent of multicore processors. OpenMP and the Intel Threading Building Blocks (TBB) are two popular APIs that are used in concurrent programming to create and manage your threads. In addition, C++11 now offers built-in support for threads.