3 Moore's LawNoted that the number of transistors per unit area had doubled every year from 1958 to 1965Expected the trend to last “for at least ten years”Gordon MooreCo-founder of IntelOften misquoted as “the speed will double every 18 months”

10 Process-Level ParallelismEarly computers (1950s and 1960s) could only run one program at a timeWhen it finished, it would run the next oneMulti-programming operating systems (1970s) made it appear as if multiple programs were running simultaneously10

11 Instruction-Level ParallelismRather than wait for an instruction to finish, start the next one as soon as possibleVery common in RISC architecturesPipelining: Fetch/decode one instruction while executing another11

12 Thread-Level ParallelismModern programming languages support threads, which allow a program to do more than one thing at a timeExamplesReading data from one source while writing to anotherPerforming two parts of a calculation simultaneouslyHandling interaction with multiple users at the same time12