
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
participants (1)
-
Tom Goddard