On Monday 14 June 2004 20:59, pdouc...@chem.ucla.edu wrote: > Maybe a better way to ask this question is: if you upgraded each piece of > hardware individually what features would be improved in pyMol? > > Specifically for the video card, what features that are utilized by pyMol? > 3D capabilities? on-board RAM? I dunno.
In order to generate an image, programs like PyMOL have to go through the following steps: 1) read coordinates from a file and build in-memory data structures to represent them. This is done by the main CPU and uses main memory. 2) build geometrical objects (cylinders, tubes, boxes, spheres, triangles, ...) to create all the geometric represenations. In most programs this is also done by the main CPU. For large structures and detailed, complex representations (such as surfaces with very fine triangles) this can use quite a bit of memory and involve a lot of calculation. 3a) for the interactive display, OpenGL is used to render the generated geometrical objects as a two-dimensional image, taking camera position and lighting effects into account. This can be done in software, but most of the time, the OpenGL implemementation uses the graphics processor (GPU) of a 3D graphics card to perform calculations like matrix transforms and lighting calculations with specialised hardware and in parallel with the main CPU. To this end, coordinates and other information such as textures have to be transferred to the graphics board over the AGP bus. The GPU capabilties thus determine the speed of the interactive display. 3b) for raytraced images, the rendering of the geometric objects is performed in software by PyMOL's built-in raytracer, using the main CPU and main memory. This means that this is independent of the graphics board, but puts an additional burden on the rest of the system. For complex scenes, a lot of core memory is desirable. There is some research going on into the possibilities of using the GPU as a coprocessor for general calculations [1,2]. This could potentially benefit applications like raytracing, but it would only be beneficial on systems with very recent graphics boards. [1] http://graphics.stanford.edu/projects/brookgpu/index.html [2] http://www.gpgpu.org/ I'm sure there are much more details to consider, but I hope this is a start. -- Lieven Buts Department of Ultrastructure Vrije Universiteit Brussel