• ## Outreach

From: Stefan Boresch (stefan_at_mdy.univie.ac.at)
Date: Wed Dec 16 2020 - 13:49:53 CST

I will test the GPU memory issue when I can easily reboot, though I doubt
it. This is a dual GPU machine (Intel integrated, NVIDIA for highend tasks,
and the NVIDIA card has 4GB (discrete, at least so I believe) RAM).

I checked before starting VMD right now -- nvidia-smi.exe shows no other
process using the GPU, and the Windows taskmanager shows no program
using the GPU. (Chrome is running, but only has my gdrive folder and
gmail inbox). GPU and CPU are shown as idle (load < 1%)

Also, just rendered the scene with the GPU accelerated Optixrenderer, which
seems to work without a glitch -- and that would not fall back to the CPU, right? I will test this on my Linux box tomorrow -- I believe I have seen this
error on Linux, too, in the not too distant past .. Since quicksurf works
nevertheless, I did not investigate.

Anyways, here is the output from VMDQUICKSURFVERBOSE (using 1crn.pdb as before)

QuickSurf: R*1.0, I=0.5, H=1.0 Pad: 7.1 minR: 1.5 maxR: 1.8)
GridSZ: ( 42 36 42) BBox: (-10.2 -7.6 -14.5)->(30.8 27.4 26.5)
CUDA Thrust sort_by_key() failed: C:/Users/johns/Desktop/build/vmd/src/CUDASort.cu line 190
Computing density map grid on CPUs vmd_gaussdensity_avx2()
.Running marching cubes on CPU...
Info) QuickSurf: 0.031 [pre:0.000 vol:0.031 gr:0.000 mc:0.00 mcv:0.000]
Done.

One thing I noted: if the atom selection in Graphics->Represenations is
set to 'all', then the quicksurf command hangs (I see the hourglass in
the Representation window), and I needed to hit Enter in the cmd window
from which I started vmd. Repeating with the selection 'protein' worked
instantenously -- the debug output, however, is exactly the same as copied
above -- not surprsing, as 1crn.pdb contains only protein.

Best,
Stefan

On Wed, Dec 16, 2020 at 10:57:22AM -0600, John Stone wrote:
> Stefan,
> The error message indicates that the GPU code path encountered a failure,
> possibly due to running out of GPU memory. When this happens, VMD then
> goes through an error fall-back to run the CPU version of QuickSurf instead,
> to complete the rendering. Depending on the cause of the error, it may
> prevent further invocations of QuickSurf from trying to use the GPU
> code path and will continue to revert to using the CPU.
> Since I'm able to run 1CRN on my machines without trouble, I'm assuming
> that this is a GPU memory capacity shortfall. This sort of situation can
> be caused or exacerbated by the simultaneous use of other graphics-intensive
> applications. On Windows in particular, if you're using the Google Chrome
> browser, it has a tendency to rack up significant GPU memory use. You might
> try running VMD w/ QuickSurf again when the machine is otherwise devoid of
> other running apps, and see if the problem recurs or not.
>
> If you want, you can enable much more detailed QuickSurf info logging
> by setting the environment variable VMDQUICKSURFVERBOSE either before
> launching VMD (the same way you're setting VMDNOOSPRAY), or within
> VMD via: "set env(VMDQUICKSURFVERBOSE) 1" before computing the QuickSurf
> surfaces. I would be curious to see what your system outputs in the case
> that leads to the Thrust errors.
>
> Best,
> John Stone
> vmd_at_ks.uiuc.edu
>
> On Wed, Dec 16, 2020 at 05:31:30PM +0100, Stefan Boresch wrote:
> > John,
> >
> > concerning Quicksurf: My test is 1crn.pdb as downloaded right now from
> > http://www.rcsb.org/structure/1CRN
> >
> > After loading, I just change the representation from Lines to Quicksurf.
> > Note: I get a picture, which looks fine and which I can manipulate; just
> > the error message is fishy.
> >
> > Thanks, best regards,
> >
> > Stefan
> >
> > PS: Is there anything I can do to turn on additional logging etc?
> >
> > ------------------------------------------------------------------
> >
> > Microsoft Windows [Version 10.0.19042.685]
> >
> >
> >
> > Info) VMD for WIN64, version 1.9.4a50 (December 14, 2020)
> > Info) http://www.ks.uiuc.edu/Research/vmd/
> > Info) Email questions and bug reports to vmd_at_ks.uiuc.edu
> > Info) Please include this reference in published work using VMD:
> > Info) Humphrey, W., Dalke, A. and Schulten, K., `VMD - Visual
> > Info) Molecular Dynamics', J. Molec. Graphics 1996, 14.1, 33-38.
> > Info) -------------------------------------------------------------
> > Info) Multithreading available, 8 CPUs detected.
> > Info) CPU features: SSE2 SSE4.1 AVX AVX2 FMA F16 AVX512F AVX512CD HT
> > Info) Detected VM or hypervisor execution environment
> > Info) Free system memory: 20GB (62%)
> > Warning) Detected a mismatch between CUDA runtime and GPU driver
> > Warning) Check to make sure that GPU drivers are up to date.
> > Info) No CUDA accelerator devices available.
> > Info) OpenGL renderer: GeForce GTX 1650 with Max-Q Design/PCIe/SSE2
> > Info) Features: STENCIL MDE CVA MTX NPOT PP PS GLSL(OVFGS)
> > Info) Full GLSL rendering mode is available.
> > Info) Textures: 2-D (32768x32768), 3-D (16384x16384x16384), Multitexture (4)
> > Info) No joysticks found. Joystick interface disabled.
> > Info) Detected 1 available TachyonL/OptiX ray tracing accelerator
> > Info) Compiling OptiX shaders on 1 target GPU...
> > Info) Dynamically loaded 76 plugins in directory:
> > Info) C:/Program Files/VMD/plugins/WIN64/molfile
> > Info) Using plugin pdb for structure file 1crn.pdb
> > Info) Using plugin pdb for coordinates from file 1crn.pdb
> > Info) Determining bond structure from distance search ...
> > Info) Eliminating bonds duplicated from existing structure...
> > Info) Finished with coordinate file 1crn.pdb.
> > Info) Analyzing structure ...
> > Info) Atoms: 327
> > Info) Bonds: 337
> > Info) Angles: 0 Dihedrals: 0 Impropers: 0 Cross-terms: 0
> > Info) Bondtypes: 0 Angletypes: 0 Dihedraltypes: 0 Impropertypes: 0
> > Info) Residues: 46
> > Info) Waters: 0
> > Info) Segments: 1
> > Info) Fragments: 1 Protein: 1 Nucleic: 0
> > vmd > CUDA Thrust sort_by_key() failed: C:/Users/johns/Desktop/build/vmd/src/CUDASort.cu line 190
> > dev_radix_sort_by_key() failed: C:/Users/johns/Desktop/build/vmd/src/CUDASpatialSearch.cu line 259
> >
> >
> >
> >
> >
> > On Wed, Dec 16, 2020 at 09:12:02AM -0600, John Stone wrote:
> > > Stefan,
> > > Great. Regarding QuickSurf, if you can provide me with input file(s)
> > > and parameters that cause QuickSurf to generate those Thrust errors,
> > > that would be very helpful for me. Without the specific inputs that trigger
> > > the issue it's very hard for me to address that kind of runtime fault.
> > >
> > > I hope to address the OSPRay startup failure issue in a more
> > > graceful and automatic way so that at least no user-set environment
> > > variable would be required to get past the problem. It's still
> > > not clear why OSPRay has trouble on your system, but I'm hoping that
> > > as more people start running the 64-bit Windows build a pattern may
> > > emerge there that clarifies what's happening with OSPRay. This particular
> > > issue has never arisen with OSPRay on the Linux or Mac builds, so it's
> > > somehow unique to Windows thus far.
> > >
> > > Best,
> > > John Stone
> > > vmd_at_ks.uiuc.edu
> > >
> > >
> > > On Wed, Dec 16, 2020 at 11:44:38AM +0100, Stefan Boresch wrote:
> > > > John,
> > > >
> > > > rapidly tested V3.
> > > >
> > > > Stride works.
> > > >
> > > > QUICKSURF works (throwing the same error messages as before)
> > > >
> > > > SURF works. Though, here I should note that I got one of these
> > > > 'hangs', where VMD seems frozen (nothing displayed yet), hitting Enter
> > > > / Ctrl-C in the cmd Window from which I started vmd interupts this,
> > > > and then the surface is displayed just fine.Running SURF again then
> > > > works just fine without freezing. (Note: I have seen this behavior
> > > > under Windows with 1.9.3 as well).
> > > >
> > > > VMDNOOSPRAY=1 is still needed, but that fix wasn't in the "release
> > > > notes".
> > > >
> > > > I definitely seem to be able to do "quick and dirty" visualization (if
> > > > needed) without switching to my Linux machine.
> > > >
> > > > Anyways, a big thank you!
> > > >
> > > > Stefan
> > > >
> > > > On Wed, Dec 16, 2020 at 01:57:17AM -0600, John Stone wrote:
> > > > > Stefan,
> > > > > I've posted a V3 installer with Stride and Surf fixed.
> > > > >
> > > > > Best,
> > > > > John
> > > > >
> > > > > On Tue, Dec 15, 2020 at 10:27:01PM +0100, Stefan Boresch wrote:
> > > > > > Hi John,
> > > > > >
> > > > > > 1) The QUICKSURF error/warning is reproducible, I'll paste the full
> > > > > > console output below. Curiously, by mis-clicking I seem to have triggered
> > > > > > a different error; no STRIDE executable is found:
> > > > > >
> > > > > > Info) assignment. Proteins: structure, function and genetics, 23, 566-579.
> > > > > > ERROR) STRIDE binary "C:\Program Files\VMD\stride_WIN64.exe" cannot be run; check permissions.
> > > > > > ERROR) Call to Stride program failed.
> > > > > >
> > > > > > (No stride_WIN64.exe in/at this path)
> > > > > >
> > > > > > 2) GPU is whatever version of a GTX1650 Microsoft used for the Surface Book
> > > > > >
> > > > > > Output from \Windows\System32\nvidia-smi.exe (running the new vmd alpha
> > > > > > build)
> > > > > >
> > > > > > ~ \$ C:\Windows\System32\nvidia-smi.exe
> > > > > > Tue Dec 15 22:14:54 2020
> > > > > > +-----------------------------------------------------------------------------+
> > > > > > | NVIDIA-SMI 451.77 Driver Version: 451.77 CUDA Version: 11.0 |
> > > > > > |-------------------------------+----------------------+----------------------+
> > > > > > | GPU Name TCC/WDDM | Bus-Id Disp.A | Volatile Uncorr. ECC |
> > > > > > | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
> > > > > > |===============================+======================+======================|
> > > > > > | 0 GeForce GTX 165... WDDM | 00000000:02:00.0 Off | N/A |
> > > > > > | N/A 34C P8 1W / N/A | 132MiB / 4096MiB | 0% Default |
> > > > > > +-------------------------------+----------------------+----------------------+
> > > > > >
> > > > > > +-----------------------------------------------------------------------------+
> > > > > > | Processes: |
> > > > > > | GPU GI CI PID Type Process name GPU Memory |
> > > > > > | ID ID Usage |
> > > > > > |=============================================================================|
> > > > > > | 0 N/A N/A 7124 C+G C:\Program Files\VMD\vmd.exe N/A |
> > > > > > +-----------------------------------------------------------------------------+
> > > > > >
> > > > > > Note: these are (this is) the driver(s) installed by the Windows
> > > > > > update mechanism, I haven't touched anything nvidia related by hand. I did not
> > > > > > install any CUDA development libraries/tools on this machine.
> > > > > >
> > > > > > 3) Processor, one of the cores (as reported by /proc/cpuinfo in WSL):
> > > > > >
> > > > > > processor : 1
> > > > > > vendor_id : GenuineIntel
> > > > > > cpu family : 6
> > > > > > model : 126
> > > > > > model name : Intel(R) Core(TM) i7-1065G7 CPU @ 1.30GHz
> > > > > > stepping : 5
> > > > > > microcode : 0xffffffff
> > > > > > cpu MHz : 1497.604
> > > > > > cache size : 8192 KB
> > > > > > physical id : 0
> > > > > > siblings : 2
> > > > > > core id : 0
> > > > > > cpu cores : 1
> > > > > > apicid : 1
> > > > > > initial apicid : 1
> > > > > > fpu : yes
> > > > > > fpu_exception : yes
> > > > > > cpuid level : 21
> > > > > > wp : yes
> > > > > > flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology cpuid pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single ssbd ibrs ibpb stibp ibrs_enhanced fsgsbase bmi1 avx2 smep bmi2 erms invpcid avx512f avx512dq rdseed adx smap avx512ifma clflushopt avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves avx512vbmi umip avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg avx512_vpopcntdq rdpid flush_l1d arch_capabilities
> > > > > > bugs : spectre_v1 spectre_v2 spec_store_bypass swapgs itlb_multihit
> > > > > > bogomips : 2995.20
> > > > > > clflush size : 64
> > > > > > cache_alignment : 64
> > > > > > address sizes : 39 bits physical, 48 bits virtual
> > > > > > power management:
> > > > > >
> > > > > > (This is the more or less fully maxed out configuration of the 13.5" Surface
> > > > > > Book 3 laptop/convertible -- whatever this thing is ;-)
> > > > > > See, e.g.,
> > > > > > https://www.microsoft.com/en-us/surface/devices/surface-book-3/tech-specs
> > > > > >
> > > > > > Copy of output in console window follows.
> > > > > >
> > > > > > And, yes, this is amazing progress -- thanks!
> > > > > >
> > > > > > Stefan
> > > > > >
> > > > > > PS: All I did was load PDB 1crn directly from the PDB, and trying to activate
> > > > > > QUICKSURF must have by accident hit (New)Cartoon first ..
> > > > > >
> > > > > > C:\Users\stefa>"\Program Files\VMD\vmd.exe"
> > > > > > Info) VMD for WIN64, version 1.9.4a50 (December 14, 2020)
> > > > > > Info) http://www.ks.uiuc.edu/Research/vmd/
> > > > > > Info) Email questions and bug reports to vmd_at_ks.uiuc.edu
> > > > > > Info) Please include this reference in published work using VMD:
> > > > > > Info) Humphrey, W., Dalke, A. and Schulten, K., `VMD - Visual
> > > > > > Info) Molecular Dynamics', J. Molec. Graphics 1996, 14.1, 33-38.
> > > > > > Info) -------------------------------------------------------------
> > > > > > Info) Multithreading available, 8 CPUs detected.
> > > > > > Info) CPU features: SSE2 SSE4.1 AVX AVX2 FMA F16 AVX512F AVX512CD HT
> > > > > > Info) Detected VM or hypervisor execution environment
> > > > > > Info) Free system memory: 22GB (69%)
> > > > > > Warning) Detected a mismatch between CUDA runtime and GPU driver
> > > > > > Warning) Check to make sure that GPU drivers are up to date.
> > > > > > Info) No CUDA accelerator devices available.
> > > > > > Info) OpenGL renderer: GeForce GTX 1650 with Max-Q Design/PCIe/SSE2
> > > > > > Info) Features: STENCIL MDE CVA MTX NPOT PP PS GLSL(OVFGS)
> > > > > > Info) Full GLSL rendering mode is available.
> > > > > > Info) Textures: 2-D (32768x32768), 3-D (16384x16384x16384), Multitexture (4)
> > > > > > Info) No joysticks found. Joystick interface disabled.
> > > > > > Info) Detected 1 available TachyonL/OptiX ray tracing accelerator
> > > > > > Info) Compiling OptiX shaders on 1 target GPU...
> > > > > > Info) Dynamically loaded 76 plugins in directory:
> > > > > > Info) C:/Program Files/VMD/plugins/WIN64/molfile
> > > > > > vmd > The PDB is supported by RCSB, the NSF, US PHS, NIH, NCRP, NIGMS, NLM,
> > > > > > and US DoE, who are not liable for the data. PDB files shall not be
> > > > > > sold. See ftp://ftp.rcsb.org/advisory.doc for full details.
> > > > > > Info) Using plugin webpdb for structure file 1crn
> > > > > > Info) Using plugin webpdb for coordinates from file 1crn
> > > > > > Info) Determining bond structure from distance search ...
> > > > > > Info) Analyzing structure ...
> > > > > > Info) Atoms: 327
> > > > > > Info) Bonds: 337
> > > > > > Info) Angles: 0 Dihedrals: 0 Impropers: 0 Cross-terms: 0
> > > > > > Info) Bondtypes: 0 Angletypes: 0 Dihedraltypes: 0 Impropertypes: 0
> > > > > > Info) Residues: 46
> > > > > > Info) Waters: 0
> > > > > > Info) Segments: 1
> > > > > > Info) Fragments: 1 Protein: 1 Nucleic: 0
> > > > > > Info) Finished with coordinate file 1crn.
> > > > > > Info) In any publication of scientific results based in part or
> > > > > > Info) completely on the use of the program STRIDE, please reference:
> > > > > > Info) Frishman,D & Argos,P. (1995) Knowledge-based secondary structure
> > > > > > Info) assignment. Proteins: structure, function and genetics, 23, 566-579.
> > > > > > ERROR) STRIDE binary "C:\Program Files\VMD\stride_WIN64.exe" cannot be run; check permissions.
> > > > > > ERROR) Call to Stride program failed.
> > > > > > CUDA Thrust sort_by_key() failed: C:/Users/johns/Desktop/build/vmd/src/CUDASort.cu line 190
> > > > > > dev_radix_sort_by_key() failed: C:/Users/johns/Desktop/build/vmd/src/CUDASpatialSearch.cu line 259
> > > > > >
> > > > > > On Tue, Dec 15, 2020 at 03:03:03PM -0600, John Stone wrote:
> > > > > > > Stefan,
> > > > > > > Can you tell me exactly what GPU hardware (and driver versions)
> > > > > > > are in this machine?
> > > > > > >
> > > > > > > Are the QuickSurf errors you're getting repeatable? Can you make it
> > > > > > > happen reliably? I'd love to have any/all test cases that can trigger
> > > > > > > the 'CUDA Thrust sort_by_key()' failure that you posted.
> > > > > > >
> > > > > > > I believe I know what the issue is with Surf, that's another installer
> > > > > > > packaging problem I have to resolve. It looks like I'll be making a
> > > > > > > V3 later tonight. This is very good progress though for first contact
> > > > > > > with real users. I'll send another note when I've got a V3 build ready.
> > > > > > >
> > > > > > > Best,
> > > > > > > John
> > > > > > >
> > > > > > > On Tue, Dec 15, 2020 at 08:24:22PM +0100, Stefan Boresch wrote:
> > > > > > > >
> > > > > > > > John,
> > > > > > > >
> > > > > > > > thank you again. I just installed V2. The OspRay issue
> > > > > > > > is still there, but the workaround with the environment variable works.
> > > > > > > >
> > > > > > > > [Could the OspRay error indicate that (in the library) some CPU
> > > > > > > > instructions are used, which for some reason this particular CPU
> > > > > > > > doesn't suppport (Intel(R) Core(TM) i7-1065G7 CPU)?]
> > > > > > > >
> > > > > > > > The Optix shader works (as does Quicksurf (which spits out some CUDA
> > > > > > > > warnings), so I actually assume that NVIDIA/CUDA *does* work, contrary
> > > > > > > > to the startup message.
> > > > > > > >
> > > > > > > > For the record, quicksurf gives me the following:
> > > > > > > >
> > > > > > > > CUDA Thrust sort_by_key() failed: C:/Users/johns/Desktop/build/vmd/src/CUDASort.cu line 190
> > > > > > > > dev_radix_sort_by_key() failed: C:/Users/johns/Desktop/build/vmd/src/CUDASpatialSearch.cu line 259
> > > > > > > >
> > > > > > > > (But I believe I have seen this warning on Linux platforms, too..)
> > > > > > > >
> > > > > > > > What is new is that SURF doesn't work, the error is:
> > > > > > > >
> > > > > > > > ERROR) Cannot read SURF output file: C:\Users\stefa\AppData\Local\Temp\vmdsurf.u0.41.in.tri
> > > > > > > >
> > > > > > > > The directory exists, and I (user = stefa) can write/read from it, so this
> > > > > > > > looks a bit strange.
> > > > > > > >
> > > > > > > > I cannot thank you enough for your efforts and persistence!
> > > > > > > >
> > > > > > > > Best regards,
> > > > > > > > Stefan
> > > > > > > >
> > > > > > > > On Tue, Dec 15, 2020 at 12:06:50PM -0600, John Stone wrote:
> > > > > > > > > Hi guys,
> > > > > > > > > I've assembled a new 64-bit Windows installer that corrects
> > > > > > > > > two of the prior issues you reported, and I've posted it with a
> > > > > > > > > newer "V2" suffix:
> > > > > > > > > http://www.ks.uiuc.edu/Research/vmd/alpha/
> > > > > > > > >
> > > > > > > > > The new test build corrects the two issues below:
> > > > > > > > > 1) VMD plugin loading and startup scripts are up-to-date
> > > > > > > > > 2) default vmd.rc file no longer has a stray debug/testing command in it
> > > > > > > > >
> > > > > > > > > The mismatched installation target directory in the installer GUI
> > > > > > > > > remains for the time being.
> > > > > > > > >
> > > > > > > > > Stefan: I discussed the OSPRay startup issue with the OSPRay developers
> > > > > > > > > and I will try and add some workaround code in VMD to make it
> > > > > > > > > continue startup even in the case that OSPRay modules fail to load.
> > > > > > > > >
> > > > > > > > > Jerome: The behavior of file/path names with internationalized strings
> > > > > > > > > data will need to be dealt with in a future build.
> > > > > > > > >
> > > > > > > > > I noted that you're all getting bogus CUDA driver warnings on systems
> > > > > > > > > that don't contain NVIDIA GPU hardware, so I'll have to revisit that
> > > > > > > > > code as well.
> > > > > > > > >
> > > > > > > > > Barring further installer/packaging corrections further
> > > > > > > > > improvements will have to come in a later alpha version
> > > > > > > > > since they'll require code changes.
> > > > > > > > >
> > > > > > > > > Best regards,
> > > > > > > > > John Stone
> > > > > > > > > vmd_at_ks.uiuc.edu
> > > > > > > > >
> > > > > > > > > --
> > > > > > > > > NIH Center for Macromolecular Modeling and Bioinformatics
> > > > > > > > > Beckman Institute for Advanced Science and Technology
> > > > > > > > > University of Illinois, 405 N. Mathews Ave, Urbana, IL 61801
> > > > > > > > > http://www.ks.uiuc.edu/~johns/ Phone: 217-244-3349
> > > > > > > > > http://www.ks.uiuc.edu/Research/vmd/
> > > > > > > > >
> > > > > > >
> > > > > > > --
> > > > > > > NIH Center for Macromolecular Modeling and Bioinformatics
> > > > > > > Beckman Institute for Advanced Science and Technology
> > > > > > > University of Illinois, 405 N. Mathews Ave, Urbana, IL 61801
> > > > > > > http://www.ks.uiuc.edu/~johns/ Phone: 217-244-3349
> > > > > > > http://www.ks.uiuc.edu/Research/vmd/
> > > > >
> > > > > --
> > > > > NIH Center for Macromolecular Modeling and Bioinformatics
> > > > > Beckman Institute for Advanced Science and Technology
> > > > > University of Illinois, 405 N. Mathews Ave, Urbana, IL 61801
> > > > > http://www.ks.uiuc.edu/~johns/ Phone: 217-244-3349
> > > > > http://www.ks.uiuc.edu/Research/vmd/
> > >
> > > --
> > > NIH Center for Macromolecular Modeling and Bioinformatics
> > > Beckman Institute for Advanced Science and Technology
> > > University of Illinois, 405 N. Mathews Ave, Urbana, IL 61801
> > > http://www.ks.uiuc.edu/~johns/ Phone: 217-244-3349
> > > http://www.ks.uiuc.edu/Research/vmd/
>
> --
> NIH Center for Macromolecular Modeling and Bioinformatics
> Beckman Institute for Advanced Science and Technology
> University of Illinois, 405 N. Mathews Ave, Urbana, IL 61801
> http://www.ks.uiuc.edu/~johns/ Phone: 217-244-3349
> http://www.ks.uiuc.edu/Research/vmd/