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


 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


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.


More information about the Chimera-users mailing list