Configuring Server Environment Using *.pvx XML Files
From KitwarePublic
When running pvserver/pvdataserver or pvrenderserver on a cluster, users may want to configure some environment variables eg. DISPLAY in case of multi-headed nodes for the processes. This can be done using the PVX configuration XML file.
Contents |
Where to specify this?
- pvx file can be specified as the last command line argument for any of the server processes.
- Typically the pvx file is specified for all the executables whose environment is being changed using the pvx file. In case of data-server/render-server configuration, if you are setting up the environment for the two processes groups, then the pvx file must be passed as a command line option to both the executables: pvdataserver and pvrenderserver.
- When running in parallel the file is read on all nodes, hence must be present on all nodes.
Structure
<?xml version="1.0" ?> <pvx> <Process Type="server|dataserver|renderserver"> <!-- The only supported Type values are "server", "dataserver" or "renderserver". This controls which executable this configuration is applicable to. There can be multiple <Process /> elements in the same pvx file. ------------------------------------------------------ | Executable | Applicable Process Type | | pvserver | server, dataserver, renderserver | | pvrenderserver | server, renderserver | | pvdataserver | server, dataserver | ------------------------------------------------------ --> <Machine name="hostname" Environment="DISPLAY=m1:0" LowerLeft="-1.0 -1.0 -1.0" LowerRight="1.0 -1.0 -1.0" UpperLeft="-1.0 1.0 -1.0"> <!-- There can be multiple <Machine> elements in a <Process> element, each one identifying the configuration for a process. All attributes are optional. name="hostname" Environment: the environment for the process. LowerLeft|LowerRight|UpperLeft : CAVE configuration parameters applicable for versions 3.8 or latter only. --> </Machine> </Process> </pvx>
- Only 2 vectors ([LowerRight - LowerLef] and [UpperLeft - LowerLeft]) are needed, the third vector is computed from these 2.
Cave Rendering
Instructions
- Turn on
PARAVIEW_USE_MPIandPARAVIEW_USE_ICE_T - run the servers using the pvx file:
mpiexec -np 2 pvserver cave.pvx - start and connect a client
Notes
- See below for an example of a cave configuration file
<?xml version="1.0" ?> <pvx> <Process Type="client" /> <Process Type="server"> <!-- 2 render windows will be created on the machine Erna: the first rendering has a camera looking forward, the second rendering has a camera looking backward --> <Machine Name="Erna" Environment="DISPLAY=:0" <!-- Camera looks forward: dx = 2, dy = 2, dz = -2 Z = -2 defines the view angle --> LowerLeft="-1 -1 -2" LowerRight="1 -1 -2" UpperLeft="-1 1 -2" /> <Machine Name="Erna" Environment="DISPLAY=:0" <!-- Camera looks backward: dx = -2, dy = 2, dz = 2 Z = 2 defines the distance from the camera to the view plane --> LowerLeft="1 -1 2" LowerRight="-1 -1 2" UpperLeft="1 1 2" /> </Process> </pvx>
- See vtkCaveRenderManager::ComputeCamera for more information on how the coordinates are used to configure the cameras
- The rendering on the server is full screen by default. If you want the windows to be smaller for debugging, set the environment variable PV_ICET_WINDOW_BORDERS=1 on the client machine.