This document discusses parallel computing and summarizes a talk on the topic. It begins by noting the challenge of exploiting parallelism in hardware to solve problems more effectively. It then discusses single-core CPUs and how multi-core architectures allow multiple cores to run threads in parallel. Within each core, threads are time-sliced. Instruction-level parallelism and thread-level parallelism are described. Simultaneous multithreading is presented as allowing multiple independent threads to execute simultaneously on the same core. However, SMT does not provide true parallelism like multi-core architectures, which allow threads to run independently on separate cores each with their own resources.