SourceFiles.org - Use the Source, Luke
Home | Register | News | Forums | Guide | MyLinks | Bookmark

Related Sites

Latest News
  General News
  Reviews
  Press Releases
  Software
  Hardware
  Security
  Tutorials
  Off Topic


Back to files

Notes on the Unix builds of Tachyon:

General suggestions on configuration:


When choosing which way to build Tachyon for a given platform, there are a few general suggestions which will give you good results. When running on a small shared memory machine, you'll probably get the best performance from the multithreaded builds of Tachyon. If you're running on a large SMP system with 30 or more processors, you may get equivalent or possibly better performance by using MPI, depending on the efficiency of a vendor's threads implementation.

If you're going to run Tachyon on a distributed memory cluster, then you'll want to use one of the MPI or LAM builds options. In my experience, LAM gives far better performance when running on a cluster connected by ethernet than MPICH running on the same hardware. So, if you're not using a vendor-provided MPI tuned for a custom interconnect, I highly recommend using LAM as your first-best option.

Configuration

You may wish to enable support for various special features such as interactive spaceball fly-throughs, JPEG and PNG image format support, and other configurable features. These are all controlled in the file Make-config. Similarly, other options which affect operation of the ray tracer, such as floating point precision, mailbox data structures, etc, are enabled or disabled by editing this file. Make-config also includes paths for include and linkage paths for libraries like MPI, OpenGL, and other libraries.
Compiling

Simply type 'make' to see a list of build configurations, choose a configuration and type "make xxxx-xxx-xxx" as appropriate. The resulting binaries will be built and linked in the associated "../compile/xxxx-xxx-xxx" directory.

Running Multithreaded Builds:

Running the multithreaded builds of Tachyon is trivial, it is just like running any other program. No special flags are required unless you want to limit the number of threads (and thus CPUs) used during the rendering process. By default, Tachyon will attempt to spawn a number of computation threads equal to the number of CPUs installed in the machine, as determined by operating-system-specific code built into Tachyon.

Autodetect number of threads/CPUs:


% cd ../compile/solaris-thr
% tachyon ../../scenes/balls.dat

Specify number of threads/CPUs (42 in this example):

% cd ../compile/solaris-thr
% tachyon ../../scenes/balls.dat -numthreads 42

Running MPI Builds:


Since the details of using 'mpirun' and similar commands vary substantially from one platform to another, and sometimes even between different site-specific installations here is a short list of typical commands to execute the parallel versions of Tachyon. Each of the examples below illustrate how to run Tachyon on the "balls.dat" or "tetra.dat" scene files included with the distribution. The default output image is "outfile.tga" and will be written in the working directory unless you override this default with the "-o /somedir/somefile.tga" flags to Tachyon.

Cray T3E

      % cd ../compile/cray-t3e-mpi
      % mpprun -n 12 tachyon ../../scenes/balls.dat

MPICH

      % cd ../compile/solaris-mpi
      % mpirun -np 16 tachyon ../../scenes/balls.dat

Scyld (MPICH)

      Need to copy scene files to a globally accessible file area, which
      may be an issue for some Scyld installations.  I'm working on making
      the root node re-distribute geometry to the rest of the nodes so that
      file I/O ability is needed only on the root node. 
      % cd ../compile/solaris-mpi
      % mpirun -np 16 tachyon ../../scenes/balls.dat

LAM-MPI

      In order to run the regular LAM builds follow these steps
      % cd ../compile/linux-lam
      % lamboot 
      % mpirun -c2c -np 16 tachyon -- ../../scenes/balls.dat
      % wipe

      In order to run the OpenGL-enabled LAM builds, the DISPLAY 
      environment variable must be propagated to the running job, thus
      some extra parameters must be passed to LAM's mpirun which will make
      it inherit your existing DISPLAY environment variable:
      % cd ../compile/linux-lam
      % lamboot 
      % mpirun -c2c -x DISPLAY -np 16 tachyon -- ../../scenes/balls.dat
      % wipe

Sun ClusterTools 4.0 MPI

      % cd ../compile/solaris-hpc
      % mprun -np 0 ./tachyon ../../scenes/balls.dat

Compaq Alphserver SC at PSC

      % rinfo
      % qsub -I -l rmsnodes=2:8
      % prun -N 2 -n 8 ./tachyon ../../scenes/balls.dat
      % ^D

Intel iPSC/860

      % cd ../compile/ipsc860-mpi
      % getcube -t16
      % load "tachyon ../../scenes/tetra.dat"  
      % relcube

Intel Paragon XP/S


      % cd ../compile/paragon-mpi 
      % pexec "tachyon ../../scenes/tetra.dat" -sz 16

Mercury RACE Multicomputers (ppc, i860, SHARC)

      % cd ../compile/mercury-ppc-mpi
      % ln -s tachyon tachyon.ppc
      % mpirun -np 16 -h 0x800000 tachyon ../../scenes/tetra.dat
   
      Note: the -h flags explicitly set the heap size for the
            process.  Some scenes will require more heap size than
            others, so this flag may or may not be needed in order to
            increase the default heap size provided to Tachyon.

      For non-MPI builds on the Mercury machines, use the following
      sequence to initialize and load the code on a node, where XXX
      is the node you desire to run on:
        % sysmc -v -ce XXX init &
        % sleep 3
        % runmc -v -h 0x800000 -ce XXX tachyon.860 ../../scenes/tetra.dat

CSPI Multicomputers (ppc)

      % cd ../compile/cspi-ppc-mpi
      % mpirun -np 16 tachyon ../../scenes/tetra.dat

Last updated July 29, 2003


Other Sites

Discussion Groups
  Beginners
  Distributions
  Networking / Security
  Software
  PDAs

About | FAQ | Privacy | Awards | Contact
Comments to the webmaster are welcome.
Copyright 2006 Sourcefiles.org All rights reserved.