Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

Subject: Re: [OMPI users] How to know which process is running on which core?
From: Jeff Squyres (jsquyres_at_[hidden])
Date: 2010-09-24 08:34:27


I completely neglected to mention that you could also use hwloc (Hardware Locality), a small utility library for learning topology-kinds of things (including if you're bound, where you're bound, etc.). Hwloc is a sub-project of Open MPI:

    http://www.open-mpi.org/projects/hwloc/

Open MPI uses hwloc internally, but you could also link your application against hwloc and call its C functions to get information about your process' locality, etc.

On Sep 24, 2010, at 8:14 AM, Jeff Squyres wrote:

> On the OMPI SVN trunk, we have an "Open MPI extension" call named OMPI_Affinity_str(). Below is an excerpt from the man page. If this is desirable, we can probably get it into 1.5.1.
>
> -----
>
> NAME
> OMPI_Affinity_str - Obtain prettyprint strings of processor affinity
> information for this process
>
>
> SYNTAX
> C Syntax
> #include <mpi.h>
> #include <mpi-ext.h>
>
> int OMPI_Affinity_str(char ompi_bound[OMPI_AFFINITY_STRING_MAX],
> char current_binding[OMPI_AFFINITY_STRING_MAX],
> char exists[OMPI_AFFINITY_STRING_MAX])
>
> [snip]
> OUTPUT PARAMETERS
> ompi_bound
> A prettyprint string describing what processor(s) Open MPI
> bound this process to, or a string indicating that Open MPI
> did not bind this process.
>
> current_binding
> A prettyprint string describing what processor(s) this
> process is currently bound to, or a string indicating that
> the process is bound to all available processors (and is
> therefore considered "unbound").
>
> exists A prettyprint string describing the available sockets and
> cores on this host.
>
>
>
>
> On Sep 23, 2010, at 11:10 PM, Ralph Castain wrote:
>
>> You mean via an API of some kind? Not through an MPI call, but you can do it (though your code will wind up OMPI-specific). Look at the OMPI source code in opal/mca/paffinity/paffinity.h and you'll see the necessary calls as well as some macros to help parse the results.
>>
>> Depending upon what version you are using, there may also be a function in opal/mca/paffinity/base/base.h to pretty-print that info for you. I believe it may only be in the developer's trunk right now, or it may have made it into the 1.5.0 release candidate....
>>
>>
>> On Thu, Sep 23, 2010 at 11:24 AM, Fernando Saez <saezfernando_at_[hidden]> wrote:
>> Hi all, I'm new in the list. I don't know if this post has been treated before.
>>
>> My question is:
>>
>> Is there a way in the OMPI library to report which process is running
>> on which core in a SMP system? I need to know processor affinity for optimizations issues.
>>
>> Regards
>>
>> Fernando Saez
>>
>>
>>
>> _______________________________________________
>> users mailing list
>> users_at_[hidden]
>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>>
>> _______________________________________________
>> users mailing list
>> users_at_[hidden]
>> http://www.open-mpi.org/mailman/listinfo.cgi/users
>
>
> --
> Jeff Squyres
> jsquyres_at_[hidden]
> For corporate legal information go to:
> http://www.cisco.com/web/about/doing_business/legal/cri/
>
>
> _______________________________________________
> users mailing list
> users_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/users

-- 
Jeff Squyres
jsquyres_at_[hidden]
For corporate legal information go to:
http://www.cisco.com/web/about/doing_business/legal/cri/