Over the past few years, PC hardware has improved tremendously in performance and is now reaching the level of performance which normally would only be available in high-end Unix workstations. This performance increase is particularly visible in the 3D graphics area. In the past, graphics cards for PCs provided a ``dumb 2D frame buffer'' and possibly a few primitive accelerated operations for drawing rectangles and filled regions. These cards were sufficient for accelerating windowing systems like Microsoft Windows and the X Window System. However, demanding 3D applications such as ``first person shooters'' have driven the graphics card industry to add support for hardware accelerated 3D graphics (``HA3G''). HA3G has existed for some time on high-end Unix workstations from SGI, HP, Digital, and IBM. Early HA3G on PCs was very limited; initial cards like the Voodoo mainly provided fast rasterization (writing of texture pixels into the frame buffer) but did not provide support for transformation and lighting in hardware. Whenever a 3D point is to be plotted on a 2D screen its 3D coordinates must be transformed into the appropriate 3D space and then projected to 2 dimensions. These calculations are normally done in single precision floating point. For models with very large numbers of points, this puts an excessive burden on the FPU of the system's CPU, leaving much less time for the application. For some time, high-end graphics cards in the PC have had hardware transformation and lighting. New low-cost HA3G cards, such as the nVidia GeForce2 and ATI Radeon, have made hardware transformation and lighting a standard feature. This allows for significantly higher polygon counts for model objects, which equates to greater on-screen realism.
Molecular modeling typically represents a molecule as a collection of sticks (the chemical bonds) and balls (the atoms). While small molecules such as ethanol (9 atoms) do not place a large demand 3D graphics system, ``interesting'' molecules such as proteins and DNA are much, much larger (often 10,000 or more atoms). To model these systems in real-time absolutely requires HA3G, and the better the HA3G, the larger the system that can be modeled. Further, enhanced representations such as backbone ribbons, spheres, and surfaces can be used.
There is a great deal of interest in replacing older Unix workstations with modern PCs with HA3G. One important decision when replacing these systems with new PCs is what operating system will run. This decision is driven by several forces, including what software will be run, and what level of performance is required. Although porting legacy Unix applications to Windows is far more work than porting to Linux, if the same software runs on both Microsoft Windows and Linux, the decision will be based on the performance of the software on the given platform. With this in mind, we undertook a study to measure the performance of Chimera on the same machine (AMD 1GHz, 256MB DDR-SDRAM, nVidia GeForce2 MX 32MB DDR RAM) running both Windows 2000 Profession and Red Hat 7.1. The GeForce2 MX graphics card has hardware transformation and lighting and is very inexpensive- less than $100. It has drivers for both Linux and Windows 2000, and these drivers share much of the same code. Essentially, the drivers share all the card-driving code but have different interface code for the operating system. In this study we controlled for the system hardware but allowed the operating system/window display code to vary. Also, because Chimera was compiled with Visual C++ on Windows and g++ on Linux that code varies as well. One possible improvement on the study would be to compile Chimera with g++ and STLport on Windows, which would be possible using MingWin, which would control for the generated code.
The question we asked was not ``what is the highest frame rate achievable with a given workload'', but rather, ``can we achieve a target frame rate with a given workload''. The minimum acceptable frame rate in molecular modeling is about 20 frames per second, below which interactive manipulation becomes noticeably jerky. The workload in this case is a moderately sized protein (HIV protease, PDB model ``1hvr''). We varied the representation between wireframe, ball and stick, surfaces, and spheres. Wireframe is typically the fastest while spheres are the slowest, based on the number of polygons to produce the representation.
As can be seen by the table, in most cases the performance was fairly similar between Windows and Linux, but in certain cases, Linux did significantly better. We do not know the actual cause of this performance disparity, since it does not appear to be systematic across all representations. Further, we note that except for wireframe and ball and stick representations the performance was less than acceptable. This is not too surprising given the fact that the card used for the experiments is designed for games and costs less than $100. Better cards such as the nVidia Quadro2 and FireGL2, both of which are supported under Linux, give significantly better performance than the GeForce2 MX. The model used in this study was not particularly large, and recently, structural biologists have determined biologically significant structures 100 times larger. For facile manipulation of these molecules with wireframe representations, high-end graphics cards are an absolute necessity.