So this is the first  I've done anything with parallel dev in a rather long time. This week I did some hacking to get a multithreaded version of a Pi estimator done using the Monte Carlo method. Of course it is a rather trivial program/example to use, and its almost always the first thing that books on HPC have you try. But I did it in a very weird (pronounced poorly) implemented manner and had fun with it. I will post that some time later.

JPPF was something I found when looking for ways to do parallel with Java. I know BSU started a project and actually was looking for that. So today Brian and I spent the time and effort to install and explore it a bit. And in not much time at all (30-40 minutes?) we had an actual cluster running some sample programs they provided. Our main limitation was the lack of a "30 second setup and trial" document and getting Ant installed and running on our laptops. After that it was rather straight forward. I'm very impressed with the administration tool and how much detail it gives about everything. I will try to get this installed on my networked computers at home this weekend and maybe re-write the monte carlo program for the cluster to give it a try.

A cluster of computers in a coffee shop! A BEOWULF cluster... how cool.

As the summer has been wearing on, I've thought more about this whole "cluster" thing and I've decided the first project I want to do is a game of 21 (poker) which uses the standard rules and have the "player" adopt the same rules to play as the house, but with a slightly higher limit on the hand. Could also do some simple "card counting" techniques that I think most people could pull off (such as number of aces played, and then maybe working up to number of face cards played etc). Practical use, and easy to program up.

 Now if I only had a cluster..

So for some reason I've become obsessed with getting this done. I don't even have a good project to run on it really! Been looking on ebay for computers on pallets and it's just not reasonable for me to spend that kind of money I think; shipping will cost almost as much as the PC's do. Which brings me back to procurring them here or in Montana through friends/family and strangers who will take pity on me. And really until I can either find the stuff almost free or extremely cheap, my alternative is to just use my PC's around the house. Hrm. Not quite the dedicated cluster I envision but it would be fun to play with from time to time. Especially with my AI class I'm taking this fall, combine that with some parallel computing. Have 1 computer play against the cluster in a game of chess or something. Bwahaha.     

It would appear that I have something of a patron to sponsor me some computers for my "un-super computer" as it were. Not sure how many are available, but sounds like at least 6 PII 450MHz computers and possibly more than that. There are a few PIII's too, but ..  well, I have a few qualms about taking them. First if it's only like 3, it's not really enough to have as a cluster itself and if I just through them in, it means I've got hardware that doesn't really match. And largely, I still dont have a real project to use them for, so they might as well go to others who can actually use them. (450's aren't enough to do anything but cause other people headaches, so I dont feel bad about that.) I keep telling myself that if I build it, I'll find some uses. And maybe I will. I'll post more as it comes.

So lately, as school winds down, I'm doing my "What am I going to do with myself this summer?" thing. I'm always really ambitious slaving away all year long on projects and stuff. This year of course isn't really any different. The exception is that I've got some really cool ideas for projects that I'd like to complete, and I think I should have enough time to get them (both) done. One is the MythTV (Tivo-esque) box for my living room. The other is building a Beowulf cluster and running some gnarly project on it. As it stands right now, the computing power I'd have have at my disposal around the beginning of summer totals around 7Ghz. Of course, because I'm a poor college student, none of the machines really close to another in performance; they range from 600 MHz to 2.2 GHz. So benchmarking will be a must (I suppose to do this I'll have to run the program on each machine individually first and average out the single machine run time before trying anything in parallel.) Since I was also hoping to revisit my DNA B-Tree project from my data structures class, I might combine that into this project and do a parallelized version of it. Of course that means converting all the Java code to C first, and then coming up with a way to handle the b-tree across all the nodes. So I might go with something easier. If any of you faithful readers out there come across something wild new and fun for parallel computing, let me know!

 

UPDATE:

It was brought to my attention I may have made some inferences in my above blathering about the "7 GHz" value. This really doesn't translate into any real number value for this type of computing, a lot of it will depend on other factors (such as network through put and the efficiency of the program and type of problem being run). To make this whole thing simpler though I'm looking at trying to procur a handful of  1GHz machines for this usage, all with the same hardware. Likely this will be more towards the middle of the summer. 

© 2017 Chad Jorgenson. All Rights Reserved.