How fast is a computer? Fundementally, computers manage data Gaming: What color should each pixel be? World state -> pixel colors Movie editing, rendering, compiling, etc. Frequency: Underlies everything CPU speed Bus speed Response times calculated by cycles Overclocking: Increase frequency beyond manufacturer's intent So you can get more from your money Maybe increase voltage so transistors switch state quicker Waveforms, digital perfection, etc The other factor: What should we tell it to do? Language: Python vs. C comparison Why? Number of instructions! Not all instructions are equal Waiting: CPU has to wait for response from memory Could be a while! Cray XMT We'll get back to it! Pipelining, in general Less waiting: Could we cache it somewhere? Better yet, keep it in a register? A highly significant factor: Algorithms Scaling defined But it's not just this! Taking-out-of-loop optimization Pre-calculated tables and dynamic programming Let's fix the fibonacci benchmark