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

Reply via email to