Interim Report

Team Number: 023
School Name: Calvary Christian School
Area of Science: Computer Science
Project Title: Hidden Text Within the Bible
Project Abstract: http://mode.lanl.k12.nm.us/97.98/abstracts/023.html
Interim Report: http://mode.lanl.k12.nm.us/97.98/interims/023.html
Final Report: http://mode.lanl.k12.nm.us/97.98/finalreports/023/finalreport.html

The purpose of this project is to use the developing language of Java and multiple computers to distribute processing across several machines. Since Java has network sockets built-in and can run on a large variety of machines, it is an ideal choice for this project. This program will read in many different texts and search for hidden words via a skip code. A word in a skip code would have each of its letters at equal intervals. The user can define how far apart the letters can be in each word.

A variety of computers will be used in the project. The machine at which the user sits will be the server and all of the others will be the clients. The server controls all of the client machines. First the program is started on each computer. The user then selects which computer(s) to use as the clients. Once the server and client(s) are talking to each other, the user selects the input file(s) to use. At this point each machine is signaled by the server to read the file(s) into memory. Once the file(s) are read, each computer will then remove every space in the text. After each client signals that it is ready, the user is asked for a word or many words in which to search. With every word that is entered, the user has the option of selecting the limits on how far apart each letter can be in the word. When the letters are allowed to be farther apart, the words become far more likely to be found in the text. Once the word(s) are entered, the server will split the work up among each client machine and then give each its task. The work will run in parallel on each of the clients. Once each client finishes its task, it will send its results to the server. The server will then list all of the findings as they come in. The user will be asked which one of the findings they would like to view. Once the selection is made, the server will display the text in a crossword fashion with the search word(s) going either up or down. At this point the user will have to option of entering more words to search. If the user enters more words, the server will once again distribute the work among the clients and start the search over again.

So far we have been in the process of learning Java and we have written the class file to read in and format the text on the input files. During the next half of the project we will write the code to search for words and handle the server-client relationship. The client machines will most likely be SGI'9s because they have well developed Java support, but any computer that can run Java applications can serve as a client.

The results of this project are expected to show that the emerging language of Java can be used to solve difficult problems. We expect the program to run significantly faster using multiple machines than it would if only one computer were used. We expect to show the true power in distributed programming.

Team Members:

Sponsoring Teacher(s):

Project Advisor(s):

New Mexico High School Supercomputing Challenge