This chapter discusses parallelism and CPUs. It covers SISD computers, hardware and software parallelism, the role of compilers, communication latency, grain packing and scheduling, static multiprocessor scheduling, and node duplication. The key topics are the differences between hardware and software parallelism, balancing granularity and latency, optimizing programs through compilation, and scheduling parallel tasks on multiprocessors.