These are my personal notes and a work in progress. Suggestions, comments and questions are more than welcome.
graphics cluster / power wall / display wall / shinny thing
A thirteen node cluster with one head/login node and twelve render/display nodes. The cluster will implement parallel computation and graphics algorithms with a projected, 16x9, 10 megapixel desktop.
KVM etc
Debian GNU/Linux has three branches or releases: stable, testing, and unstable. I chose testing because this will be a production system, but still need very recent development tools. The testing branch has gone through quality checks and is the next stable release candidate, making it unlikely to break during regular updates.
Debian/GNU Linux net install CD images:
burn the CD image:
# cdrecord -dao -overburn dev=0,0,0 speed=8 driveropts=burnfree -vvvv sarge-i386-netinst.iso
Installing Debian/GNU Linux on head node: Dell Precision 650 Workstation with PNY NVIDIA Quadro4 900 XGL video card.
Hit F2 at post to config BIOS "Boot Sequence" with "IDE CD-ROM Device" first.
Insert the netinst CD-ROM into first drive and boot.
At the "boot:" prompt, hit enter.
Choose English, and the installer will start to detect harware.
DHCP auto-config of network may will fail with an error, but that's ok. Continue and select "Configure a network using static addressing", entering external ip and hostname info.
Now select a local Debian mirror, eg. carroll.aset.psu.edu, with no proxy, selecting the Sarge/testing distribution for install.
Partion the harddrive as one large partition, deleting all old partitions. You may want to select the "Desktop" software config.
Now install the boot manager to the mbr, remove the CD-ROM and reboot. The system will come up with the base-config setup. Select your timezone, enable and create shadow passwords.
Select "Dialog" as the Debconf interface and "high" for prioritized questions. Defaults should be fine for all prompted questions except the Xserver. Select the "nv" X server for our PNY NVIDIA Quadro cards. Autodetect mouse and monitor, select "Simple" monitor configuration and pick "15 inches". Packages will now unpack and install.
It is desired to have the latest kernel for security and functionality, to compile in patches and modules.
Please note that installing a new kernel can leave a computer unbootable unless you generate an initrd image that loads appropriate SCSI and file system drivers at boot. The Dell Precision 650 has a Symbios SCSI controller that uses the mptscsih & mptbase kernel modules.
This method uses Debian's kernel-package system:
# apt-get install kernel-package initrd-tools tcl8.4-dev tk8.4-dev libncurses5-dev kernel-source-2.4.27 # cd /usr/src # tar xjvf kernel-source-2.4.27.tar.bz2 # ln -s kernel-source-2.4.27 linux # cd linux # cp /boot/config-2.4.27-1-386 .config # make oldconfig # make menuconfig # and tweak options like smp # INITRD_OK=1 make-kpkg --revision=mothership.1.0 --initrd kernel_image # make-kpkg kernel_headers # dpkg -i /usr/src/kernel-image-2.4.27_mothership.1.0_i386.deb # dpkg -i /usr/src/kernel-headers-2.4.27_mothership.1.0_i386.deb # cd / # ln -s boot/vmlinuz-2.4.27-1-386 vmlinuz.orig # ln -s boot/initrd.img-2.4.27-1-386 initrd.img.orig # reboot
When you reboot, select the new kernel from the GRUB boot menu. If the system boots well, then you can make it the default by editing the grub menu, /boot/grub/menu.lst, and changing "default" to the new kernel entry.
after reboot rebuild video driver:
# cd /usr/src/ # wget http://download.nvidia.com/XFree86/Linux-x86/1.0-6629/NVIDIA-Linux-x86-1.0-6629-pkg1.run # sh ./NVIDIA-Linux-x86-1.0-6629-pkg1.run -a -n --force-tls=classic --kernel-source-path=/usr/src/linux/
Debian packages of the NVIDIA drivers are also available:
# apt-cache search nvidia # apt-cache policy nvidia-kernel-source # apt-get install nvidia-kernel-source nvidia-kernel-common # cd /usr/src # tar xzvf nvidia-kernel-source.tar.gz # cd linux # make-kpkg modules_image # cd .. # dpkg -i nvidia-kernel-blah.deb # apt-get install nvidia-glx nvidia-glx-dev
Edit /etc/X11/XF86Config-4 changing the Driver nv or vesa to "nvidia" and enabling OpenGL quad-buffered stereo:
<snip>
Section "Device"
Identifier "NVIDIA Corporation Quadro4 900XGL"
#Driver "nv"
Driver "nvidia"
Option "Stereo" "1" # DDC monitor line
#Option "Stereo" "3" # mini DIN
EndSection
<snip>
startx and run glxinfo at a console to check the glx vendor string is
NVIDIA for hardware excelerated rendering, not mesa software rendering.
Set the system and hardware clock:
# apt-get install ntpdate # ntpdate -u -b -s 128.118.25.3 128.182.58.100 128.2.191.71 ; hwclock --systohc
# apt-get update # apt-get install fai fai-kernels debmirror mknbi dhcp3-server \ > tftpd-hpa tftp-hpa rsh-redone-server rsync debian-keyring \ > nfs-kernel-server syslinux dsh # export GNUPGHOME=~/.gnupg # gpg --keyserver keyring.debian.org --recv-keys 1DB114E0 # mkdir /debmirror # debmirror -v /debmirror/debian --host=carroll.aset.psu.edu \ > --root=:debian --dist=sarge,sarge-proposed-updates --getcontents \ > --nosource --arch=i386 --ignore=installer-i386/ --method=rsync \ > --rsync-options="-aIL --partial --port=1025 -q" # debmirror -v /debmirror/debian --host=ftp.us.debian.org \ > --root=/debian --dist=sarge,sarge-proposed-updates --passive \ > --getcontents --nosource --arch=i386 --ignore=installer-i386/ \ > --ignore-release-gpg # rsync --delete -av --port=1025 \ > carroll.aset.psu.edu::debian/dists/sarge/main/installer-i386 \ > /debmirror/debian/dists/sarge/main/
edit /etc/hosts
127.0.0.1 localhost.localdomain localhost 128.118.146.59 mothership.its.psu.edu mothership 172.28.70.33 mothership.viz.its.psu.edu mother 172.28.70.34 fathership.viz.its.psu.edu fathership father 172.28.70.35 switch.viz.its.psu.edu switch 172.28.70.36 cr00.viz.its.psu.edu cr00 laptop 172.28.70.37 cr01.viz.its.psu.edu cr01 172.28.70.38 cr02.viz.its.psu.edu cr02 172.28.70.39 cr03.viz.its.psu.edu cr03 172.28.70.40 cr04.viz.its.psu.edu cr04 172.28.70.41 cr05.viz.its.psu.edu cr05 172.28.70.42 cr06.viz.its.psu.edu cr06 172.28.70.43 cr07.viz.its.psu.edu cr07 172.28.70.44 cr08.viz.its.psu.edu cr08 172.28.70.45 cr09.viz.its.psu.edu cr09 172.28.70.46 cr10.viz.its.psu.edu cr10 172.28.70.47 cr11.viz.its.psu.edu cr11 172.28.70.48 cr12.viz.its.psu.edu cr12
edit /etc/exports to share the repository to clients
/debmirror mothership(ro,async) cr01(ro,async) cr02(ro,async) *.viz.its.psu.edu(ro,async) /usr/lib/fai/nfsroot *.viz.its.psu.edu(async,ro,no_root_squash) /usr/local/share/fai *.viz.its.psu.edu(async,ro)
edit /etc/fai/sources.list to point to local nfs shared repository
deb file:/debmirror/debian sarge main contrib non-free #deb file:/debmirror/debian sarge-proposed-updates main contrib non-free
edit /etc/fai/fai.conf
# $Id: fai.conf,v 1.79 2004/07/08 12:33:40 lange Exp $ # /etc/fai/fai.conf -- configuration for FAI (Fully Automatic Installation) # installserver must be the name seen by the install clients installserver=mothership # the name of the Debian mirror mirrorhost=$installserver # Don't use the variable FAI_SOURCES_LIST any more. # Instead use /etc/fai/sources.list # Access to Debian mirror via NFS mounted directory # If FAI_DEBMIRROR is defined, install clients mount it to $MNTPOINT FAI_DEBMIRROR=$mirrorhost:/debmirror # if your install server has multiple ethernet device, use this one to # determine its hostname. Default eth0. Set to the interface to which # the Beowulf clients are connected. SERVERINTERFACE=eth1 # LOGUSER: an account on the install server which saves all log-files # and which can change the kernel that is booted via # network. Configure .rhosts for this account and PAM, so that root can # log in from all install clients without password. This account # should have write permissions for /boot/fai. For example, you can use # write permissions for the group linuxadm. chgrp linuxadm # /boot/fai;chmod g+w /boot/fai. If the variable is undefined, this # feature is disabled LOGUSER=fai # use ssh or rsh for copying log files to user fai and for changing # tftp symbolic link FAI_REMOTESH=rsh FAI_REMOTECP=rcp # set protocol type for saving logs, default is rcp/scp. Set to ftp if desired. FAI_LOGPROTO= # Name of log-server. If undefined, the install server will be used. LOGSERVER= # writable directory on remote server, when using FTP protocol LOGREMOTEDIR="upload" # password for login to log server, when using FTP protocol LOGPASSWD= # the configuration space on the install server FAI_CONFIGDIR=/usr/local/share/fai # the location of the config space, as seen by the install client # it can also be overwritten with T170 via BOOTP FAI_LOCATION=$installserver:$FAI_CONFIGDIR # the following variables are read only for most users # mount point where the mirror will be mounted MNTPOINT=/mnt2 # directory on the install server where the nfsroot for FAI is # created, approx size: 160MB, also defined in bootptab or dhcp.conf NFSROOT=/usr/lib/fai/nfsroot # the local configuration directory on the install client FAI=/fai # the type of operating system (linux, sunos) OS_TYPE=`uname -s | tr /A-Z/ /a-z/`
edit /etc/fai/make-fai-nfsroot.conf
# these variables are only used by make-fai-nfsroot(8) # here you can use also variables defined in fai.conf (like $mirrorhost) # Add a line for mirrorhost and installserver when DNS is not available # on the clients. This line(s) will be added to $nfsroot/etc/hosts. NFSROOT_ETC_HOSTS="172.28.70.33 $mirrorhost" #FAI_DEBOOTSTRAP="sarge http://$mirrorhost/debmirror/debian" FAI_DEBOOTSTRAP="sarge file:/mnt2/debian" # your extra packages which will be installed into the nfsroot, space separated NFSROOT_PACKAGES="expect" # this local repository holds your local packages that can be installed to # the install clients. Don't forget to create the index file Packages.gz! FAI_LOCAL_REPOSITORY="deb file:/fai/files packages/" # the encrypted root password on all install clients during # installation process; used when log in via ssh; pw is: fai FAI_ROOTPW="56hNVqht51tzc" # this kernel package will be used when booting the install clients KERNELPACKAGE=/usr/lib/fai/kernel/kernel-image-2.4.27-fai_1_i386.deb # location of a identity.pub file; this user can log to the install # clients in as root without a password; only useful with FAI_FLAGS="sshd" #SSH_IDENTITY=/home/admin/.ssh/identity.pub # which of DHCP and/or BOOTP should the server create setups for. # Default are to create setups for both FAI_BOOT="dhcp" # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # following lines should be read only for you when you are using fai on i386 FAI_DEBOOTSTRAP_OPTS="--arch i386 --exclude=pcmcia-cs,ppp,pppconfig,pppoe,pppoeconf,dhcp-client,exim4,exim4-base,exim4-config,exim4-d aemon-light,mailx,at,fdutils,info,modconf,libident,logrotate,exim" nfssize="250MB" # size of the nfsroot. Only informational purpose # FAI needs these packages that are install into the nfsroot packages="module-init-tools dhcp3-client ssh file rdate hwinfo portmap bootpc rsync wget rsh-client less dump reiserfsprogs usbutils dpkg-dev ext2resize hdparm smartmontools parted raidtools2 lvm2 dnsutils ntpdate dosfstools cfengine cvs jove xfsprogs xfsdump sysutils dialog discover mdetect libnet-perl netcat libapt-pkg-perl"
edit /etc/fai/sources.list
# nfs access (mirror created by mkdebmirror) # don't forget to set FAI_DEBMIRROR and MNTPOINT in fai.conf deb file:/mnt2/debian sarge main contrib non-free
# /etc/init.d/nfs-kernel-server reload # showmount -e localhost # mount localhost:/debmirror /mnt2 # fai-setup
many messages and warnings follow, but two required messages:
make-fai-nfsroot finished. FAI setup finished.
set up netbooting
# fai-chboot -IFv cr01 cr02 cr03 cr04 cr05 cr06 cr07 cr08 cr09 cr10 cr11 cr12 # /etc/init.d/inetd restart
edit /etc/inetd.conf
<snip> tftp dgram udp wait root /usr/sbin/in.tftpd in.tftpd -s /boot/fai
edit /etc/dhcp3/dhcpd.conf and add static entries based on client MACs. example in /usr/share/doc/fai/examples/etc/dhcpd.conf.
# /etc/init.d/dhcp3-server restart
if your bios doesn't support boot from network and you need a boot disk to get your network card to do pxe, download a disk image from http://rom-o-matic.net/ and put it on a floppy:
# mformat a: # cat eb-5.3.12-e1000.zdsk >/dev/fd0
or to make an fai boot floppy:
# make-fai-bootfloppy -f floppy.img # dd if=floppy.img of=/dev/fd0
configure client fai install options
# cp -a /usr/share/doc/fai/examples/simple/* /usr/local/share/fai/
insert config changes here
simple repository including custom kernel
# cd /usr/local/share/fai/files # cp /usr/src/kernel-image-2.4.27_mothership.1.0_i386.deb packages # cp /usr/src/nvidia-kernel-2.4.27_1.0.6629+1-1+mothership.1.0_i386.deb packages # dpkg-scanpackages packages /dev/null | gzip -9 > packages/Packages.gz
to monitor installs:
# faimond
No one will actually log in as the chromium user. It is merely a system account to start open X displays and launch clustered rendering applications.
create chromium user on head node # adduser chromium
create global share on head node:
# echo "/usr/global .viz.its.psu.edu(ro,async)" >> /etc/exports # echo "/home .viz.its.psu.edu(rw,sync)" >> /etc/exports # mkdir /usr/global # /etc/init.d/nfs-kernel-server reload
~chromium/.xsession:
if [ `hostname` != "mothership" ]; then
xset s off
xset -dpms
xloadimage -fullscreen -onroot align.tif
xhost +local:
xhost +localhost
xhost +mothership
unclutter -root -idle 1
xterm
fi
~chromium/.bash_profile:
<snip>
if [ -f ~/.bashrc ]; then
source ~/.bashrc
fi
if [ "$TERM" = "linux" -a `tty` = "/dev/tty1" ]; then
export XAUTHORITY=$HOME/.Xauthority-`hostname`
/usr/bin/X11/startx ; exit
fi
~chromium/.bashrc:
<snip> export PATH=/usr/global/bin:/usr/global/chromium/cr/bin/Linux:$PATH export LD_LIBRARY_PATH=/usr/global/chromium/cr/lib/Linux:/usr/global/lib:/usr/global/lib/dbg:$LD_LIBRARY_PATH export CRMOTHERSHIP=mothership if [ "$DISPLAY" = "localhost:1.0" ]; then export LD_PRELOAD=/usr/global/chromium/cr/lib/Linux/libcrfaker.so fi if [ `hostname` != "mothership" ]; then export DISPLAY=localhost:0.0 fi
enable network connections to X servers
/etc/X11/xinit/xserverrc:
#!/bin/sh #exec /usr/bin/X11/X -dpi 100 -nolisten tcp exec /usr/bin/X11/X -dpi 100
/etc/X11/gdm/gdm.conf & /etc/X11/gdm/factory-gdm.conf:
<snip> #DisallowTCP=true DisallowTCP=false <snip>
on all nodes:
# apt-get install dsh rdist rsh-redone-client rsh-redone-server
ssh keys with no passphrase:
# ssh-keygen -t rsa # cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
/etc/dsh/machines.list for dsh on head node:
cr01 cr02 cr03 cr04 cr05 cr06 cr07 cr08 cr09 cr10 cr11 cr12
sync passwords with rdist on head node
/etc/Distfile:
NODES = ( osg2 osg3 osg4 )
ETCFILES = ( /etc/passwd /etc/group /etc/shadow /etc/gshadow )
${ETCFILES} -> ${NODES}
install;
/etc/cron.hourly/rdist:
#!/bin/sh /usr/bin/rdist -P /usr/bin/ssh -f /etc/Distfile >/dev/null 2>&1
edit hosts.allow and hosts.deny
logging to head node from render nodes /etc/syslog.conf:
<snip> *.notice @mothership
Add the '-r' remote option on head node in /etc/init.d/sysklogd
# /etc/init.d/sysklogd restart
patched kernel
iptables firewall
# apt-get install ippl firestarter/fiaif/shorewall
distribution updates
facility card access
cfengine? ganglia? GFS? paraview data
wireless Sidewinder joystick
# apt-get install hotplug # modprobe joydev
plug in joystick to usb ports on back of machine
# cat /dev/input/js0 #and move the joystick to test for device input
Stream a video source to multiple displays via multicast with videolan.
you will first need to route multicast to the proper network interface
# multicast to internal net fix route add -net 224.0.0.0 netmask 240.0.0.0 dev eth1
vlc-wall.sh
#!/bin/sh
# cleanup
killall -9 vlc
dsh -a -c -r ssh killall -9 vlc
## play via nfs w/ no sound
#dsh -a -c -r ssh 'DISPLAY=:0 vlc --vout xvideo --aspect-ratio "16:9" --filter wall --wall-cols 4 --wall-rows 3 --wall-active `cat /etc/tileno` --intf dummy --fullscreen' $@
# play via multicast
vlc -vvv --sout '#standard{access=udp,mux=ts,url=239.239.242.242,sap,name="Display Wall Video Stream"}' --ttl 1 --loop --repeat $@ &
#vlc -vvv --sout '#transcode{vcodec=mp4v,acodec=mpga,vb=750,ab=128,deinterlace,deinterlace-mode=discard}:std{access=udp,mux=ts,url=239.239.242.242}' --ttl 1 $@ &
vlc --novideo --intf dummy --vout dummy udp://@239.239.242.242 &
dsh -a -c -r ssh 'DISPLAY=:0 vlc --noaudio --vout xvideo --aspect-ratio "16:9" --filter wall --wall-cols 4 --wall-rows 3 --wall-active `cat /etc/tileno` --intf dummy --fullscreen' udp://@239.239.242.242
http://dmx.sourceforge.net/ http://sourceforge.net/projects/dmx/
dmx-1-2-20040604
# apt-get install libxaw7-dev xaw3dg-dev libpam0g-dev xfs # cd /usr/global/dmx # cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/dmx login # cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/dmx co -r dmx-1-2-20040604 dmx # mv dmx dmx-1-2-20040604 ; ln -s dmx-1-2-20040604 dmx # cd dmx # cp doc/host.def-optimized xc/config/cf/host.def # emacs xc/config/cf/host.def # cd xc # make World 2>&1 | tee build.log
/usr/global/dmx/dmx/xc/programs/Xserver/LIONEYES.cfg:
virtual lioneyes 4098x2304 {
display cr01:0 1024x768;
display cr02:0 1024x768 @1025x0;
display cr03:0 1024x768 @2048x0;
display cr04:0 1024x768 @3072x0;
display cr05:0 1024x768 @0x768;
display cr06:0 1024x768 @1024x768;
display cr07:0 1024x768 @2048x768;
display cr08:0 1024x768 @3072x768;
display cr09:0 1024x768 @0x1536;
display cr10:0 1024x768 @1024x1536;
display cr11:0 1024x768 @2048x1536;
display cr12:0 1024x768 @3072x1536;
}
/usr/local/bin/dmx.sh:
#!/bin/sh cd /usr/global/dmx/dmx/xc/programs/Xserver ./Xdmx :1 +xinerama -configfile LIONEYES.cfg -input :0 -ac -br -fontpath unix/:7100 & export DISPLAY=localhost:1 ; fluxbox &
cleanup.sh
dsh -a -r ssh 'rm -f /var/log/autologin; killall -9 XFree86 mplayer crserver rungetty startx >/dev/null 2>&1'
ps ax | egrep "/usr/bin/X11/X|/usr/X11R6/bin/X" | awk '{print $1}' | xargs kill -9
/etc/skel/.bashrc
<snip> export PATH=/usr/global/bin:/usr/global/chromium/cr/bin/Linux:/usr/lib/xscreensaver:$PATH export LD_LIBRARY_PATH=/usr/global/chromium/cr/lib/Linux:/usr/global/lib:$LD_LIBRARY_PATH export CRMOTHERSHIP=mothership if [ "$DISPLAY" = "localhost:1.0" ]; then export LD_PRELOAD=/usr/global/chromium/cr/lib/Linux/libcrfaker.so fi if [ `hostname` != "mothership" ]; then export DISPLAY=localhost:0.0 fi alias cr='LD_PRELOAD=/usr/global/chromium/cr/lib/Linux/libcrfaker.so'
/etc/skel/.bash_profile
if [ -f ~/.bashrc ]; then
source ~/.bashrc
fi
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
if [ "$TERM" = "xterm" ]; then
export WHOIAM=`whoami`
PROMPT_COMMAND='echo -ne "\033]0;${WHOIAM}@${HOSTNAME%%.*}:${PWD/$HOME/~}\007"'
fi
export LESSOPEN="| /usr/bin/lesspipe %s";
export LESSCLOSE="/usr/bin/lesspipe %s %s";
if [ ! -f ~/.ssh/authorized_keys ]; then
echo
echo " -= Welcome to the LionEyes Display Wall =-"
echo
echo "This is your first time logging in, so we will now generate some"
echo "ssh keys for cluster access."
echo
#mkdir ~/.ssh
ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa
cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
echo
echo "key generation complete..."
echo
echo "Please email the Vizgroup with any and all questions or problems."
echo
fi
http://chromium.sourceforge.net/ http://sourceforge.net/projects/chromium/
cr-1.7 w/ DMX integration
http://www.cs.virginia.edu/~humper/chromium_documentation/dmx.html
# apt-get install libjpeg62-dev zlib1g-dev # cd /usr/global/chomium # cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/chromium login # cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/chromium co cr # cp /usr/global/dmx/dmx/xc/include/extensions/dmxext.h /usr/X11R6/include/X11/extensions/ # cp /usr/global/dmx/dmx/xc/exports/lib/libdmx.a /usr/X11R6/lib/ # mv cr cr-1.7 ; ln -s cr-1.7 cr # cd cr # emacs options.mk # and set USE_DMX=1 # rm -rf built ; make clean # make 2>&1 | tee built.log
gcc & g++ compiler optimization for Intel Pentium 4 Xeon processors (RELEASE FLAGS):
-O3 -DNDEBUG -fno-strict-aliasing -fomit-frame-pointer -fexpensive-optimizations -falign-functions=4 -funroll-loops -malign-double -fprefetch-loop-arrays -march=pentium4 -mcpu=pentium4 -msse2 -mfpmath=sse
/etc/skel/.crsite:
{
"mural_size" : (4, 3), # (cols, rows)
"screen_size" : (1024, 768), # in pixels
"tile_size" : (256, 256), # for lightning-2 (in pixels)
"frontend_hosts" : ["localhost"],
"cluster_hosts" : ["cr01", "cr02", "cr03", "cr04", "cr05", "cr06", "cr07", "cr08", "cr09", "cr10", "cr11", "cr12"],
"cluster_pattern" : ("cr#", 1)
}
/etc/skel/.crconfigs:
* /usr/global/chromium/cr/mothership/configs/LIONEYES-autodmx.conf %m %p
/usr/global/chromium/cr/mothership/configs/LIONEYES-autodmx.conf:
insert
mpich-1.2.6
http://www-unix.mcs.anl.gov/mpi/mpich/
# tar xjvf mpich-1.2.6.tar.bz2 # cd mpich-1.2.6 # ./configure -prefix=/usr/global/mpich-1.2.6 --enable-sharedlib # make # make install
vtk-4.4
http://public.kitware.com/VTK/
# apt-get install cmake libexpat1-dev libjpeg62-dev libpng3-dev libtiff4-dev zlib1g-dev python-dev # tar xzvf VTK-4.4-LatestRelease.tar.gz # cd VTK # ccmake . # make # make install
paraview-1.8.3
# tar xzvf paraview-1.8.3.tar.gz # mkdir paraview-1.8.3-linux ; cd paraview-1.8.3-linux # ccmake ../paraview-1.8.3 # make && make install
# apt-get install dx dx-doc dx-dev dxsamples
Vijay Agarwala, Gavin Burris, Jack Gundrum, Jamie Heilman, Loukas N. Kalisperis, Ray Masters, John Messner Kasuhiko Muramoto, George Otto, Elena Slobounov, and Matt Stone
Please send any and all comments and questions to .