Of course, there is always the other answer for brute force approach - Grid Computing. Just get a bunch of the PMers to put the application on their computers running different parts of the data. Put all the findings together and voila. Answer! (tounge in cheek).
But, seriously, this would be neat to do with perl as well (CPAN module? - If I have the time. lol). I have already done this in a document creation shop. It was a very powerful tool. Creating millions of documents per day, some of them multiple times. By putting the work into a grid, we were able to cut down the end user seen latency from as much as 30 minutes to no more than a minute (except in rare cases where a person was needed). Since the whole thing was in perl, it made many people rethink their views on perl. The solution blew a java based solution away, and it was done so quickly that the C++ solution (scheduled to replace the Java solution) was never finished.
Slashdot poked my funny bone...
Visions of the future of grid computing