Claypool

Courses

Publications

Students

Projects

Service

Downloads

Misc


CPU Requirements next up previous
Next: Quality Up: Network Requirements for 3D Previous: Disk Requirements

CPU Requirements

 

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 djpeggif 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.

 

  figure498


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:

tabular506

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.gif 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:

  1. No compression. Flying with no compression has three CPU load components: read is the CPU load for reading the image from the disk; calculate is the CPU load for computing the 2D frame from the 3D image; and send is the CPU load for sending the frame to the user.
  2. Network compression. Flying with network compression has four CPU load components: read is the CPU load for reading the image from the disk; calculate is the CPU load for computing the 2D frame from the 3D image; compress is the CPU load for compressing the frame; and send is the CPU load for sending the compressed frame to the user.
  3. Network and disk compression. Flying with network compression and disk compression has five CPU load components: read is the CPU load for reading the compressed image from the disk; decompress is the CPU load for decompressing the image; calculate is the CPU load for computing the 2D frame from the 3D image; compress is the CPU load for compressing the frame; and send is the CPU load for sending the compressed frame to the user.gif

Table 1 gives the Sun IPX CPU throughput predictions for the above 3 methods for the server to provide flying.

 

  table533


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.

   table548
Table: Flying Component Loads. Sun IPX CPU loads induced by various flying components when done in software and hardware.

 

  table564


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.

 

  figure578


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.

 

  figure585


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.


next up previous
Next: Quality Up: Network Requirements for 3D Previous: Disk Requirements

Mark Claypool
Sat Jun 29 09:46:45 CDT 1996