Home | New Media | Digital Portfolio | Resume | Personal Interests

Portfolio
personal statement
resume
letters of recommendation

Learning Outcomes
Technology Literacy
Citizenship
Critical Thinking
Carrer Preparation
Collaboration
Written Communication
Oral Communication
Curricular Literacy

Digital Portfolio...
Carrer Preperation

 

 

In order to prepare for a career, you need to learn responsibility, self-discipline and time management. Honesty and personal integrity are also expected on any job. In addition, it is important to have a good understanding of career paths and how to find jobs in your chosen field.

Senior Project: Process Paper
Internship Hours

 

The following document is from my Senior Project. At the end of every students Senior year, they are required to do a senior project, on their own time. The topic is chosen by the student. One component of the project is a process paper which tells about how the student went about performing the project. The document demonstrates my vast knowledge of Linux. Linux is a complicated computer operating system used by scientists and engineers all of the world. Showing mastery of function demonstrates that I'm rather technology proficient. The document outlines how I built a Linux server. Most likley I will be working with Linux on a job site--85% of websites are hosted on a Linux platform and 50% of program development is done on a Linux platform as well.

Although the paper lacks the use of many technical terms, I think it would be quite impressive for a perspective employer to read. I had a lot of fun writing this document. I find myself referring to it to refresh my memory on how to use Linux!

Linux: Project Process Paper

At the start of this project, I knew very little about Linux. However, my networking skills were excellent. Building Beowulf Linux clusters, in its most basic form, relies heavily on extensive knowledge of Linux and networking. The first thing I did was look on the internet for information about building Linux clusters. I found quite a few web sites that make sense to me now, but didn't at the start. My mentor, Justin Clarke, recommended a few books to me. Upon purchasing and reading them I decided that I'd first do what I knew best.

A network is at the core of any cluster. The network is what allows the members of a cluster to effectively communicate with each other. It is generally also the bottleneck of any cluster. Keeping this in mind, the network has to be designed with speed and reliability in mind. All I had to use was an HP hub running at 10mbps. I would have liked to run a switch at 100mbps, but this was a limitation I just had to work around. Since the Master machine has a disproportionate amount of data being sent to and from it, it has 2 network cards in it. This gives it a total bandwidth of 20mbps to the hub. The master machine and the clusters were put on their own private network. This means that I could do any experiments I wanted to on the machines and it would not affect the schools network.

The next step was to gather and configure the nodes. The nodes are what make a cluster so powerful-they are the "worker bees" of the cluster. I had approximately 30 computers to work with. However, after testing each one individually I ended up with only about 10 computers. The biggest problem I had with the computers was bad RAM (memory). The computers would look like they were working great for a few hours, then once they got heated up and starting running a lot of programs they would crash. I tried everything I could to fix the crashing problem. I was running out of ideas and I was completely baffled. My mentor told me to not think of how I can fix the problem, but I could replicate the problem. This got me thinking on a different track. I finally traced the problems to bad memory on the motherboards of the computers. Another issue I had to deal with was that some of the node computers had different network cards (NICs) in them. This caused a problem because only HP NICs worked with the HP hub. I would have changed then out but the cases on the computers were locked and the school had lost the keys well over a year ago.

Once the computers were all running properly and connected to the network I began installing the operating system, Linux of course! Since I was going to have to setup more than 10 computers, I didn't want to have to go around to each computer and insert the CD-ROM, type in a bunch of commands, and then sit there and answer numerous questions about how I wanted to install it on every computer. I created something called a KickStart disk. This disk allowed me to install the operating system in the computers with less than 5 seconds of work! All I had to do was insert a floppy disk into the drive and it would install and configure the computer based upon a script written to the disk. (See Appendix???? for the code.)

Before I could setup the slave nodes, I had to setup the server. The server node would be the computer that would divvy up tasks into smaller tasks and distributed them to the other computers. It is the "smartest" node in the cluster. At the heart of the master node are the DHCP, NFS, and FTP servers. DHCP is a program that listens on the network for computers to turn on. Once a computer is turned on, it assigns it a unique address and lets the other computer know what its address is. Thus enabling communication with the node. NFS means networked file system. It allowed nodes to view, run, edit, and create files on the master node. This is necessary because all of the computers in the network need to share files between each other. FTP means file transfer protocol. It is an agent that runs on the server and manages all of the file transfers.

Once the master node was setup, the fun began! It was time to install the additional software on the nodes. Since I had the operating system setup on them with control of them set to the master node, I could install all the software I needed on them from the master node. Such software included mathematical equation solving programs, image rendering subsystems, and encryption challenging software. I decided to run a simple programs at first!

The simple program (siqmasqrt) does mathematical calculations. If given two numbers, such as 1 and 50, it will sum the square roots of all the numbers beginning with the first number and ending with the second. To run this program as a parallel application, the work, the range of numbers, was divided up and then run concurrently on the 8 nodes of the cluster. It did this using a shell script which executed and spanned the program across all the nodes and then the results were added up with a second program (sum.c, referenced in Appendix???). Here is the result of running it all first on a single node and then using all 8 nodes:

Single node - 1 through 4000000
sum = 5333334333.125119
elapsed time = 0:11.32

Eight nodes - 1 through 4000000
The work was distributed as follows:
node1 1 500000
node2 500001 1000000
node3 1000001 1500000
node4 1500001 2000000
node5 2000001 2500000
node6 2500001 3000000
node7 3000001 3500000
node8 3500001 4000000
sum = 5333334333.125506
elapsed time = 0:01.90


A difference of 9.42 seconds; an 83% improvement! However, apparently it still wasn't tuned properly. Why are the sums slightly different from the two runs? Why is the second run more than 8 times faster? In Justin Clarke's professional opinion, he told me "things like that happen sometimes." He went on to explain that Linux clusters are their own beasts and that everyone one is a new animal.


The last and potentially most rewarding program I wanted to run was called POVRAY. POVRAY is a graphics rendering system. Graphic rendering is one of the most intensive computing tasks one and perform. However, the hard drive limitation of 4GB didn't allow me to run POVRAY. During this summer I plan on rebuilding the systems with bigger hard drives so I can run more programs.

 

 

At New Technology High School, students are required to complete 30 internship hours. I did my 30 hours at River Middle School. I'm still employed there, however. I've been working with River School for 6 months! Below is an achievement award given to me by New Tech High School for completing my internship hours.

 

New Technology High School

Internship

This Digital Document Certifies That on
Tuesday, May 15, 2001,

Mike Sonni


This award signifies completion of the
Internship and School Service Hour
requirements at NTHS

...