asci/paraview



Paraview:
para.view
pa-&-'vyü

kitware's (+LANL, Sandia, ARL, and ASC) parallel turnkey visualization tool. based on VTK (see vtk formats for how to create files paraview can read) currently using cvs version 1.9.0 (march/2005)



| source |

| buiding |

| versions |

| parallel |

| environment |

| failures |

| compiling v.3
on ppc mac
|

| --help |

| pv* --help |

| visit |

| links |


HOW TO BUILD
ON LINUX

	you'll need:
			cmake and ccmake (cmake.org)
			osmesa (compiled from mesa, see step 1)
			paraview source (see 2)
			a separate directory to build
			a separate directory results get installed to

	(in the process of veryfing correct names... but the main idea is:)

	1- download mesa version 5.1 from mesa3d.org
	   + gunzip it, untar it
	   + go to the src/include/GL dir, copy gl.h to mesa_gl_defines.h
	   + edit mesa_gl_defines.h
	     * exchange the references to __gl_h to __mesa_gl_defines_h (define macros)
	     * delete everything after the line "* End system-specific stuff.",
	       EXCEPT for the last "#endif   /* __mesa_gl_defines_h */
	   + edit osmesa.h and add "#include <GL/mesa_gl_defines.h>"
	     right after the GL/gl.h include line
	   + in the src dir do a "make linux-osmesa32"
	2- download latest version of paraview
	   + do: cvs -d :pserver:anoncvs@www.paraview.org:/cvsroot/ParaView login
	     (respond with empty password)
	   + do: cvs -d :pserver:anoncvs@www.paraview.org:/cvsroot/ParaView co ParaView
        3- go to the space where things will compile (different directory)
	   i.e. cd ../build.paraview-cvs.osmesa.c++
	   + from your empty dir space do: cmake -i ../Paraview
	     (pointing where the checked out code is)
	     * respond yes to "Advanced options"
	     * go slowly: check yes to the defaults except for the following:
	       BUILD_VER_OPTION: type "Development" (not an available option)
	       VTK_USE_PATENTED: choose yes
	       BUILD_DIR_PATH:   choose were you want paraview bin/libs to go
				 (not the current dir, not the paraview cvs dir)
	       VTK_USE_MPI:      choose yes
               VTK_USE_OSMESA:   choose yes
	     if you miss something, that is ok
	  + type now ccmake .
	    * press 't' to see all options
	    * edit options as needed
	      NOTICE: sometimes it wants a path, to the includes, while
	              sometimes it wants a path and the lib name all together
	    * press 'c' to configure
	    * press 'g' to generate
	    * close ccmake
          + you might want to do 'screen' so you can detatch, and go home
          + ( make && make install ) >& make.paraview.log &
          + screen -d
        4- wait for it to finish!
	  i.e. (tail make.paraview.log; ..(until done or error).. screen -r; exit; )
	       (1-3 hours)


ON MAC OS X
  gunzip/untar ball
  edit Servers/ServerManager/vtkSMRenderModuleProxy.cxx
	// quote out line 1105 // this->GetRenderWindow()->SetOffScreenRendering(1);
	// quote out line 1122 // this->GetRenderWindow()->SetOffScreenRendering(0);
  make one dir for compile
  make one dir for install
  move into compile dir
  cmake -i ../Paraview
    set install prefix to full path for install dir
  ccmake .
    [t] toggle advanced options:
	http://www.paraview.org/Wiki/ParaView:FAQ#How_do_I_compile_ParaView_for_Mac_OS_X.3F
	BUILD_SHARED_LIBS: ON
	CMAKE_EXE_LINKER_FLAGS: -Wl,-search_paths_first
	CMAKE_SHARED_LINKER_FLAGS: -Wl,-search_paths_first
	OPENGL_INCLUDE_DIR: /usr/X11R6/include
	OPENGL_gl_LIBRARY: /System/Library/Frameworks/OpenGL.framework
	OPENGL_glu_LIBRARY: /System/Library/Frameworks/AGL.framework
	VTK_USE_CARBON: OFF
	VTK_USE_COCOA: OFF
	VTK_USE_RPATH: OFF
	VTK_USE_X: ON
	X11_X11_INCLUDE_PATH: /usr/include
	X11_X11_LIB: /usr/X11R6/lib/libX11.dylib
	X11_Xext_LIB: /usr/X11R6/lib/libXext.dylib
    [c]
    [g]
  make
  make install

 
LOCAL BUILDS

unstable
1.9.0-GL        cvs compile (no rpath, GL, mpich.1.2.5)
1.9.0-Mesa      cvs compile (no rpath, MesaGL 6.2.1 only, mpich.1.2.5)

stable
1.8.5-GL	release compile (rpath, Mesa 6.2.1 only, mpich.1.2.5)
1.8.5-Mesa	release compile (rpath, GL, Mesa 6.2.1, mpich.1.2.5)

**older**
1.2             release binary
1.4.2           release compile (GL, no MPI)
1.5.0-GL        cvs compile (no rpath, GL only, mpich.1.2.5)
1.5.0-MESA      cvs compile (no rpath, MesaGL only, mpich.1.2.5)
1.5.0-GLandMESA cvs compile (no rpath, GL with mangledMesa, mpich.1.2.5) <not working>
1.5.0-GLandOSM  cvs compile (no rpath, GL with OSMesa, mpich.1.2.5)

 
SOURCE CODE SNAPSHOTS
[in src dir]
cvs -d :pserver:anoncvs@www.paraview.org:/cvsroot/ParaView login

cvs -d :pserver:anoncvs@www.paraview.org:/cvsroot/ParaView co ParaView


 
SETTING UP YOUR ENVIRONMENT
# to my .tcshrc i added

set PARAVIEW_HOME  = /home/slombey/apps/paraview/1.9.0-Mesa
set MESA_HOME      = /home/slombey/apps/mesa.2.6.1

setenv LD_LIBRARY_PATH $PARAVIEW_HOME/tcl8.4:$LD_LIBRARY_PATH
setenv LD_LIBRARY_PATH $PARAVIEW_HOME/tk8.4:$LD_LIBRARY_PATH
setenv LD_LIBRARY_PATH $PARAVIEW_HOME/vtk:$LD_LIBRARY_PATH
setenv LD_LIBRARY_PATH $PARAVIEW_HOME/lib:$LD_LIBRARY_PATH
setenv LD_LIBRARY_PATH $MESA_HOME/lib:$LD_LIBRARY_PATH


# then i created a file ~/.ssh/config with

Host *
ForwardX11 yes

# finally i did mpirun paraview from ~/apps/paraview/1.5.0-MESA/bin/

 
#
# *** RUNNING IN PARALLEL ***
#     ------- -- --------    

# in the old deprecated mpi run, it used to look like:
mpirun -np 4 -machinefile ~/nodes/machinefiles/lastNodes \
       /home/slombey/apps/paraview/1.5.0-MESA/bin/paraview \
        --use-offscreen-rendering

# but nowadays, paraview --help mentions
# and xml pvx file for generic configurations. to learn about this file
# you need the book! (75$). however, with manual startup, you can see
# each components configurations under pv* --help

# so for now... from a cmake bug report, it seems it may be something like
# (td is for tiled displays)

mpirun -np 1 -H ib004 pvrenderserver -m=rshostfile -tdx=1 -tdy=1
mpirun -np 1 -H ib000 pvdataserver -m=dshostfile
mpirun -np 1 -H ib031 pvclient -r2d -crs -dsh=ib000 -rsh=ib004

# and/or 
# # mpirun -np 1 -H ib004 pvserver -tdx=1 -tdy=1
# # mpirun -np 1 -H ib031 pvclient --server-host=ib004

mpirun -np 1 -H a080 pvserver
pvclient --server-host=a080

# or for multiple servers simply

mympirun -np 4 -machinefile some_nodes \
        ${PARAVIE_HOME}/paraview --use-offscreen-rendering *

notice that the --use-offscreen-rendering works for v.1.8.5, but not 1.9.0


npopeningopen data
40k (2vars)
open data
1.2M (6vars)
open data
5.0M (6vars)
works
1 local paraview15s10s25s-yes
1 local pvserver15s10s20s-yes
1 remote pvserver5s
10s
5s50s-yes
4 remote pvserver10s10s-20s!yes*
* requires the right environment setup. under asap that meand modifying mpirun so that the RSHCOMMAND does "ssh -Y -A" instead of "ssh -x"
components

client:= gui front end (single process)

data server:= readers and filters (parallelizable)

render server:= renders the triangles (parallelizable, less or equal nodes than data servers)

tip: pvserver is equivalent to 'paraview --server'

standalone

./paraview &


distributed standalone

# on local machine
mpirun -machinefile back_free_nodes -np 3 ./paraview &
	# machine 0: client, data server, render server
	# machine 1:         data server, render server
	# machine 2:         data server, render server


client/server

# on some server host
./pvserver &

# on local machine
./paraview --client --host=pverserver_host


client/server/renderserver

# on some server host
./pvserver &

# on some render server host (you can use -rs)
./pvserver --render-server &

# on local machine
./paraview --client-render-server --host=pvserver_host
           --render-server-host=pvrenderserver_host


distributed client/server/renderserver

# on some server host
mpirun -np 6 -machinefile back_free_nodes  ./pvserver &

# on some render server host (you can use -rs)
./pvserver --render-server &
mpirun -np 6 -machinefile more_back_free_nodes \
       ./pvserver --render-server --machines=pvserver_back_free_nodes & 

# on local machine
./paraview --client-render-server --host=pvserver_host_head \
           --render-server-host=pvrenderserver_host_head

sample machine file
node 0 a090
node 1 a091
node 2 a092

FAILURES RECORDS (see above for working modes) ---------------- DATA SERVER TESTS ----------------- TEST 1 a083: source setup-paraview-oglandosm rehash paraview --server asap: source setup-paraview-oglandosm rehash paraview --client --host=a083 RESULTS: + data being read at server ? rendering may be mesa? not complaining about display + DISPLAY is not set. --help does not respond TEST 2 a083: source setup-paraview-oglandosm --use-offscreen-rendering rehash paraview --server --use-offscreen-rendering asap: source setup-paraview-oglandosm asap: source setup-paraview-oglandosm rehash paraview --client --host=a083 RESULTS: + rendering is slowish (off screen rendering?) TEST 3 asap: paraview RESULTS: - same flikering as before - may not be using ogl at all TEST 4 a083: setenv DISPLAY /dev/null source setup-paraview-oglandosm --use-offscreen-rendering rehash paraview --server --use-offscreen-rendering sap: source setup-paraview-oglandosm rehash paraview --client --host=a083 RESULTS: - same as previous rendering speeds - may be doing slowly, and local rendering ------------------- RENDER SERVER TESTS ------------------- TEST 5 a083: paraview --render-server --use-offscreen-rendering a083: paraview --server --use-offscreen-rendering asap: paraview --client-render-server --host=a083 --render-server-host=a083 RESULTS: - same as before! TEST 6 a083: paraview --render-server --use-offscreen-rendering a083: paraview --server --use-offscreen-rendering asap: paraview --use-offscreen-rendering --client-render-server \ --host=a083 --render-server-host=a083 RESULTS: - same as before! - suspended render server. nothing happened. TEST 7 paraview --render-server --use-software-rendering paraview --server --use-offscreen-rendering paraview --client-render-server --host=a083 --render-server-host=a084 RESULTS: - "ERROR: [...] Can not connect to a084 on port 22221" TEST 8 paraview --render-server --use-satellite-rendering paraview --server --use-offscreen-rendering paraview --client-render-server --host=a083 --render-server-host=a084 RESULTS: - "ERROR: [...] Can not connect to a084 on port 22221" TEST 9 setenv LD_LIBARY_PATH /home/slombey/apps/mesa/lib:$LD_LIBARY_PATH ldd /home/slombey/apps/paraview/1.5.0-GLandOSM/bin/paraview RESULTS: libGL.so.1 => /home/slombey/apps/mesa/lib/libGL.so.1 (0x40239000) libOSMesa.so.4 => /usr/X11R6/lib/libOSMesa.so.4 (0x40492000) its picking up the WRONG GL and the WRONG OSMESA?!?!
|Additional Info|




| Paraview on Teragrid |

| Pareview book on Amazon |

| Paraview official page |

| Paraview book at Barnes&Noble |

| Paraview Guide @Yahoo!shopping |

  - official Kitware link -



|good resource|

Workshop on Parallel
Visualization Architectures
@ Vis04


| designing clusters |

| visit |

| paraview |



page and failures by santiago v lombeyda, 2004-2006 © cacr-caltech