UNIT #5 - Ray Tracing and the Linux Cluster
What is POV-Ray
POV-Ray is a free raytracing program developed by a number of contributors
on the web. It allows people to define complex scenes mathematically, and
then calculates what that image would look like with almost photographic type
realism. There are many resources on the web related to POV-Ray, but the
following are good places to start.
Getting Started with POV-Ray
This is a web page about how to get started with POV-Ray in the CS Lab at
Jefferson. It explains how to make a few simple pictures and includes
some scripts to assist with the generation of POV-ray images.
This is an award winning ThinkQuest project developed by students at TJHSST
and Alaska that explains how ray tracing works, and how to do a number of
exciting things with POV-Ray. It has an excellent glossary filled with
Advanced POV-Ray Effects: Animation
This page will show you how to use the clock variable in POV-Ray
as well as some utilities in a program called ImageMagick in
order to create some animated sequences.
Using the Linux Cluster
In this unit we will be using the TJHSST Linux Cluster in order to create
a number of different frames in an animation. Rather than being generated
sequentially, it will be faster to have several processors working on
different ray traced images at the same time.
The cluster is running MOSIX, a software product developed in Israel
that allows a group of Linux computers to manage multiple tasks.
Parallel processing on the cluster is slightly from similar programs run
under PVM because the operating system handles the distribution of tasks
rather than the programmer. If some of the processors are already much
busier than the others, MOSIX will not give them extra work to do. Making
all of the processors share the work load is called "Load Balancing",
a great concept in theory but unfortunately not the way group work actually
happens in most school situations.
For MOSIX to work well, there are some design
considerations that must be followed in order to have the tasks migrate
properly to the different nodes of the cluster. The general approach
begins with an initial program started on one of the cluster nodes,
but that program spawns multiple copies of itself using the UNIX
command fork. MOSIX then balances the load among the
various nodes in the cluster by moving those programs to nodes that
are relatively free.
- About the TJHSST Linux
This is a page from the cluster's own web server that tells a bit about the
16-processor Linux Cluster and MOSIX. The page includes a Java Applet that
displays the CPU load on the various processors. If that Applet doesn't
seem to work when the page is first loaded, try holding down the shift key
while clicking on "Reload" to see if the Java Applet might work on the second try.
- Cluster Programming
This is a tutorial written by TJHSST
Student System Administrators that explains how to write a program
for the Linux Cluster.
- Creating a POV-Ray Animation Using the Linux Cluster
This web page gives a brief introduction on how to write a program on the
Linux Cluster that can be used to create a series of POV-Ray images
that can be used in an animation sequence.
- Working with Remote Systems
This page gives a few helpful suggestions on how to work with different
remote computers and to transfer files from one system to another.
Assignments - UNIT #5
- Basic POV-Ray Scene
Create an attractive scene using some of the fundamental elements
available in POV-Ray. Try to use a variety of surface types
including a graphic image as a texture.
- Animated Ray Tracing
Create an animated sequence of at least 16 frames using POV-Ray on
the cluster. Run the sequence using some of the available UNIX
software, and also save the sequence as an animated GIF image for
your web page.