From: John Stone (johns_at_ks.uiuc.edu)
Date: Fri Oct 05 2001 - 14:40:30 CDT

Dear Robert,
  I've got answers for your questions below:

On Wed, Oct 03, 2001 at 03:42:01PM -0700, Robert Matthew Fesinmeyer wrote:
> Hello,
>
> I have a few questions for the group regarding VMD 1.7:
>
> 1) The linux box I run VMD on is home-built dual-PIII system running
> redhat. When starting, VMD apparently notices this, sending:
>
> Info) Multithreading available, 2 CPUs detected.
>
> to the console. That said, I've never noticed VMD making use of both
> processors simultaneously. Are there portions of the VMD code that are
> multithreaded? Should I expect to see any performance improvement from
> having the second cpu?

The currently shipping versions of VMD use multithreading as a means of
accelerating the communications half of interactive molecular dynamics
simulations, by starting a child thread specifically for communication.
Since multithreading is a very detail-oriented and error-prone development
process when starting with a large legacy application like VMD, we are taking
it slowly and are evaluating what parts to worry about multithreading on
a case-by-case basis, starting with the IMD feature as a testbed for
compatibility and stability. The next version of VMD will have the first
support for volume rendering, isosurface display, and various other
technologies that will be implemented with multithreading from
an early stage (though not quite there yet). Eventually we'll be using
multithreading so that VMD will be able to support multiple
simultaneous graphics windows all rendering concurrently, but that's
a little farther down the road. Near-term, we're probably mainly
interested in using it in the new features we're adding, and migrating
older code to multithreading when it gets rewritten or on a case-by-case
basis. When we're done though, it'll be great :-)
The most important thing is to keep the program reliable. Speed is
only beneficial as long as you still get correct answers and the program
is still stable.

> 2) I'm quit impressed by VMD's ability to include user-defined graphics in
> graphic trajectory output (ala the dials script, for example). I have,
> however, had trouble getting the molecule and the graphics in proper
> orientation with respect to one another. Is there an easy way to
> transform a molecule's coordinates such that a specific bond lies, say,
> along the y-axist, with it's midpoint at x=0, z=0?

You could do that with a Tcl script. There was a recent discussion
about this on VMD-L I believe, but if you need details let me know
and I'll dig up the information for you.

> 3) I've noticed that after creating some user defined graphic (say: draw
> sphere {0 0 0} radius 10), VMD goes to 100% cpu usage, even though
> nothing is being done interactively. Removing the graphic
> (Molecule-->Delete) brings VMD back to a normal "resting" cpu usage.
> While this isn't a problem with a single sphere, something more complex
> (like the Dial script) slows the system down significantly. Is this a
> bug, or is there a reason for this?

Interesting: What graphics card do you use? I don't experience that
  problem when running here on a Sun machine with an Elite3Dm6 graphics
  board. I don't recall that behavior on a GeForce3-equipped Linux machine
  either. If you're running a software-only renderer however, or a board
  that lacks some OpenGL functionality, I could imagine this occuring.
  Tell me more about your system and we'll figure that out.

-- 
NIH Resource for Macromolecular Modeling and Bioinformatics
Beckman Institute for Advanced Science and Technology
University of Illinois, 405 N. Mathews Ave, Urbana, IL 61801
Email: johns_at_ks.uiuc.edu                 Phone: 217-244-3349              
  WWW: http://www.ks.uiuc.edu/~johns/      Fax: 217-244-6078