Results 1 to 4 of 4

Thread: Running programs in parallel

  1. #1

    Default Running programs in parallel

    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

  2. #2
    Join Date
    Jun 2008
    Location
    Oklahoma, US
    Posts
    822

    Default Re: Running programs in parallel

    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


  3. #3

    Default Re: Running programs in parallel

    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.

  4. #4
    Join Date
    Jun 2008
    Location
    Oklahoma, US
    Posts
    822

    Default Re: Running programs in parallel

    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


Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •