On Thursday 15 September 2005 00:49, Chaitanya Krishna A wrote:
Hi, snip
I experimented with this some time back, I ran the same job with ./executable and also mpirun -n 2 ./executable on my machine (no clustering or anything). The second one gave maginally better results and top showed two processes running. Can someone explain what's happening?
Regards, Chaitanya.
Hi, My mate and I are Mathematical Physicists and do a lot of number crunching. My mate has a couple of multi-processor machines so I'll ask him this W/E while we celebrate his birthday. But my understanding is that to get the best out of your machine you need to use a vector processing language like FORTRAN and your code has to be optimised so that one cpu handles part of the matrix while the second (or more) handles a different part, or even one cpu evaluates part of the formula while the other evaluates the remainder. A big part of the skill is knowing how to structure your code so that the compiler finds it easy to 'break' into shareable parts. That is, none of this fancy coding for efficiency - let the compiler do the optimising. Most people only get the benefit when they do two things at once, like playing a game while doing an FTP, and the system just allocates two very separate jobs to the two different cpu's. But my understand is that you want both cpu's to work on the same job: for this you need to do something as above. Talk with you next week if nobody else replies to your question. Regards, Colin