Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Development mailing list

Subject: Re: [OMPI devel] CARTO slot definition
From: Lenny Verkhovsky (lenny.verkhovsky_at_[hidden])
Date: 2008-07-02 03:57:17


Hi, all,
since there are no objections I will commit the patch to trunk and 1.3
branch.
see also comments below.

2008/6/29 Ralph Castain <rhc_at_[hidden]>:

> I believe this would help reduce the confusion a great deal. While the
> current carto syntax is the expected for a mathematician, computer users and
> developers have a well-established definition for the term "node" that
> conflicts with that used in carto.
>
> Some thoughts to add: in carto, do you want to create a definition for
> CORE as well as SOCKET? That way, someone could provide info down to either
> level of granularity. In our subsequent frameworks, we could assume that all
> cores in a socket have the same graph analysis unless the core was described
> separately.
>

For my best knowledge all cores on the same socket have same distance on the
graph, so I dont see any need to add more code and definitions for now.

>
>
> Likewise, you may want to support a NODE that describes connectivity
> between computing nodes. Again, one could assume that all sockets on the
> node share the same graph unless the socket was described separately – or
> perhaps allow someone to describe the graph for the socket to get to the
> edge of the node, and then let the node description handle comm between
> nodes.
>

Interesting idea, I suppose it can be implemented in the future.

>
>
> Up to you – I'm just trying to think of ways we could bring this closer to
> the topo description required in other modules elsewhere in the code to
> avoid having multiple files.
>
> Ralph
>

>
>
> On 6/29/08 7:44 AM, "Lenny Verkhovsky" <lenny.verkhovsky_at_[hidden]> wrote:
>
> Hi all,
> We have ambiquite definitions of "slot" in rankfile, hostfile and carto
> components.
> Since "slot" is well defined as a processor in the hostfile and rankfile (
> "slot" is defined as processing unit which can be processor number or
> socket:core pair ).
> I propose to change carto file syntax and make it more graph oriented. This
> won't have any effect on the code.
>
> In new carto syntax
>
> NODE will be changed to EDGE
> CONNECTION will be changed to BRANCH
> SLOT will be changed to SOCKET.
>
> Any comments are welcome.
> few words about carto can be found at
> https://svn.open-mpi.org/trac/ompi/wiki/OnHostTopologyDescription
>
> Index: opal/mca/carto/file/help-opal-carto-file.txt
> ===================================================================
> --- opal/mca/carto/file/help-opal-carto-file.txt (revision 18772)
> +++ opal/mca/carto/file/help-opal-carto-file.txt (working copy)
> @@ -27,27 +27,27 @@
> #
> [expected node type]
> -File: %s line: %d expected node type (free string). received %s
> +File: %s line: %d expected Edge type (free string). received %s
> #
> [expected node name]
> -File: %s line: %d expected Node name (free string). received %s
> +File: %s line: %d expected Edge name (free string). received %s
> #
> [expected Connection]
> -File: %s line: %d expected Node connection (node name:weight). received %s
> +File: %s line: %d expected Edge branch (edge name:weight). received %s
> #
> [expected deceleration]
> -File: %s line: %d expected Node deceleration (NODE) or connection
> deceleration (CONNECTION). received %s
> +File: %s line: %d expected Edge declaration (EDGE) or branch declaration
> (BRANCH). received %s
> #
> [incorrect connection]
> -File: %s line: %d - %s - incorrect connection
> +File: %s line: %d - %s - incorrect branch
> #
> [vertex not found]
> -File: %s line: %d - Node %s is not in the graph
> +File: %s line: %d - Edge %s is not in the graph
> #
> [unknown token]
> Index: opal/mca/carto/file/carto_file_lex.l
> ===================================================================
> --- opal/mca/carto/file/carto_file_lex.l (revision 18772)
> +++ opal/mca/carto/file/carto_file_lex.l (working copy)
> @@ -80,13 +80,13 @@
>
> -NODE { carto_file_value.sval = yytext;
> +EDGE { carto_file_value.sval = yytext;
> return OPAL_CARTO_FILE_NODE_DECELERATION; }
> -CONNECTION { carto_file_value.sval = yytext;
> +BRANCH { carto_file_value.sval = yytext;
> return OPAL_CARTO_FILE_CONNECTION_DECELERATION; }
> -CON_BI_DIR { carto_file_value.sval = yytext;
> +BRANCH_BI_DIR { carto_file_value.sval = yytext;
> return OPAL_CARTO_FILE_BIDIRECTION_CONNECTION; }
> [0-9] { carto_file_value.ival = atol(yytext);
> Index: opal/mca/carto/file/carto_file.h
> ===================================================================
> --- opal/mca/carto/file/carto_file.h (revision 18772)
> +++ opal/mca/carto/file/carto_file.h (working copy)
> @@ -21,49 +21,49 @@
> /**
> * @file#this is a comment
> # Node declaration Node type (Free string) Node name (Free string)
> -# (Reserve word) (slot is a reserve word (free string)
> -# for CPU slot)
> +# (Reserve word) (socket is a reserve word (free string)
> +# for CPU socket)
> #=======================================================================
> - NODE Memory mem0
> - NODE Memory mem1
> - NODE Memory mem2
> - NODE Memory mem3
> + EDGE Memory mem0
> + EDGE Memory mem1
> + EDGE Memory mem2
> + EDGE Memory mem3
> #
> - NODE slot slot0
> - NODE slot slot1
> - NODE slot slot2
> - NODE slot slot3
> + EDGE socket socket0
> + EDGE socket socket1
> + EDGE socket socket2
> + EDGE socket socket3
> #
> - NODE Infiniband mthca0
> - NODE Infiniband mthca1
> + EDGE Infiniband mthca0
> + EDGE Infiniband mthca1
> #
> - NODE Ethernet eth0
> - NODE Ethernet eth1
> + EDGE Ethernet eth0
> + EDGE Ethernet eth1
> #
> #
> # Connection decleration From node To node:weight To node:weight
> ......
> # (Reserve word) (declered (declered (declered
> # above) above) above)
>
> #===============================================================================================
> - CONNECTION mem0 slot0:0
> - CONNECTION mem3 slot3:0
> + BRANCH mem0 socket0:0
> + BRANCH mem3 socket3:0
> #
> - CONNECTION slot0 mem0:0 slot1:1
> slot2:1 mthca0:1 eth0:1
> - CONNECTION slot1 slot0:1 slot3:1
> - CONNECTION slot2 slot1:1 slot3:1
> - CONNECTION slot3 mem3:0 slot1:1
> slot2:1 mthca1:1 eth1:1
> + BRANCH socket0 mem0:0 socket1:1
> socket2:1 mthca0:1 eth0:1
> + BRANCH socket1 socket0:1 socket3:1
> + BRANCH socket2 socket1:1 socket3:1
> + BRANCH socket3 mem3:0 socket1:1
> socket2:1 mthca1:1 eth1:1
> #
> #
> - CONNECTION mthca0 slot0:1
> - CONNECTION mthca1 slot3:1
> + BRANCH mthca0 socket0:1
> + BRANCH mthca1 socket3:1
> #
> - CONNECTION eth0 slot0:1
> - CONNECTION eth1 slot3:1
> + BRANCH eth0 socket0:1
> + BRANCH eth1 socket3:1
> #Bi-Directional connection
> #
> - CON_BI_DIR slot1 mem1:0
> - CON_BI_DIR slot2 mem2:0
> + BRANCH_BI_DIR socket1 mem1:0
> + BRANCH_BI_DIR socket2 mem2:0
> #
> # end of carto file.
> Index: opal/mca/carto/file/carto_file_module.c
> ===================================================================
> --- opal/mca/carto/file/carto_file_module.c (revision 18772)
> +++ opal/mca/carto/file/carto_file_module.c (working copy)
> @@ -171,7 +171,7 @@
> case OPAL_CARTO_FILE_NAME:
> node = (opal_carto_base_node_t
> *)malloc(sizeof(opal_carto_base_node_t));
> node->node_type = strdup(carto_file_value.sval);
> - if (0 == strcmp("slot",node->node_type)) {
> + if (0 == strcmp("socket",node->node_type)) {
> node->is_cpu = true;
> }
> else {
>
>
>
> ------------------------------
> _______________________________________________
> devel mailing list
> devel_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/devel
>
>
>
> _______________________________________________
> devel mailing list
> devel_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/devel
>