Interrupted Existence, Distributed Class, Clustered Neural Network, Podcasts

2005-06-28

As the devout readers in my audience know... Nevermind, there aren't any. I've been without internet access for the last three days. It sucks. They're sending a tech out to take a look at my connection tomorrow so there are no guarantees that anything will stay live until then. I didn't realize how much I rely on the internet until it was taken away. I've gotten to the point where I feel severely deprived if I am left without instant access to virtually all human knowledge (and porn) during every waking minute.

I got to the Distributed lab to find that we had a bunch of new toys including some Myrinet and Firewire hardware. It took us about an hour to get everything installed and running because we decided to plug in the extra hard drives in all of the systems as well as double the RAM in half of them with sticks out of the unused systems. We didn't get around to installing drivers for the Myrinet stuff yet, I imagine we'll get to that tomorrow. We did however, get Ethernet over Firewire working. Very geeky. Unfortunately, it didn't even come close to the expected 400 Mbps. At peak, we were hitting 13.4 KB/s (107.2 Mbps) over the Firewire link. I'm still not quite sure why we're not getting full speed. Until we get that figured out, we've still got a nice Gigabit Ethernet backbone to sit on, with Myrinet coming soon. Once the system is fine tuned and everything is trunked, we should be able to get aroung 2.6 Gbps. Not bad at all for a system scrapped together from borrowed equipment.

Now that MPI is running on both clusters, we need to get some software written. I've been working on a neural network that I'm planning to extend to support MPI very soon. But I still don't understand a few of the key concepts needed to get an artificial neural network running. The biggest piece I'm missing is the learning algorithm. I have a few rough ideas for building it, but I'm just not quite sure how to approach it. Perhaps I should try to find an artificial intelligence professor to explain it to me. Or a good book. Either way, it'll be really cool once I get it working. From what I've seen, the biggest drawback to existing neural network implementations is a lack of processing power. I figure that a four node 64-bit cluster should have plenty of power for my purposes. Not to mention the six Alphas waiting to be clustered. I would imagine that the Alpha systems will deal with the floating point math better, but we will see.

Recently, I've started listening to the This Week in Tech podcast from the old TechTV guys. It's the first podcast I've actually gotten into to the point where I'm listening to every episode and am disappointed when it's not out on time. But I'm forgiving, I understand that Leo has better things to do than to edit Skype conversations all day. I just enjoy listening to the show when I can, it's a nice little break from reality. All of this podcast stuff got me thinking about how kludgy my current way of getting podcasts onto my Creative Zen Touch player is. I'm downloading each MP3 and copying it to the player manually. Not exactly a model of efficiency. So I downloaded a copy of libnjb and tried to build it on my Mac Mini. That was a joke. The library compiled fine, but the sample apps get undefined reference errors. I have a feeling that I'm missing a library path somewhere but I've recently become aware of how Linux and BSD differ in the area of library management and am still learning about the BSD side of things. I have to say that I'm starting to prefer BSD. I can understand why Apple decided to use it as a basis for their OS; it just works. The hours upon hours I've spent fiddling with various Linux distros trying to get things like X11 running are much easier with the BSDs for a few reasons. First of all, BSD is very well documented. The man pages tend to be magnitudes more comprehensive than the Linux distros I've used. Almost all of the problems I've had with BSD systems have been with oddball software packages not cooperating with the system. The problem is that a lot of software was targeted at Linux (usually Debian or RedHat) and the developers just assume that BSD will work fairly painlessly. In reality, BSD is more restrictive in some areas to keep code clean. For this reason, messy code doesn't play nicely. There are many many other differences between Linux and BSD and this blog just isn't the place to discuss them (though I'm open to any conversations you want to have in my underused comments section).

Anyway, where was I? Oh yeah, the podcasts. I found a nice little perl script that will pull down new podcasts from an RSS feed and save them to a file. I figure that I could easily integrate this into a script that throws the files on my MP3 player when I plug it in. One of the sample programs that comes with libnjb is called sendtr, meaning send track from my understanding. It takes a file path as an argument (maybe even stdin), and prompts the user for the tags for the file in the player's database. I figure that I could move the tagging stuff into arguments as well, and have it work hand-in-hand with the perl script to load up the player, without having to resort to ID3 hell. Unfortunately, I couldn't get libnjb and the perl script working at the same time on either the Mac Mini or my new experimental box running OpenBSD. I'll get it working eventually, it's just going to take some serious hacking around. Eventually, I'd like to have a script running in the background, watching dmesg for the player to be connected and update it as soon as a connection can be established. The podcast reader would run in a separate process every six hours. Six is frequent enough for me because I doubt I'll plug in the player more often than that anyway. Future features for this setup might include the ability of the system to delete old podcasts from the player for me, although I don't really see that being a problem, I tend to delete them through the player's interface as soon as I finish listening. It makes it easier to find new content the next time I go to listen.

Well, I think I've done more than my share of typing for one day. Peace.

Next post - A week in recap, Three hour cluster, Graduation