From: John Stone (johns_at_ks.uiuc.edu)
Date: Tue Apr 04 2017 - 15:30:20 CDT

Hi,
  Here is a trivial example that you can use as a template to build
up your own parallel rendering scripts in the MPI-enabled VMD builds.
The "parallel" commands work both in conventional desktop builds of VMD
as well as with MPI-enabled builds, allowing you to use the same script
in both scenarios. You can therefore debug/test on a single node or your
laptop as a starting point, and then run it on a handful of nodes with
an MPI build, and when your script is bug-free, you could then run it
at scale. I have used the MPI-enabled builds of VMD on up to a
a couple thousand nodes of a large supercomputer. The scalability depends
greatly on how much I/O you're having VMD do vs. the rendering workload.

Here's a minimalistic prototypical example script that would
interoperate with the VMD movie maker plugin and/or the ViewChangeRender
plugin:

proc render_one_frame { frameno userdata } {
  # retrieve user data rendering workers
  set formatstr [lindex $userdata 0]
  set dir [lindex $userdata 1]
  set renderer [lindex $userdata 2]

  # Set frame, triggering user-defined movie
  # callbacks to update the molecular scene
  # prior to rendering of the frame
  set ::MovieMaker::userframe $frameno

  # Regenerate molecular geometry if not up to date
  display update

  # generate output filename, and render the frame
  set fname [format $formatstr $frameno]
  render $renderer $dir$fname
}

proc render_movie { dir formatstr framecount renderer } {
  set userdata {}
  lappend userdata $formatstr
  lappend userdata $dir
  lappend userdata $renderer

  set lastframe [expr $framecount - 1]
  parallel for 0 $lastframe render_one_frame $userdata
}

Cheers,
  John Stone
  vmd_at_ks.uiuc.edu

On Tue, Apr 04, 2017 at 12:04:45PM +0200, Andrea Spitaleri wrote:
> Hi John,
>
> could you kindly provide us a script example how to run
> vmd_rendering_MPI on supercomputers?
>
> Thanks
>
> andrea
>
> On 03/04/2017 16:45, John Stone wrote:
> >Hi,
> > Only the _external_ CPU Tachyon renderer can write the scene geometry to a
> >".dat" file. All of the "internal" Tachyon variants write images only, and
> >they do not write (nor can they read) scene geometry to/from .dat files.
> >You would normally use it like this (just one example):
> > render TachyonLOptiXInternal /some/directory/my/image.tga
> >
> >The OptiX-based GPU-accelerated variant of Tachyon is not (presently)
> >included in the standalone binary, so for the time being you cannot run
> >it except from within VMD itself. That being said, you can of course
> >run VMD in text mode for long batch mode renderings. This is in fact how
> >we use VMD to render long movies in parallel on supercomputers, using the
> >MPI-enabled versions of VMD.
> >
> >Cheers,
> > John Stone
> > vmd_at_ks.uiuc.edu
> >
> >On Mon, Apr 03, 2017 at 09:16:44AM +0000, Amit Gupta wrote:
> >>Hi,
> >>render list helped. Now i can render images using tk console command 'render TachyonLoptiXInternal filename'. However when i try getting .dat file it gives error:
> >>Info) Rendering current scene to 'abc.dat' ...
> >>ERROR) Unrecognized image file extension, writing Targa file.
> >>while :
> >>'render Tachyon filename.dat' works perfectly.
> >>Also can i not invoke OptiX rendering through shell? as in directly using /usr/local/lib/vmd/tachyon_LINUXAMD64 binary
> >>________________________________________
> >>From: owner-vmd-l_at_ks.uiuc.edu <owner-vmd-l_at_ks.uiuc.edu> on behalf of Andrea Spitaleri <andrea.spitaleri_at_iit.it>
> >>Sent: Monday, April 3, 2017 1:06:37 PM
> >>To: vmd-l_at_ks.uiuc.edu
> >>Subject: Re: vmd-l: Accessing tachyon optix from commandline and dat file generation
> >>
> >>Hi,
> >>
> >>in tk console try render list. It will give you back a list of render
> >>available methods. Have look to here too:
> >>
> >>http://www.ks.uiuc.edu/Research/vmd/mailing_list/vmd-l/26535.html
> >>
> >>best
> >>
> >>and
> >>
> >>
> >>On 03/04/2017 08:41, Amit Gupta wrote:
> >>>1. I want to get .dat file to generate images of arbitrary resolution. But in VMD (Linux) I can only see option for that in normal tachyon. i.e. TachyonL-Optix gives images directly. is there anyway to use Tachyon with GPU to generate .dat files? Using OSPray? I have seen VMD site claiming it can run on massively parallel supercomputers, is that done using only mpi?
> >>>
> >>>2. How to tell tachyon to use optix renderer for generating images using GPU from command line? i.e. what is GPU equivalent of tachyon -res xxx yyy ?
> >>>
> >>--
> >>Andrea Spitaleri PhD
> >>Computational mOdelling of NanosCalE and bioPhysical sysTems - CONCEPT Lab
> >>ISTITUTO ITALIANO DI TECNOLOGIA
> >>Via Morego 30, 16163 - Genova, Italy
> >>https://iit.it/research/lines/computational-modelling-of-nanoscale-and-biophysical-systems
> >>cell: +39 3485188790
> >>https://iit.it/andrea-spitaleri
> >>ORCID: http://orcid.org/0000-0003-3012-3557
> >>
>
> --
> Andrea Spitaleri PhD
> Computational mOdelling of NanosCalE and bioPhysical sysTems - CONCEPT Lab
> ISTITUTO ITALIANO DI TECNOLOGIA
> Via Morego 30, 16163 - Genova, Italy
> https://iit.it/research/lines/computational-modelling-of-nanoscale-and-biophysical-systems
> cell: +39 3485188790
> https://iit.it/andrea-spitaleri
> ORCID: http://orcid.org/0000-0003-3012-3557

-- 
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/