Originally posted by: trOver
sorry, but those programs arnt the most popular for benchmarking, so theres not much on them. I would say that most mathematics is going to be cpu work, because ram is just used for accessing the hd and a temporary storage space for the cache of the cpu. Because there is not much graphic work involved, i would say that cpu speed would be the best things in making your decision for running those programs
"ram is just used for accessing the hd"? I take it you don't do a lot of programming.
Number-crunching performance depends wildly on the sort of computations you are doing. Some algorithms require massive amounts of (fast) integer math -- frequently the limitation here
will be the RAM, because the datasets are generally far too big to fit in the CPU's L1/L2 cache and so it spends a lot of cycles waiting to fetch data or write results. Others require a lot of floating-point operations... depending on the exact CPU, and what operations you are doing, this could end up being limited by the speed of the FPU more than anything else. Some operations (usually ones that do relatively simple things to large amounts of data) can benefit from deep CPU pipelining -- but algorithms that constantly have to branch and make decisions based on their results tend to get hurt by overly deep pipelines, since they will frequently encounter pipeline stalls.
Modern x86 CPUs also offer specialized instruction sets (MMX, SSE/SSE2/SSE3) for doing SIMD (Single Instruction Multiple Data) or 'vector' operations on large amounts of data in parallel. If you have to do the same exact integer math to a vast quantity of data, using these instructions can increase performance significantly. Programs like Matlab would usually offer some method of accessing this functionality -- consult your documentation or an expert user.
I'm pretty sure that neither Mathematica nor Matlab is by default multithreaded (unless this is a recent development -- Matlab definitely wasn't a few years ago). There may be packages you can access that would allow it to use multiple cores for some operations -- or you could run multiple instances of the program.