Monday, April 03, 2006

Digital Masochism Universal

So, you've got a great algorithm, up and running and you think to yourself, maybe i should really push the sucker. But first, let me explain. These days I've been doing some work for a change, and my specific area of interest is semi-supervised learning over data dependent graphs. Given a dataset and a limited number of labeled examples in {-1, 1} the purpose is to assign positive or negative labels. You could do this, in a relatively small time of iterations without really pushing your computer's processor to the great chipmaker in the sky from overheating. However note that the predicted labels will only assymptotically tend to +1 or -1. So, yours truly although having got an absolutely correct classification but not in that theoretically possible group of values decides, well if in only a thousand iterations i get these results, maybe i should go for a mil.

A few hours later at a friends place my mac was happily crunching away every single number in the dataset, making progress. After seeing phantasm and confessions of a dangerous mind, we got to the point where it was past 2.00 in the morning but at least we have gone through the 500k iterations milestone. Almost happy i thought cool, it should be ready by the time i get finished with seeing ghostbusters and maybe annother movie.

So happily i leave my mac crunch away. Ritually repeating to myself, yes dimmu, the energy should converge and everything is going to be okay. Just a reminder, when something works in theory, theres a world of difference of really trying it. Somewhere during watching ghostbusters the algorithm had reached the point of 850k iterations. Schweeet this humble hacker thought to himself, almost there. And then, then a whole world of pain, screaming and frustration, and no i am not referring to Bill Murray, OR Dan Akroyd. I am referring to matlab crashing on me when i though i was getting somewhere. Why dear mother of the flop have you abandoned me? And another question arose, where the hell is that thing that generates c-code from your .m files? It now is 7.22 in the morning and this humble hacker is at it again, downing yet another can of Relentless( thank you coca cola company for a cheap alternative to red bull that comes in cans of 500 ml, the programming community seriously wants to voice its satisfaction with your new product through the carpal tunnel encumbered hands of this immensely aggravated writer).

So, what have we learned here today? A. Even the language of scientific computing can crap up on you at any time. B. If you wanna do something right there is a significant chance that you might be much better off by rolling your own tools. C. I seriously need some sleep, or a girlfriend, and a corporately employed programmer who works on numerical computing software to punch. Mostly sleep tho. And i still have to walk home. Seems like a great day out there, the sun's been up and gracing this sunlight deprived country called england with his presence for the past 1 and a bit hours. Too bad i'm probably going to be in a seriously comatose state once i get back home. Oh well. What can you ever possibly do? Except practicing obscene acts of violence on software engineers so they can make a product that really scales? Strangely, i find myself wishing i was an eschimo today, with a really big harpoon somewhere where they write mathematical/engineering software. Just making sure software meets up to its hype and the people behind it stay focused. Biiiiiig fucking harpoooon.

No comments: