Software Systems
Fall 2006

Homework 1

Due: Thursday 7 September

The reading for this assignment is Patterson, `Latency Lags Bandwidth.' Note: in the table on page 72, in the Local Area Network section, the line marked Latency is in units of microseconds ($\mu$s), not milliseconds (ms) as labelled.

Cheat Sheet

b bit  
B Byte 8 bits
s second  
G giga $10^9$ or $2^{30}$
M mega $10^6$ or $2^{20}$
K kilo $10^3$ or $2^{10}$
m milli $10^{-3}$
$\mu$ micro $10^{-6}$
n nano $10^{-9}$



Annoyingly, network speeds are usually measured in bits (Mb/s for example); most other measurements are in bytes.

Update the table

The table on page 72 of Patterson's article is reasonably current, but of course things are always changing. Choose one of the four technologies described and find peroformance specifications for a product that is as close as possible to the current state of the art. Post the information you find on the class wiki at http://www.allendowney.com/wiki.

Distance limits latency

For wireless media and optical fiber, the lower bound on latency is determined by the speed of light, which is roughly $3.0 \times 10^8$ m/s. Electrical signals in wire propagate about 30% more slowly; a good rule of thumb is $2 \times 10^8$ m/s.

  1. How far does light travel in one nanosecond? one microsecond? one millisecond?








  2. How long (in ns) does it take an electrical signal to cross a chip that is 15 mm wide?








  3. Latencies for current DRAMs are roughly 50 ns. Do you think electrical propagation time is a significant part of this latency?








  4. Latencies for current disk drives are roughly 6 ms. Do you think electrical propagation time is a significant part of this latency?








  5. If a disk spins at 15,000 rev/minute, how long (in ms) does it take to make one revolution?








  6. What was the point of the last two questions?








Bandwidth is for big things

  1. If the capacity of your hard drive is 100 GB, and it's full, how long would it take to transmit the entire contents over the T3 carrier that connects the Olin campus to the rest of the world, which has a capacity of 44.7 Mb/s? What does this mean for remote backup systems?








  2. If your monitor displays 1280 x 1024 pixels, and the `depth' is 32 bits per pixel, and the refresh rate is 85 Hz, what is the bandwidth from your video card to your monitor? How does that compare with the bandwidth of local area networks? What does this mean for remote display protocols?








  3. According to a press release (ha!), Netflix has the capacity to ship 1 million DVDs per day by USPS. The contents of the DVDs vary, of course, but I would guess that the average size of the contents is 7 GB. Assuming that my guess is at least in the ballpark, what is the total data delivery capacity of the Netflix distribution centers, in Mb/s?








  4. If Netflix switched from mailing DVDs to sending movies by 10 Gigabit Ethernet, how many Ethernet lines would they need? What effect would this change have on latency?








Latency is for little things

  1. Use ping to estimate the network latency from your machine to four sites: one on campus, one on the East Coast, one on the West Coast, and one in Asia or Australia. Let it run for 10-20 iterations. When you hit Control-C, ping prints some summary statistics.

    For each site, what is the minimum latency, and what is the range between the minimum and maximum? Please add your results to the wiki page.








  2. In general, humans cannot detect delays shorter than 1/10th of a second, or 100 ms. If you use ssh to connect to a machine in California, every time you press a key, it takes one round-trip latency before the key appears on your screen. How often would you see a noticeable delay?








Size amortizes cost

  1. If the time to get one byte from disk is 6 ms and the bandwidth from the disk to memory is 90 MB/s, how long does it take to transfer a 512 B block from disk to memory? How about an 8 KB block? How about an entire track, which is 369 KB?








  2. How long would it take to write 1 GB of data from memory onto disk, assuming that the limiting factor is bandwidth?








  3. How long would it take to write 1 GB of data if the average time to write each 512 B block is 3 ms?








  4. What is the point of the previous two questions?








Total latency, bottleneck bandwidth

  1. Imagine a network path that contains three links, a Fast Ethernet, a Gigabit Ethernet, and a 10 Gigabit Ethernet. What is the total time it would take a small packet to traverse all three links and return?








  2. At what bandwidth could we transfer a large file along this path?








  3. A cheap way to build a `supercomputer' is to connect up a rack of off-the-shelf servers with a Gigabit Ethernet. In a setup like this, how long does it take for a given processor to access the memory module on another processor? How does this compare with the time to access local memory? How about a local disk?








  4. In the same `supercomputer,' how fast (bandwidth) could we move data from one processor's memory to another's?








  5. What was the point of the last two questions?