[Chimera-users] seg faults
Tom Goddard
goddard at cgl.ucsf.edu
Tue Jul 3 09:49:46 PDT 2007
Edward Egelman wrote:
> Hi,
> I have a question about very complicated chimera sessions (20 or so
> large PDB files, 10 or so large brix volumes). We will sometimes get a
> segmentation fault and the session will close. This is on a 32-bit
> linux machine with 2GB memory (our only system with stereo display).
> If we move to a 64-bit machine with more memory, will we be less
> likely to crash? Or is this due to some internal memory limitations in
> chimera itself? A second question is whether you have any experience
> (or know of others who have) using fast nvidia stereo boards (such as
> the Quadro FX3500) to accelerate display operations in chimera.
> Regards,
> Ed
> --
Hi Ed,
There are only two Chimera crash situations that I understand and are
frequently reported. Computing molecular surfaces of PDB models (menu
entry Actions / Surface / show) crashes for many large PDB models. If
the surface calculation gives an error but does not crash it has usually
corrupted memory and Chimera will crash later. The solvent excluded
surface code comes from Michel Sanner and is very complex (~20000 lines
of C code). We have been working on a replacement for it for over a
year but it is not yet ready. The second type of crash is caused by
graphics driver bugs. These are common, more so on higher-end graphics
cards where Chimera takes advantage of OpenGL features that are used by
few applications, also more common on laptops. Here are some of the
graphics driver problems observed in Chimera.
http://www.cgl.ucsf.edu/chimera/graphics/graphicsbugs.html#cards
I have never had Chimera crash when I am working with large PDB models
and maps (using Mac systems with 1-2 Gb memory), but that is probably
because I only work with a few models and maps at a time, and for short
sessions. It could be that memory allocation failures cause crashes in
these situations. I am doubtful that using the 64-bit Linux Chimera
will help. Using the 32-bit Linux Chimera on a 64-bit machine almost
certainly will not help because the 32-bit address space can only access
4 Gb of memory and segments of that address space are already used by
shared libraries and program stack -- so you probably only have 2 Gb of
usable space. With 2 Gbytes of physical memory you probably have at
least 4 Gb of virtual memory, so the 32-bit address space is the main
limitation. Chimera catches memory allocation failures for large
allocations (e.g. opening a new map) and those do not cause a crash. It
is only when a small allocation that is not checked fails that a crash
might happen.
The difference in speed rendering surfaces between say a Quadro FX 3400
and an ATI Radeon Pro 9800 (in my 3 year old desktop computer) is about
a factor of 4. That is about the speed up to expect between a card that
is a couple years old and the latest graphics card. Benchmark scores
using Chimera for different cards are on the web
http://www.cgl.ucsf.edu/chimera/benchmarks.html
although there are few numbers for the latest cards. For volume
surfaces look at the Surface column of the table. The score is the
grid size of a triangulated cube that can be rendered at 10 frames per
second. Since the number of triangles increases as the square of the
size you should look at the *square* of the ratio of scores between
cards to gauge the increase in speed expected for a fixed size volume.
Tom
More information about the Chimera-users
mailing list