What it does
Digital Fortress is a network application that allows you to connect multiple slaves to a single master node. The master node is capable of assigning specific calculations to individual nodes in order complete tasks more efficiently with parallel processing. Under a high load, the Raspberry Pis can get quite warm, so I added built in temperature monitoring in order to keep track of over heating Pis. I built both a Pebble smart watch app as long as an HTML web app that displays the temperature of all connected nodes so it is easy to monitor temperatures from anywhere in the wrold. The master node syncs the name and temperature of each slave node to an Amazon Web Services server so that the data can be accessed from anywhere, even outside of the network.
How I built it
Java and lots of redbull! A large amount of research went into this topic. I had to begin with building a packet system using TCP sockets in order to transfer data between the master and slave nodes in order to maintain an organized workflow. Otherwise, random data flowing everywhere would have just created an infinite number of problems. Not every task is able to be completely in a parallel fashion. Calculations that are dependent on previous calculations are not good candidates for parallel processing because it still ties up the CPUs while they are waiting for information from previous calculations. Calculations such as finding the nth term in the fibonacci sequence however, is a great candidate for cluster computing because each term is independent to the others so they can be calculated in a parallel fashion.
Challenges I ran into
What I learned
I learned an incredible amount about interconnecting devices through the internet. I had to route the cluster computer's internet through my laptop's ethernet port, and then forward the traffic through my wireless card onto the KSUEvent WiFi network. I learned alot while researching uses parallel processing and how exactly it works.