Parallel Processing Research Project
Northwest Missouri State University


Students:
Laura McCormick
Michelle Owens
Kimberly Wall

Mentors:
Dr. Phillip Heeler
Dr. Dean Sanders



Keeping up with current technologies is a very important aspect in the educational development of Computer Science students. Often, students are not able to gain hands on experience with technologies that would help them advance in their chosen fields. Parallel processing is an area in which we felt that we would be able to learn about a newer technology as well as create something that would produce visible results. Another reason we chose to work with parallel processing was to create an environment that would allow not only the students in the research team to work on a Unix system, but also to have a local system that students in various programming classes could utilize for projects. Currently, students are not taught a great deal of Unix in their coursework. By having a system that is administered locally it is easier for students to learn and develop their Unix skills, rather than depending on a remote system and its particular configurations.

Our first step in setting up our Beowulf cluster of computers was acquiring the hardware. We received a donation of nine book computers from our Computing Services department, and we also purchased a Sun workstation to use as our root node. Once all of the machines were networked, we were able to start configuring the system for parallel processing. Our first attempt at setting up the systems for parallel processing was to use PVM. PVM is a software application that enables you to turn TCP/IP networked computers into a single virtual machine in order to run parallel programming. PVM failed to work properly, so we switched to the Message Passing Interface (MPI). We were successful with MPI in creating a functioning parallel processing environment. The only problem we ran into was that we had to compile our programs once for our book computers and once for our Sun machine. This became tedious, so we created a routine to compile for both at once.

We learned a great deal during the process of setting up the system. The way in which a system of this type works is far clearer after setting up and troubleshooting than it ever would have been from simply reading a book or working on an existing system. Since completing the setup, we have created several programs and demonstrations using parallel processing. In the future we intend to further extend our research to image processing as time did not allow this school year. In addition, a Parallel Processing course is being offered beginning in the Fall of 2001, and our research contributed a great deal to the development of the course.