I’ve been processing images with Hugin and other tools over the network since I upgraded to a Giga Ethernet Switch. Offloading file handling to a server has numerous benefits. Most important: a quieter office. A member of the French panorama community asked me for details about system performance. I share them here, hoping that others might find the information helpful too.
Before an image can be processed, the data must be transferred from media to memory. It passes a few interfaces along the road, and the slowest interface is the bottleneck that determines overall performance. For a file on a hard disk, this means:
- media transfer, when the data is copied from the platter to the disk’s electronics and back
- data transfer between the the disk’s electronics and the controller
- bus transfer from the controller to the chipset
- memory transfer between chipset, memory and processor
If we add a network layer there is also the network transfer between the two computers to consider.
Two performance measurement are applicable:
- the latency of the interface, or how quick it reacts to commands
- it’s transfer rate, or how much data it can transmit over a given period of time
Data transfert for modern hard disks is either Ultra 320 SCSI at 320 MB/s or SATA-II at 300 MB/s. These are purely theoretical maximums. In reality, the much slower media transfer influences the speed at which data moves to and from the disk. Some manufacturer data about maximum sustained transfer rates (the higher the better):
- Hitachi Deskstar 7K1000 (SATA-II, 7.2K RPM): 85 MB/s
- Western Digital Raptor (SATA-I, 10K RPM): 84 MB/s
- Seagate Cheetah 15K.5 (SCSI, 15K RPM): 125 MB/s
On most common configurations, 80 MB/s is the bottleneck on the way to the controller, often a RAID controller.
Depending on the RAID configuration, transfer scale. RAID0 (good for performance, not for backup) hits transfer rates of 150MB/s with two disks, or 290MB/s with five disks.
Next interface is the bus, PCI, PCI-X or PCI-Express (PCIe). Legacy PCI does 127MB/s – still enough but could become a bottleneck for a high performance RAID. No more bottlenecks with PCI-X (PCI compatible) or PCIe (not PCI compatible) – up to 4GB/s. PCIe is available on most motherboards today. It has replaced AGP as the bus for the notoriously bandwidth eating video cards.
In the chipset transfer rates are measured in GB/s. Sometimes the data takes a shortcut when the chipset addresses directly the controller, as shown on the schema on page 3 of this chipset data sheet.
At this point we have the choice: process the image here, sharing CPU and RAM with the transfer process; or forward the data over the network to a workstation whose resources will be fully dedicated to the image processing.
Gigabit ethernet is the current standard. At 125MB/s hardly a bottleneck for a common configurations. And 10-Gigabit ethernet is not yet at SOHO prices, but already available commercially too. 1.25GB/s.
Again some manufacturer data about access time (the lower the better):
- Hitachi Deskstar 7K1000 (SATA-II, 7.2K RPM): 8.5ms read, 9.2ms write
- Western Digital Raptor (SATA-I, 10K RPM): average 4.6ms
- Seagate Cheetah 15K.5 (SCSI, 15K RPM): 3.9ms read, 4.2ms write
The latency inside the computer is negligible (measured in ns), and the extra latency introduced by the network is about 0.2ms
In most common cases, the network is not a bottleneck. The Sustained Transfer Rate (STR) of hard disks still is, despite recent improvements in data density through perpendicular writing. By the time current network technology becomes the bottleneck, next generation 10-Giga Ethernet will be an affordable upgrade.
I have not felt any significant performance difference since stitching over the network. But there is less noise in my office Solid state drives as an alternative to hard disks are strong on AC but not yet on STR. Using one as the system drive of the image processing workstation will reduce ambient noise and make working more comfortable.
Filed under: storage