Hi there,
my experience with HPC and Mathematica is quite good. Here's a little program:
MersennePrimeQ[n_Integer] := PrimeQ[2^n - 1];
serial = Table[AbsoluteTiming[Select[Range[n], MersennePrimeQ];][[1]], {n, 100, 4000, 100}];
parallel = Table[AbsoluteTiming[Parallelize[Select[Range[n], MersennePrimeQ]];][[1]], {n, 100, 4000, 100}];
ListPlot[{serial, parallel}]

I used 12 cores and for slightly larger Mersenne numbers I get a speed-up of around 8.
{0.0430, 0.1570, 0.3470, 0.4840, 0.7752, 1.1520, 1.6039, 2.0522, \
2.2048, 2.7491, 2.8243, 3.2581, 4.0768, 4.7226, 4.4919, 4.9101, \
4.8510, 5.5316, 6.3384, 5.7927, 5.8100, 6.9138, 6.4262, 6.7049, \
7.4091, 6.8417, 6.5115, 7.2273, 7.5031, 7.8422, 8.0007, 7.2548, \
7.5676, 7.9047, 7.9098, 7.7667, 8.4086, 8.3989, 8.4812, 7.26858}
As expected for small numbers single core calculation is faster. For other calculations I have seen better ratios than this. For a slightly more intelligent way of distributing the processes you can get to better ratios.
We also use the grid manager to access classroom PCs all across the campus and it works quite well. If larger data volumes are produced, the network might be limiting in that case.
Cheers,
M.