This is MPIglut version 0.9
	http://www.cs.uaf.edu/sw/mpiglut/

MPIglut is a library that allows serial GLUT programs 
to run in parallel under MPI.  Currently, MPIglut only 
works on Linux with the "DMX" server.

See the comments at the top of mpiglut.c for details on how MPIglut works.

----------- Installation Instructions
First, you need a Linux machine with an "mpicc" compiler
and a DMX server.  MPIglut has been tested with MPICH 1.2.7,
but should work with any MPI library.


To build MPIglut, just type:
	make
This will create a "libmpiglut.a", which contains the MPIglut code, the DMX client library MPIglut needs, and a slightly modified version of freeglut. Currently MPIglut is set up to download, patch, and build freeglut 2.4.0.  On non-x86 machines, you may need to replace MPIglut's "libdmx.a" with your version from /usr/lib/libdmx.a. 


To install MPIglut to /usr/lib and /usr/include/GL, type:
	sudo make install
You should also install freeglut 2.4.0 as your system's GLUT.


To build programs that use MPIglut, just:
	- Change #include "GL/glut.h" to #include "GL/mpiglut.h".
	- Compile your code with your MPI compiler, probably "mpiCC".
	- Link your code using mpiCC, and "-lmpiglut" instead of "-lglut".
	- Run your code on a DMX-capable display.

The "test" directory contains a tiny simple program that can be 
linked with either GLUT or MPIglut.

----------- Command-line Arguments
MPIglut's glutInit intercepts some command-line arguments,
so all programs compiled with MPIglut accept these arguments:

-mpiglut_version
	Print out the version of MPIglut linked into the application.

-mpiglut_nosync
	Disable glutSwapBuffers-time synchronization.  Performance
	may be slightly better, but animation will be jerkier,
	and slower backends may fall far behind.

-mpiglut_benchmark
	Cause the application window to be fullscreen, and 
	repeatedly call glutPostRedisplay at idle time.
	This is useful for MPIglut or application benchmarking.

-mpiglut_verbose=10
	Set MPIglut's internal tracing verbosity level to 10.
	Traced events are written to files named "mpiglut_backend#.trc".
	This is unlikely to be useful except in debugging MPIglut itself.

----------- Changelog
New in v0.9 (2008/02/02):
	- Compiles with gcc 4
	- MPI_Barrier in glutSwapBuffers, to synchronize cluster.
	- Improved command-line handling

v0.8: Initial version

----------- Authors and License
Written by Dr. Orion Sky Lawlor, olawlor@acm.org, 2007-2008
at the University of Alaska Fairbanks (UAF).
Significant testing assistance provided by Dr. Jon Genetti
and UAF CS MS student Matthew Page.

See LICENSE.txt for license terms, which are standard UAF BSD.
