Module: Parallel Movie Maker ()
This script module can be used to create an animation consisting of a series of 2D images in TIFF, JPEG, or PNG format, generated in parallel by instances of running on several 'slave' machines (typically a cluster of PCs with graphics board). This module - running on the 'master' machine - can start or kill automatically the slave instances. This requires that the user can connect to slave systems via ssh without needing a password (you may also customize a copy of this script module with your preferred remote command). This module also communicates with instances by using commands
app listen, app send.
WARNING: Using this module can create security holes, as it makes listen commands sent to socked ports. Do not use this unless behind a firewall and if you know what you are doing.
This modules requires to provide the filename of an animation script, which can be obtained for instance by saving a project containing a Time module. The first module with a time port that as no upstream connection with another time module will be used to control the animation. The animation script can be then loaded on every slave. When starting the animation, the image sequence is split across the slaves: the time value will be set iteratively on each slave (depending on interleave policy), the connected modules are fired so that other objects can adjust themselves, and a snapshot is saved.
As the input files and output directory can be accessed in parallel, it is recommended for best performance to have these files located either on a fast shared storage or on a local storage of each slave system.
Slave hostnames
List of slave hostnames.
Slaves
- restart: Starts or restarts instances (kill and restart).
- kill: Kills instances started by this module.
- Load or reload script: makes instance load the job script start script: start animation.
Job script
Animation script filename.
Output images
The name of the resulting image file(s). In order to write a series of TIFF, JPEG, or PNG files, specify a filename with the suffix .tif, .jpg, or .png. The filename should contain a series of hash marks ####. The hash marks will be replaced by the actual frame number. You can also choose the output format via the file dialog which pops up when the Browse button is pressed. If no filename is specified, no movie can be created.
Time steps
The start step and the number of steps (number of saved images).
Resolution
This is the requested resolution for the generated images (see below offscreen option). It initialized to the size of the viewer when this script module is created or reloaded.
Slaves display
This is passed as DISPLAY environment variable to the slave instances of . It can be used for instance for checking what is actually displayed on the slaves, including the messages output to the slave's console.
Options
- offscreen: If selected, offscreen snapshots are generated using the specified resolution (offscreen rendering). Otherwise, direct snapshots of the viewer are saved. See viewer command snapshot. The viewer window will be tentatively resized to required resolution, however this may fail if the viewer is defined in layout preferences as a top level window. Then the default resolution of the viewer will be used. Notice also that offscreen rendering may be different from viewer rendering as different graphics capabilities or limitations or driver issues can be involved.
- bg image: Display image sequence as background image (see viewer command setBackgroundImage). This may be used for control.
- interleave: When selected, the image sequence is interleaved across slaves so that each slave generate an image closest to each other, for instance 2 slaves will generate in turn images 1,3,5... and 2,4,6... Otherwise, each slave generates a contiguous sequence of images (1,2,3... - n,n+1,n+2). In some case, this option can impact performance. Interleave mode can also limit latency for control display with the background image option.