要编写串行或并行应用程序,并非一定要了解硬件的工作原理,编写代码时完全可以将计算机内部结构视作黑盒子。然而,对处理器内部结构作一个基本了解会使稍后的主题更直观易懂。串行(或单线程)应用程序和并行(或多线程)应用程序之间的关键区别在于,由于多线程的存在,更多系统属性变得对应用程序重要起来。例如,单线程应用程序不会出现多个线程争用相同资源的情况,但对多线程应用程序来说这种情况经常发生。资源可能是缓存空间、内存带宽,或者仅仅是物理内存空间,在这些情况下,硬件特性会反映在应用程序行为的变化上。若对硬件的工作方式有所了解,读者会更容易理解、诊断和纠正应用程序的任何异常行为。