Tuesday, September 27, 2005

Parallelization problems and Python procrastination

I've been working on porting my simulation over to the big cluster at work with no success. It won't compile with the nifty hardware-specific compiler, so I've been using gcc (Hooray for GNU! It's everywhere!), which isn't the recommended compiler for this system. I can make small simulations run, but as soon as I try a large test I get a segmentation fault. It doesn't help that it is a non-deterministic bug. Argh! At least I've gotten familiar with TotalView, a rather spiffy debugger that can handle parallel programs nicely. It's memory debugging tools have helped me eliminate every obvious possibility for what the problem could be.

Fortunately (sort of), I have established that the problem does not lie in my code (at least not entirely), since a small example written by the guy whose library I am using also fails mysteriously. It's either a problem with his code or with something lower down. Perhaps something isn't configured properly on the cluster. Whatever it is, I have sent this other guy a number of emails with details of all the things the problem isn't.

Now that I've dumped the problem in someone else's lap, I need to get back to work on something else. I contemplated adding some new functionality to the simulation, but decided to explore Python instead. I've been thinking that this would be an interesting language to learn, if I could find a reason to learn it, and today I came up with one. I need to do some data conversion from one file format to another to generate the XML input files for my simulation from the input files from the software we hope to replace. I have been using SXML, which let's me manipulate the XML as S-expressions in Scheme, but the many standard libraries of Python are tempting me. There are people here at work that use Python, which is kind of nice. I'm going to try to write something useful in it tomorrow to see if I want to continue down this path.

No comments: