Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |  

This web mail archive is frozen.

This page is part of a frozen web archive of this mailing list.

You can still navigate around this archive, but know that no new mails have been added to it since July of 2016.

Click here to be taken to the new web archives of this list; it includes all the mails that are in this frozen archive plus all new mails that have been sent to the list since it was migrated to the new archives.

Subject: [OMPI devel] ORTE process name and nodeid
From: Shipman, Galen M. (gshipman_at_[hidden])
Date: 2007-11-17 17:27:37

I am doing some work on Cray's CNL to support shared memory. To support
shared memory I need to know if processes are local or remote. For other
systems we simply use the modex in ompi_proc_get_info to get the proc's
nodeid. When using CNOS I don't need the modex to get a remote processes
nodeid. In fact, I can obtain every processes pid and nodeid (nid/pid) via a
single CNOS call.

I have explored a couple of ways to populate the proc structures on the
CRAY. One involves using #if's to do special things in ompi_proc_get_info. I
don't like this. The second method involves adding a CNOS nameserver and
modifying the orte_process_name_t to include the orte_nodeid_t so that the
nameserver can populate all the info if it can. Prior to this change, the
orte_nodeid_t was in ompi_proc_t, which doesn't make any sense to me, it is
an orte level concept and it is only accessible in the ompi side. I also
don't like adding orte_nodeid_t to orte_process_name_t as it really doesn't
have anything to do with the a name.. I think it makes more sense to have an
orte_proc_t.. Something like the following structure:

struct orte_process_name_t {
    orte_jobid_t jobid; /**< Job number */
    orte_vpid_t vpid; /**< Process number */
    /** "nodeid" on which the proc resides */

Struct orte_proc_t {
    opal_list_item_t super;
    orte_process_name_t proc_name;
    orte_nodeid_t nid;

struct ompi_proc_t {
    orte_proc_t base;
    ..... Etc .....

I know there is some talk about removing the process names,,, not sure how
that fits in here but this is what makes sense to me given the current
architecture. Any thoughts here?

- Galen