Saturday, April 28, 2012

Computer Engineer should Know

Communication costs/memory access times could affect a program in so many ways 

- L1 cache reference: 0.5 ns

- Branch mispredict: 5 ns

- L2 cache reference: 7 ns

- Mutex lock/unlock: 100 ns

- Main memory reference: 100 ns

- Compress 1K bytes with Zippy: 10,000 ns

- Send 2K bytes over 1 Gbps network: 20,000 ns

- Read 1 MB sequentially from memory: 250,000 ns

- Round trip within same datacenter: 500,000 ns

- Disk seek: 10,000,000 ns

- Read 1 MB sequentially from network: 10,000,000 ns

- Read 1 MB sequentially from disk: 30,000,000 ns

- Send packet CA->Netherlands->CA: 150,000,000 ns

(note that 1 ns = 1 * 10^-9 s)

Note: The large difference between I/O access (from disk) and main memory access (from RAM) i.e. Reading from main memory is 120 times faster !

No comments: