We can predict the CPU throughput required for flying by using the CPU load for individual components as in [2]. We obtain the flying throughput for a 40 MHz Sun IPX to obtain a baseline for predictions to faster machines.
To do this, we obtained the CPU load for doing JPEG compression and
decompression. We modified the source code for cjpeg and
djpeg to perform compression and decompression in
separate processes. We followed experimental techniques that were
identical to those used to obtain the CPU loads for the previous
components. As in [2], we used a counter process that
incremented a double variable in a tight loop to measure the CPU load
of the JPEG components. We compressed and decompressed images to and
from PPM files (see the footnote in section 5).
The independent variable in our measurements was the JPEG compression quality. Figure 7 depicts the CPU load for compression and decompression versus quality. All points are shown with 95% confidence intervals.
Figure: CPU load for JPEG Compression and Decompression
versus Quality. The vertical axis is CPU time in milliseconds/byte.
The horizontal axis is the JPEG quality setting. All points are
shown with 95% confidence intervals.
Using linear regression, we can derive the JPEG CPU load in milliseconds per bit of the original PPM image:
To estimate the effects of new high-performance graphical workstations on the CPU load for image calculation, we use the results reported in [18]. They report that image calculation from a 256x256x256 voxel volume data set (the same size we assume for our 3D region) takes about 5 seconds per frame on a 100 MHz Silicon Graphics Incorporated (SGI) Indigo 2 workstation using Levoy's ray-casting algorithm and about a second per frame using a new shear-warp algorithm. We will assume a CPU load of one second per frame for an Indigo workstation.
We compare the processing power of the Sun IPX to the SGI Indigo by
comparing their performance under the Systems Performance Evaluation
Cooperative (SPEC) benchmark integer suite. SPEC is a non-profit
corporation formed by leading computer vendors to develop a
standardized set of benchmarks. Founders, including
Apollo/Hewlett-Packard, DEC, MIPS and Sun, have agreed on a set of
real programs and inputs that all will run. The benchmarks are meant
for comparing CPU speeds. The SPEC numbers are the ratio of the time
to run the benchmarks on a reference system and the system being
tested. The SPECint value for a Sun IPX is 21.8 and the SPECint value
for the 150 MHz Indigo 2 is 92.2 [7]. Roughly, the
Indigo 2 is 4 times faster than IPX, so we assume the IPX takes 4
seconds to do the 2D image calculation from the 3D region.
We can now predict the flying throughput for the Sun IPX CPU server. There are three different methods of flying:
Table 1 gives the Sun IPX CPU throughput predictions for the above 3 methods for the server to provide flying.
Table: Flying Throughput. Predicted Sun IPX CPU loads
with the three ways to use compression for flying.
Network compression slightly reduces CPU frame throughput. Disk compression, however, reduces CPU frame throughput by more than 80%. Most importantly, it would take a CPU over nine-hundred times faster than a Sun IPX to satisfy the flying requirements for even one user! Even an SGI Indigo 2 with 20 processors would still only have a flying throughput of 59.2 Mbits/second, not even enough for 1 user! Clearly, there is a need to find ways to increase CPU flying throughput.
One such method may be specialized hardware. Currently, there are co-processors that perform JPEG compression and decompression. Similarly, many computers have specialized graphics rendering hardware. To estimate the CPU load for using specialized hardware, we assume that accessing specialized hardware is equivalent to one kernel call and that calls can take place in block sizes of 100 Kbytes. We also assume that all hardware is sufficiently fast to keep up with the CPU. Table 2 analyzes the Sun IPX CPU improvements from using such hardware for each flying component operating on one frame. Table 3 gives the CPU throughput predictions for an SGI Indigo 2 workstation using hardware support for the flying components.
Table: Flying Component Loads. Sun IPX CPU loads
induced by various flying components when done in software and hardware.
Table: Hardware Flying Throughput. Possible SGI
Indigo 2 CPU loads induced by the three forms of flying when the CPU
is equipped with specialized flying hardware.
We can now predict the CPU throughput required for flying. Figure 8 shows the load predictions versus simultaneous users and Figure 9 shows the load predictions versus servers. Flying throughput for a Sun IPX would be at the very bottom of these graphs. Even a 20 processor 100 MHz SGI Indigo 2 using compression cannot satisfy user flying requirements for even one user. We therefore consider the use of specialized hardware and kernel support for reading, compressing, calculating and sending.
Figure: Bandwidth versus Simultaneous Users. The
upward sloping curves are total bandwidths with compression and
without compression. The horizontal lines are CPU flying throughput
rates. The top horizontal line is the predicted flying throughput of a
2 processor SGI Indigo 2 with specialized flying hardware.
Figure: Bandwidth versus Number of Servers. The
upward sloping curves are the average bandwidths per server with
compression and without compression. The horizontal lines are CPU
flying throughput rates. The top horizontal line is the predicted
flying throughput of a SGI Indigo 2 with specialized flying hardware.