2CPU.com heeft een Symmetric Multiprocessing FAQ in elkaar geknutseld. Op zich wel handig om eens door te lezen, want er zijn nog steeds personen die denken dat SMP wonderen kan verrichten en het idee hebben dat 2x550=~1100MHz, wat in praktijksituaties zelden het geval zal zijn. Bij efficiënt SMP'en hangt alles af van multi-threading en er zijn maar weinig proggies die zelf multi-threaded zijn:
What is multithreading?Programs break up the tasks they need to do into threads. By far, the majority of applications are written to be single-threaded. This means that the program executes in a linear fashion, and will only use one CPU. A multithreaded application is written in a way that lets it execute any tasks that it can in parallel across multiple processors. Writing a multithreaded program takes more time and skill than writing a single-threaded program because there are additional considerations such as thread scheduling that has to happen. Scheduling is what keeps the threads in synch, and makes sure that everything happens in order. That John Carmack was able to optimize Quake 3 Arena for multiple processors is a testimonial to his programming skills.
What programs that I use are multithreaded?
Well, at this point the only game that will use multiple processors is Quake 3 Arena. As more people buy multiprocessor systems, there may be more games available that use multithreading. On the high end of the scale, we have 3D rendering programs and CAD/CAM programs that are SMP-enabled. Adobe's fine suite of digital image and video manipulation tools use multiple processors, and use them well. L0phtcrack, the NT password cracker uses multiple processors. The RC5 challenge software is an excellent example of multithreaded software. In general, the majority of multithreaded programs will be high-end business software, especially in the design arena.