[mpich-discuss] Running an mpi program that needs to access /dev/mem

Gus Correa gus at ldeo.columbia.edu
Thu Jun 13 15:11:06 CDT 2013


Hi Eibhlin

On 06/13/2013 12:59 PM, Lee, Eibhlin wrote:
> Gus,
> I believe your first assumption is correct. Unfortunately it just seemed to hang. I think this might be because each one is being made to have the same rank...

Darn!  I was afraid that it might give only rank 0 to all MPI processes.
So, with the script wrapper the process being launched by mpiexec may 
indeed be sudo,
not the actual mpi executable (main)  :(
Then it may actually launch a bunch of separate rank 0 replicas of your 
program,
instead of assigning to them different ranks.
However, without any output or error message, it is hard to tell.

No output at all?
No error message, just hangs?
Have you tried a verbose flag (-v) to mpiexec?
(Not sure if it exists in MPICH mpiexec, you'd need to check.)

Would you care to try it with another mpi program,
one that doesn't deal with /dev/mem (a risky business),
say cpi.c (in the examples directory), or an mpi version of Hello, world,
just to see if the mpiexec+sudo_script_wrapper works as expected or
if everybody gets rank 0?


> It may already be obvious but this is the first time I am using Linux. I had tried sudo $(which mpiexec ....) and sudo $(which mpiexec) ... both without success.

"which mpiexec" will return the path to mpiexec, but won't execute it.

You could try this (with backquotes):

`which mpiexec` -n 2 ~/main

On a side note, make sure the mpiexec you're using matches the 
mpicc/mpif90/MPI library from the MPICH that
you used to compile  the program.
Often times computers have several flavors of MPI installed, and mixing 
them just doesn't work.

> Is putting the full path to it similar to/is a symlink? (This still doesn't make main have super user privileges though.)

No, nothing to do with sudo privileges.

This suggestion was just to avoid messing up your /usr/bin,
which is a directory that despite the somewhat misleading name (/usr, 
for historical reasons I think),
is supposed to hold system (Linux) programs (that users can use), but 
not user-installed programs.
Normally things are that are installed in /usr get there via some Linux 
package manager program
(yum, rpm, apt-get, etc), to keep consistency with libraries, etc.

I belive MPICH would install by default in /usr/local/ (and put mpiexec  
in /usr/local/bin),
which is kind of a default location for non-system applications.

The full path suggestion would be something like:
/path/to/where/you/installed/mpiexec -n 2 ~/main

However, this won't solve the other problem w.r.t. sudo and /dev/mem.

You must know what you are doing, but it made me wonder,
even if your program were sequential, why would you want to mess with 
/dev/mem directly?
Just curious about it.

Gus Correa



> Eibhlin
> ________________________________________
> From: discuss-bounces at mpich.org [discuss-bounces at mpich.org] on behalf of Gus Correa [gus at ldeo.columbia.edu]
> Sent: 13 June 2013 15:37
> To: Discuss Mpich
> Subject: Re: [mpich-discuss] Running an mpi program that needs to       access  /dev/mem
>
> Hi Lee
>
> How about replacing "~/main" in the mpiexec command line
> by one-liner script?
> Say, "sudo_main.sh", something like this:
>
> #! /bin/bash
> sudo ~/main
>
> After all, it is "main" that accesses /dev/mem,
> and needs "sudo" permissions, not mpiexec, right?
> [Or do the mpiexec-launched processes inherit
> the "sudo" stuff from mpiexec?]
>
> Not related, but, instead of putting mpiexec in /usr/bin,
> can't you just use the full path to it?
>
> I hope this helps,
> Gus Correa
>
> On 06/13/2013 10:09 AM, Lee, Eibhlin wrote:
>> Pavan,
>> I had a lot of trouble getting hydra to work without having to enter a password/passphrase. I saw the option to pass a phrase in the mpich installers guide. I eventually found that for that command you needed to use the smpd process manager. That's the only reason I chose smpd over hydra.
>> As to your other suggestion. I ran ./main and the same error (Can't open /dev/mem...) appeared. sudo ./main works but of course without multiple processes.
>> Eibhlin
>> ________________________________________
>> From: discuss-bounces at mpich.org [discuss-bounces at mpich.org] on behalf of Pavan Balaji [balaji at mcs.anl.gov]
>> Sent: 13 June 2013 14:34
>> To: discuss at mpich.org
>> Subject: Re: [mpich-discuss] Running an mpi program that needs to access        /dev/mem
>>
>> I just saw your older email.  Why are you using smpd instead of the
>> default process manager (hydra)?
>>
>>     -- Pavan
>>
>> On 06/13/2013 08:05 AM, Pavan Balaji wrote:
>>> What's "-phrase"?  That's not a recognized option.  I'm not sure where
>>> the /dev/mem check is coming from.  Try running ~/main without mpiexec
>>> first.
>>>
>>>     -- Pavan
>>>
>>> On 06/13/2013 06:56 AM, Lee, Eibhlin wrote:
>>>> Hello all,
>>>>
>>>> I am trying to use two raspberry-pi to sample and then process some
>>>> data. The first process samples while the second processes and vice
>>>> versa. To do this I use gpio and also mpich-3.0.4 with the process
>>>> manager smpd. I have successfully run cpi on both machines (from the
>>>> master machine). I have also managed to run a similar program but
>>>> without the MPI, this involved compiling with gcc and when running
>>>> putting sudo in front of the binary file.
>>>>
>>>> When I combine these two processes I get various error messages.
>>>> For input:
>>>> mpiexec -phrase cat -machinefile machinefile -n 2 ~/main
>>>> the error is:
>>>> Can't open /dev/mem
>>>> Did you forget to use 'sudo .. ?'
>>>>
>>>> For input:
>>>> sudo mpiexec -phrase cat -machinefile machinefile -n 2 ~/main
>>>> the error is:
>>>> sudo: mpiexec: Command not found
>>>>
>>>> I therefore put mpiexec into /usr/bin
>>>>
>>>> now for input:
>>>> sudo mpiexec -phrase cat -machinefile machinefile -n 2 ~/main
>>>> the error is:
>>>> Can't open /dev/mem
>>>> Did you forget to use 'sudo .. ?'
>>>>
>>>> Does anyone know how I can work around this?
>>>> Thanks,
>>>> Eibhlin
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> discuss mailing list     discuss at mpich.org
>>>> To manage subscription options or unsubscribe:
>>>> https://lists.mpich.org/mailman/listinfo/discuss
>>>>
>> --
>> Pavan Balaji
>> http://www.mcs.anl.gov/~balaji
>> _______________________________________________
>> discuss mailing list     discuss at mpich.org
>> To manage subscription options or unsubscribe:
>> https://lists.mpich.org/mailman/listinfo/discuss
>> _______________________________________________
>> discuss mailing list     discuss at mpich.org
>> To manage subscription options or unsubscribe:
>> https://lists.mpich.org/mailman/listinfo/discuss
> _______________________________________________
> discuss mailing list     discuss at mpich.org
> To manage subscription options or unsubscribe:
> https://lists.mpich.org/mailman/listinfo/discuss
> _______________________________________________
> discuss mailing list     discuss at mpich.org
> To manage subscription options or unsubscribe:
> https://lists.mpich.org/mailman/listinfo/discuss




More information about the discuss mailing list