Hello,
I am running OS 11 on Intel quadro processor. I am wondering what is the best way to run programs in parallel. Is Intel MPI the best solution? What mpi compiler do you use? Is there really a significant difference between GNU and Intel MPI for Intel processors?
Thanks
On Mon, 18 Aug 2008 09:56:02 GMT
genesup <genesup@no-mx.forums.opensuse.org> wrote:
>
> Hello,
> I am running OS 11 on Intel quadro processor. I am wondering what is
> the best way to run programs in parallel. Is Intel MPI the best
> solution? What mpi compiler do you use? Is there really a significant
> difference between GNU and Intel MPI for Intel processors?
> Thanks
>
>
Running two programs “in parallel” is a function of the operating system.
Linux handles multiple CPU’s automatically, but if you’d like to run one
program on CPU 0, and another on CPU 1… then:
taskset 1 myprogram
will start ‘myprogram’ on cpu 0 (mask values are bit positions, so CPU 0 =
mask value of 1’ (more on this below)
taskset 2 myprogram
will start ‘myprogram’ on cpu 1.
Since, for instance, you have 4 cpu’s… you could run four instances of
‘myprogram’ thus:
taskset 1 myprogram
taskset 2 myprogram
taskset 4 myprogram
taskset 8 myprogram
Think of the value there as a decimal representation of which cpu’s you want
to run the program on. By default, a program’s mask is 1111 (actually more 1’s, up to physical limit of machine, but this is an example.)
‘1111’ (15) means the program can run on ANY cpu.
‘0001’ ( 1) means a program can run on cpu 0 (bit position 0)
‘0010’ ( 2) means cpu 1 (bit position 1)
… and so on…
‘1011’ (11) means it can be run on cpu’s 3,1,0.
Kinda neat!
Taskset may also be used to change which cpu’s a program may run on while the
program is running.
Hopefully this all made sense. Read the taskset manpage for more information.
Loni
–
L R Nix
lornix@lornix.com
Thanks for that information but thats not quite what I wanted.
If you have some program that performs heavy calculations you might want to run it in parallel - that means a single program on multiple processors. For example, I use gromacs - scientific software that tries to calculate, for example, how would different aminoacids move inside a protein molecule. Such calculations require enormous machine resource so it is always run on multiprocessor clusters. To parallelize a process you should at first consider your code to be written correctly using special tags to specify the procedure to be parallelized and then compile it with mpi (Message Passing Interface) compiler. I use Intel MPI right now but I was just wondering if anybody uses something else.
Anyway, Thanks for the reply.
On Tue, 19 Aug 2008 08:26:03 GMT
genesup <genesup@no-mx.forums.opensuse.org> wrote:
>
> Thanks for that information but thats not quite what I wanted.
> If you have some program that performs heavy calculations you might
> want to run it in parallel - that means a single program on multiple
> processors. For example, I use gromacs - scientific software that tries
> to calculate, for example, how would different aminoacids move inside a
> protein molecule. Such calculations require enormous machine resource
> so it is always run on multiprocessor clusters. To parallelize a
> process you should at first consider your code to be written correctly
> using special tags to specify the procedure to be parallelized and then
> compile it with mpi (Message Passing Interface) compiler. I use Intel
> MPI right now but I was just wondering if anybody uses something else.
> Anyway, Thanks for the reply.
>
>
Ah, the difference a word makes… you’re talking about running multiple
THREADS of a program… Single program, multiple CPU’s… right?
THAT depends on how you’ve written the program of course… and then there
the multiple … y’know what… I’m going to start over here…
Hi! {Grin} I’m Blonde… work with me!
I’ve dabbled a tiny bit in cluster programming, enough to really be
interested in it. I just haven’t found anything to compute that needs all my
computers chomping on it at once. Of course, the openness of Linux and the
software available does help things greatly too. You mentioned the Intel MPI
compiler, it’s available for the linux system, seemed to work well enough for
me, and based on the search results, is doing good things in the world too.
I don’t feel qualified to answer much more about cluster programming on
linux, as I’m just a beginner. But I doubt you’ll do poorly with what you’re
using currently. It seems to work well, if the sheer number of other people
using it is any indication.
Loni
–
L R Nix
lornix@lornix.com