Re: [OMPI devel] [OMPI commits] Git: open-mpi/ompi branch master updated. dev-102-gc9c5d40

2014-10-15 Thread Gilles Gouaillardet
OK, revert done :

commit b5aea782cec116af095a7e7a7310e9e2a018
Author: Gilles Gouaillardet 
List-Post: devel@lists.open-mpi.org
Date:   Thu Oct 16 12:24:38 2014 +0900

Revert "Fix heterogeneous support"

Per the discussion at
http://www.open-mpi.org/community/lists/devel/2014/10/16050.php

This reverts commit c9c5d4011bf6ea1ade1a5bd9b6a77f02157dc774.


Cheers,

Gilles

On 2014/10/16 12:13, Ralph Castain wrote:
> On Oct 15, 2014, at 8:08 PM, Gilles Gouaillardet 
>  wrote:
>
>> Ralph,
>>
>> let me quickly reply about this one :
>>
>> On 2014/10/16 12:00, Ralph Castain wrote:
>>> I also don't understand some of the changes in this commit. For example, 
>>> why did you replace the OPAL_MODEX_SEND_STRING macro with essentially a 
>>> hard-coded replica of that macro?
>> OPAL_MODEX_SEND_STRING put a key of type OPAL_BYTE_OBJECT
>>
>> in ompi_proc_complete_init:
>>OPAL_MODEX_RECV_VALUE(ret, OPAL_DSTORE_ARCH,
>> (opal_proc_t*)&proc->super,
>>  (void**)&ui32ptr, OPAL_UINT32);
>>
>> a key of type OPAL_UINT32 is expected, and an key of type
>> OPAL_BYTE_OBJECT was sent
>>
>> i chose to "fix" the sender (e.g. send a key of type OPAL_UINT32)
>>
>> should i have "fixed" the receiver instead ?
> Hmmm...probably the receiver, but let me take a look at it. The two should 
> have mirrored each other, which is why I couldn't understand the change. The 
> problem may be that the recv should be recv_string, but I need to look at the 
> two macros and see why the mirrors weren't used.
>
>>> Would you mind reverting this until we can better understand what is going 
>>> on, and decide on a path forward?
>> no problem
>> based on my previous comment, shall i also revert the change in
>> ompi/proc/proc.c as well ?
> I'd revert the commit as a whole. Let's look at the hetero issue in its 
> entirety and figure out how we want to handle it.
>
> Thanks
> Ralph
>
>> Cheers,
>>
>> Gilles
>>
>> ___
>> devel mailing list
>> de...@open-mpi.org
>> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel
>> Link to this post: 
>> http://www.open-mpi.org/community/lists/devel/2014/10/16049.php
> ___
> devel mailing list
> de...@open-mpi.org
> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel
> Link to this post: 
> http://www.open-mpi.org/community/lists/devel/2014/10/16050.php



Re: [OMPI devel] [OMPI commits] Git: open-mpi/ompi branch master updated. dev-102-gc9c5d40

2014-10-15 Thread Ralph Castain

On Oct 15, 2014, at 8:08 PM, Gilles Gouaillardet 
 wrote:

> Ralph,
> 
> let me quickly reply about this one :
> 
> On 2014/10/16 12:00, Ralph Castain wrote:
>> I also don't understand some of the changes in this commit. For example, why 
>> did you replace the OPAL_MODEX_SEND_STRING macro with essentially a 
>> hard-coded replica of that macro?
> OPAL_MODEX_SEND_STRING put a key of type OPAL_BYTE_OBJECT
> 
> in ompi_proc_complete_init:
>OPAL_MODEX_RECV_VALUE(ret, OPAL_DSTORE_ARCH,
> (opal_proc_t*)&proc->super,
>  (void**)&ui32ptr, OPAL_UINT32);
> 
> a key of type OPAL_UINT32 is expected, and an key of type
> OPAL_BYTE_OBJECT was sent
> 
> i chose to "fix" the sender (e.g. send a key of type OPAL_UINT32)
> 
> should i have "fixed" the receiver instead ?

Hmmm...probably the receiver, but let me take a look at it. The two should have 
mirrored each other, which is why I couldn't understand the change. The problem 
may be that the recv should be recv_string, but I need to look at the two 
macros and see why the mirrors weren't used.

>> Would you mind reverting this until we can better understand what is going 
>> on, and decide on a path forward?
> no problem
> based on my previous comment, shall i also revert the change in
> ompi/proc/proc.c as well ?

I'd revert the commit as a whole. Let's look at the hetero issue in its 
entirety and figure out how we want to handle it.

Thanks
Ralph

> 
> Cheers,
> 
> Gilles
> 
> ___
> devel mailing list
> de...@open-mpi.org
> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel
> Link to this post: 
> http://www.open-mpi.org/community/lists/devel/2014/10/16049.php



Re: [OMPI devel] [OMPI commits] Git: open-mpi/ompi branch master updated. dev-102-gc9c5d40

2014-10-15 Thread Gilles Gouaillardet
Ralph,

let me quickly reply about this one :

On 2014/10/16 12:00, Ralph Castain wrote:
> I also don't understand some of the changes in this commit. For example, why 
> did you replace the OPAL_MODEX_SEND_STRING macro with essentially a 
> hard-coded replica of that macro?
OPAL_MODEX_SEND_STRING put a key of type OPAL_BYTE_OBJECT

in ompi_proc_complete_init:
OPAL_MODEX_RECV_VALUE(ret, OPAL_DSTORE_ARCH,
(opal_proc_t*)&proc->super,
  (void**)&ui32ptr, OPAL_UINT32);

a key of type OPAL_UINT32 is expected, and an key of type
OPAL_BYTE_OBJECT was sent

i chose to "fix" the sender (e.g. send a key of type OPAL_UINT32)

should i have "fixed" the receiver instead ?
> Would you mind reverting this until we can better understand what is going 
> on, and decide on a path forward?
no problem
based on my previous comment, shall i also revert the change in
ompi/proc/proc.c as well ?

Cheers,

Gilles



Re: [OMPI devel] [OMPI commits] Git: open-mpi/ompi branch master updated. dev-102-gc9c5d40

2014-10-15 Thread Ralph Castain

On Oct 15, 2014, at 6:21 PM, Gilles Gouaillardet 
 wrote:

> Hi Ralph,
> 
> i am sorry i should have asked before pushing this to the master.
> 
> the master was broken in heterogeneous mode and i took the fastest path to 
> move it to a working state.
> (please note that this commit fixes ompi/proc/proc.c and this is independent 
> of how opal_process_name_t vs orte_process_name_t
> are handled)

Understood - but the trunk has been broken in hetero mode for a long time. This 
fixes one piece of that problem, but others remain (at least, last I heard). So 
there's no rush to do this right away.

> 
> the latest email i read about this was my post in the devel ML
> http://www.open-mpi.org/community/lists/devel/2014/08/15532.php
> if i remember correctly, this topic was also discussed in the weekly call 
> (and i could not attend it)

Yes - and we agreed that we weren't sure of the best path forward, so we were 
tabling it for now.

> 
> if it is finally decided to take the second option, i am afraid it could be a 
> bit trickier than what i anticipated :
> heterogeneous.v2.patch + extra steps to introduce OPAL_PROCESS_NAME dss type
> (opal_process_name_t cannot be packed/unpacked as 
> opal_identifier_t/OPAL_UINT64 any more)

Could take a few more steps, but it may prove necessary. What we are having to 
do right now is superimpose the jobid/vpid structure on the opal_identifier_t 
anyway during startup as the RMs out there all provide a jobid and vpid. So we 
have no choice but to pack it into the identifier, which means we have multiple 
places where we have to overlay the opal_identifier_t.

This creates its own issues. :-/

I also don't understand some of the changes in this commit. For example, why 
did you replace the OPAL_MODEX_SEND_STRING macro with essentially a hard-coded 
replica of that macro?

Would you mind reverting this until we can better understand what is going on, 
and decide on a path forward?


> 
> i can make a proof of concept in a branch of my repository if this helps
> 
> Cheers,
> 
> Gilles
> 
> On 2014/10/15 23:08, Ralph Castain wrote:
>> Hi Gilles
>> 
>> I'm surprised this came into the trunk - last I saw, we hadn't fully decided 
>> which approach we wanted to pursue. Did I miss some discussion?
>> 
>> Due to some other issues, we had been leaning more towards the other 
>> alternative - i.e., adding structure to the opal identifier struct. Is there 
>> some reason why you chose this alternative?
>> 
>> 
>> Begin forwarded message:
>> 
>>> From: git...@crest.iu.edu
>>> Subject: [OMPI commits] Git: open-mpi/ompi branch master updated. 
>>> dev-102-gc9c5d40
>>> Date: October 15, 2014 at 3:50:43 AM PDT
>>> To: ompi-comm...@open-mpi.org
>>> Reply-To: de...@open-mpi.org
>>> 
>>> This is an automated email from the git hooks/post-receive script. It was
>>> generated because a ref change was pushed to the repository containing
>>> the project "open-mpi/ompi".
>>> 
>>> The branch, master has been updated
>>>   via  c9c5d4011bf6ea1ade1a5bd9b6a77f02157dc774 (commit)
>>>  from  5c81658d58e260170c995030ac17e42a4032e2dd (commit)
>>> 
>>> Those revisions listed above that are new to this repository have
>>> not appeared on any other notification email; so we list those
>>> revisions in full, below.
>>> 
>>> - Log -
>>> https://github.com/open-mpi/ompi/commit/c9c5d4011bf6ea1ade1a5bd9b6a77f02157dc774
>>> 
>>> commit c9c5d4011bf6ea1ade1a5bd9b6a77f02157dc774
>>> Author: Gilles Gouaillardet 
>>> Date:   Wed Oct 15 17:19:13 2014 +0900
>>> 
>>>Fix heterogeneous support
>>> 
>>>* redefine orte_process_name_t so it can be converted
>>>  between host and network format as an opal_identifier_t
>>>  aka uint64_t by the OPAL layer.
>>>* correctly send OPAL_DSTORE_ARCH key
>>> 
>>> diff --git a/ompi/proc/proc.c b/ompi/proc/proc.c
>>> index d30182f..12b781e 100644
>>> --- a/ompi/proc/proc.c
>>> +++ b/ompi/proc/proc.c
>>> @@ -107,6 +107,7 @@ int ompi_proc_init(void)
>>> OMPI_CAST_RTE_NAME(&proc->super.proc_name)->vpid = i;
>>> 
>>> if (i == OMPI_PROC_MY_NAME->vpid) {
>>> +opal_value_t kv;
>>> ompi_proc_local_proc = proc;
>>> proc->super.proc_flags = OPAL_PROC_ALL_LOCAL;
>>> proc->super.proc_hostname = strdup(ompi_process_info.nodename);
>>> @@ -115,8 +116,13 @@ int ompi_proc_init(void)
>>> opal_proc_local_set(&proc->super);
>>> #if OPAL_ENABLE_HETEROGENEOUS_SUPPORT
>>> /* add our arch to the modex */
>>> -OPAL_MODEX_SEND_STRING(ret, PMIX_SYNC_REQD, PMIX_REMOTE, 
>>> OPAL_DSTORE_ARCH,
>>> -   &proc->super.proc_arch, OPAL_UINT32);
>>> +OBJ_CONSTRUCT(&kv, opal_value_t);
>>> +kv.key = strdup(OPAL_DSTORE_ARCH);
>>> +kv.type = OPAL_UINT32;
>>> +kv.data.uint32 = opal_local_arch;
>>> +ret = opal_pmix.put(PMIX_REMOTE, &kv);
>>> +   

Re: [OMPI devel] Fwd: [OMPI commits] Git: open-mpi/ompi branch master updated. dev-102-gc9c5d40

2014-10-15 Thread Gilles Gouaillardet
Hi Ralph,

i am sorry i should have asked before pushing this to the master.

the master was broken in heterogeneous mode and i took the fastest path
to move it to a working state.
(please note that this commit fixes ompi/proc/proc.c and this is
independent of how opal_process_name_t vs orte_process_name_t
are handled)

the latest email i read about this was my post in the devel ML
http://www.open-mpi.org/community/lists/devel/2014/08/15532.php
if i remember correctly, this topic was also discussed in the weekly
call (and i could not attend it)

if it is finally decided to take the second option, i am afraid it could
be a bit trickier than what i anticipated :
heterogeneous.v2.patch + extra steps to introduce OPAL_PROCESS_NAME dss type
(opal_process_name_t cannot be packed/unpacked as
opal_identifier_t/OPAL_UINT64 any more)

i can make a proof of concept in a branch of my repository if this helps

Cheers,

Gilles

On 2014/10/15 23:08, Ralph Castain wrote:
> Hi Gilles
>
> I'm surprised this came into the trunk - last I saw, we hadn't fully decided 
> which approach we wanted to pursue. Did I miss some discussion?
>
> Due to some other issues, we had been leaning more towards the other 
> alternative - i.e., adding structure to the opal identifier struct. Is there 
> some reason why you chose this alternative?
>
>
> Begin forwarded message:
>
>> From: git...@crest.iu.edu
>> Subject: [OMPI commits] Git: open-mpi/ompi branch master updated. 
>> dev-102-gc9c5d40
>> Date: October 15, 2014 at 3:50:43 AM PDT
>> To: ompi-comm...@open-mpi.org
>> Reply-To: de...@open-mpi.org
>>
>> This is an automated email from the git hooks/post-receive script. It was
>> generated because a ref change was pushed to the repository containing
>> the project "open-mpi/ompi".
>>
>> The branch, master has been updated
>>   via  c9c5d4011bf6ea1ade1a5bd9b6a77f02157dc774 (commit)
>>  from  5c81658d58e260170c995030ac17e42a4032e2dd (commit)
>>
>> Those revisions listed above that are new to this repository have
>> not appeared on any other notification email; so we list those
>> revisions in full, below.
>>
>> - Log -
>> https://github.com/open-mpi/ompi/commit/c9c5d4011bf6ea1ade1a5bd9b6a77f02157dc774
>>
>> commit c9c5d4011bf6ea1ade1a5bd9b6a77f02157dc774
>> Author: Gilles Gouaillardet 
>> Date:   Wed Oct 15 17:19:13 2014 +0900
>>
>>Fix heterogeneous support
>>
>>* redefine orte_process_name_t so it can be converted
>>  between host and network format as an opal_identifier_t
>>  aka uint64_t by the OPAL layer.
>>* correctly send OPAL_DSTORE_ARCH key
>>
>> diff --git a/ompi/proc/proc.c b/ompi/proc/proc.c
>> index d30182f..12b781e 100644
>> --- a/ompi/proc/proc.c
>> +++ b/ompi/proc/proc.c
>> @@ -107,6 +107,7 @@ int ompi_proc_init(void)
>> OMPI_CAST_RTE_NAME(&proc->super.proc_name)->vpid = i;
>>
>> if (i == OMPI_PROC_MY_NAME->vpid) {
>> +opal_value_t kv;
>> ompi_proc_local_proc = proc;
>> proc->super.proc_flags = OPAL_PROC_ALL_LOCAL;
>> proc->super.proc_hostname = strdup(ompi_process_info.nodename);
>> @@ -115,8 +116,13 @@ int ompi_proc_init(void)
>> opal_proc_local_set(&proc->super);
>> #if OPAL_ENABLE_HETEROGENEOUS_SUPPORT
>> /* add our arch to the modex */
>> -OPAL_MODEX_SEND_STRING(ret, PMIX_SYNC_REQD, PMIX_REMOTE, 
>> OPAL_DSTORE_ARCH,
>> -   &proc->super.proc_arch, OPAL_UINT32);
>> +OBJ_CONSTRUCT(&kv, opal_value_t);
>> +kv.key = strdup(OPAL_DSTORE_ARCH);
>> +kv.type = OPAL_UINT32;
>> +kv.data.uint32 = opal_local_arch;
>> +ret = opal_pmix.put(PMIX_REMOTE, &kv);
>> +OBJ_DESTRUCT(&kv);
>> +
>> if (OPAL_SUCCESS != ret) {
>> return ret;
>> }
>> diff --git a/opal/util/proc.h b/opal/util/proc.h
>> index 8a52a08..db5cfbc 100644
>> --- a/opal/util/proc.h
>> +++ b/opal/util/proc.h
>> @@ -23,7 +23,7 @@
>> #include "opal/dss/dss.h"
>>
>> #if OPAL_ENABLE_HETEROGENEOUS_SUPPORT
>> -#include 
>> +#include "opal/types.h"
>> #endif
>>
>> /**
>> @@ -37,22 +37,11 @@
>> typedef opal_identifier_t opal_process_name_t;
>>
>> #if OPAL_ENABLE_HETEROGENEOUS_SUPPORT && !defined(WORDS_BIGENDIAN)
>> -#define OPAL_PROCESS_NAME_NTOH(guid) opal_process_name_ntoh_intr(&(guid))
>> -static inline __opal_attribute_always_inline__ void
>> -opal_process_name_ntoh_intr(opal_process_name_t *name)
>> -{
>> -uint32_t * w = (uint32_t *)name;
>> -w[0] = ntohl(w[0]);
>> -w[1] = ntohl(w[1]);
>> -}
>> -#define OPAL_PROCESS_NAME_HTON(guid) opal_process_name_hton_intr(&(guid))
>> -static inline __opal_attribute_always_inline__ void
>> -opal_process_name_hton_intr(opal_process_name_t *name)
>> -{
>> -uint32_t * w = (uint32_t *)name;
>> -w[0] = htonl(w[0]);
>> -w[1] = htonl(w[1]);
>> -}
>> +#define OPAL_PROCESS_NAME_NTOH(guid) \
>> +g

[OMPI devel] Slurm direct-launch is broken on trunk

2014-10-15 Thread Ralph Castain
When attempting to launch via srun:

[bend001:03708] pmix: get all keys for proc 327680 in KVS 5.0
[bend001:03708] GETTING KEY 327680-key0
[bend001:03708] Read data 
AcG1peC5obmFtZQAwMwAwMDA4AGJlbmQwMDEAcG1peC5scmFuawAwZAAwMDAycG1peC5ucmFuawAwZAAwMA
  -
[bend001:03708] UNSUPPORTED TYPE 0
[bend001:03708] OPAL ERROR: Error in file pmix_s1.c at line 458
[bend001:03709] [[5,0],2] pmix:s1 barrier complete
[bend001:03709] pmix: get all keys for proc 327680 in KVS 5.0
[bend001:03709] GETTING KEY 327680-key0
[bend001:03709] Read data 
AcG1peC5obmFtZQAwMwAwMDA4AGJlbmQwMDEAcG1peC5scmFuawAwZAAwMDAycG1peC5ucmFuawAwZAAwMA
  -
[bend001:03709] UNSUPPORTED TYPE 0
[bend001:03709] OPAL ERROR: Error in file pmix_s1.c at line 458
[bend001:03708] [[5,0],1] pmix:s1 called get for key pmix.hname
[bend001:03708] pmix: get all keys for proc 327680 in KVS 5.0
[bend001:03708] GETTING KEY 327680-key0
[bend001:03708] Read data 
AcG1peC5obmFtZQAwMwAwMDA4AGJlbmQwMDEAcG1peC5scmFuawAwZAAwMDAycG1peC5ucmFuawAwZAAwMA
  -
[bend001:03708] UNSUPPORTED TYPE 0
[bend001:03708] [[5,0],1] pmix:s1 got key pmix.hname


Looks like someone broke the common code for decoding keys. Could you please 
fix it?
Ralph



[OMPI devel] Fwd: [OMPI commits] Git: open-mpi/ompi branch master updated. dev-102-gc9c5d40

2014-10-15 Thread Ralph Castain
Hi Gilles

I'm surprised this came into the trunk - last I saw, we hadn't fully decided 
which approach we wanted to pursue. Did I miss some discussion?

Due to some other issues, we had been leaning more towards the other 
alternative - i.e., adding structure to the opal identifier struct. Is there 
some reason why you chose this alternative?


Begin forwarded message:

> From: git...@crest.iu.edu
> Subject: [OMPI commits] Git: open-mpi/ompi branch master updated. 
> dev-102-gc9c5d40
> Date: October 15, 2014 at 3:50:43 AM PDT
> To: ompi-comm...@open-mpi.org
> Reply-To: de...@open-mpi.org
> 
> This is an automated email from the git hooks/post-receive script. It was
> generated because a ref change was pushed to the repository containing
> the project "open-mpi/ompi".
> 
> The branch, master has been updated
>   via  c9c5d4011bf6ea1ade1a5bd9b6a77f02157dc774 (commit)
>  from  5c81658d58e260170c995030ac17e42a4032e2dd (commit)
> 
> Those revisions listed above that are new to this repository have
> not appeared on any other notification email; so we list those
> revisions in full, below.
> 
> - Log -
> https://github.com/open-mpi/ompi/commit/c9c5d4011bf6ea1ade1a5bd9b6a77f02157dc774
> 
> commit c9c5d4011bf6ea1ade1a5bd9b6a77f02157dc774
> Author: Gilles Gouaillardet 
> Date:   Wed Oct 15 17:19:13 2014 +0900
> 
>Fix heterogeneous support
> 
>* redefine orte_process_name_t so it can be converted
>  between host and network format as an opal_identifier_t
>  aka uint64_t by the OPAL layer.
>* correctly send OPAL_DSTORE_ARCH key
> 
> diff --git a/ompi/proc/proc.c b/ompi/proc/proc.c
> index d30182f..12b781e 100644
> --- a/ompi/proc/proc.c
> +++ b/ompi/proc/proc.c
> @@ -107,6 +107,7 @@ int ompi_proc_init(void)
> OMPI_CAST_RTE_NAME(&proc->super.proc_name)->vpid = i;
> 
> if (i == OMPI_PROC_MY_NAME->vpid) {
> +opal_value_t kv;
> ompi_proc_local_proc = proc;
> proc->super.proc_flags = OPAL_PROC_ALL_LOCAL;
> proc->super.proc_hostname = strdup(ompi_process_info.nodename);
> @@ -115,8 +116,13 @@ int ompi_proc_init(void)
> opal_proc_local_set(&proc->super);
> #if OPAL_ENABLE_HETEROGENEOUS_SUPPORT
> /* add our arch to the modex */
> -OPAL_MODEX_SEND_STRING(ret, PMIX_SYNC_REQD, PMIX_REMOTE, 
> OPAL_DSTORE_ARCH,
> -   &proc->super.proc_arch, OPAL_UINT32);
> +OBJ_CONSTRUCT(&kv, opal_value_t);
> +kv.key = strdup(OPAL_DSTORE_ARCH);
> +kv.type = OPAL_UINT32;
> +kv.data.uint32 = opal_local_arch;
> +ret = opal_pmix.put(PMIX_REMOTE, &kv);
> +OBJ_DESTRUCT(&kv);
> +
> if (OPAL_SUCCESS != ret) {
> return ret;
> }
> diff --git a/opal/util/proc.h b/opal/util/proc.h
> index 8a52a08..db5cfbc 100644
> --- a/opal/util/proc.h
> +++ b/opal/util/proc.h
> @@ -23,7 +23,7 @@
> #include "opal/dss/dss.h"
> 
> #if OPAL_ENABLE_HETEROGENEOUS_SUPPORT
> -#include 
> +#include "opal/types.h"
> #endif
> 
> /**
> @@ -37,22 +37,11 @@
> typedef opal_identifier_t opal_process_name_t;
> 
> #if OPAL_ENABLE_HETEROGENEOUS_SUPPORT && !defined(WORDS_BIGENDIAN)
> -#define OPAL_PROCESS_NAME_NTOH(guid) opal_process_name_ntoh_intr(&(guid))
> -static inline __opal_attribute_always_inline__ void
> -opal_process_name_ntoh_intr(opal_process_name_t *name)
> -{
> -uint32_t * w = (uint32_t *)name;
> -w[0] = ntohl(w[0]);
> -w[1] = ntohl(w[1]);
> -}
> -#define OPAL_PROCESS_NAME_HTON(guid) opal_process_name_hton_intr(&(guid))
> -static inline __opal_attribute_always_inline__ void
> -opal_process_name_hton_intr(opal_process_name_t *name)
> -{
> -uint32_t * w = (uint32_t *)name;
> -w[0] = htonl(w[0]);
> -w[1] = htonl(w[1]);
> -}
> +#define OPAL_PROCESS_NAME_NTOH(guid) \
> +guid = ntoh64(guid)
> +
> +#define OPAL_PROCESS_NAME_HTON(guid) \
> +guid = hton64(guid)
> #else
> #define OPAL_PROCESS_NAME_NTOH(guid)
> #define OPAL_PROCESS_NAME_HTON(guid)
> diff --git a/orte/include/orte/types.h b/orte/include/orte/types.h
> index c9ae320..f14b527 100644
> --- a/orte/include/orte/types.h
> +++ b/orte/include/orte/types.h
> @@ -10,6 +10,8 @@
>  * Copyright (c) 2004-2005 The Regents of the University of California.
>  * All rights reserved.
>  * Copyright (c) 2014  Intel, Inc. All rights reserved.
> + * Copyright (c) 2014  Research Organization for Information Science
> + * and Technology (RIST). All rights reserved.
>  * $COPYRIGHT$
>  *
>  * Additional copyrights may follow
> @@ -83,17 +85,17 @@ typedef uint32_t orte_vpid_t;
> #define ORTE_VPID_MAX   UINT32_MAX-2
> #define ORTE_VPID_MIN   0
> 
> -#define ORTE_PROCESS_NAME_HTON(n)   \
> -do {\
> -n.jobid = htonl(n.jobid);   \
> -n.vpid = htonl(n.vpid); \
>

[OMPI devel] Missing f08 binding for Win_allocate

2014-10-15 Thread Christoph Niethammer
Hello,

The f08 binding for Win_allocate is missing in master and 1.8 series.
I fixed the problem based on master. The attached patch also works for 1.8.3.

I found some documentation in the wiki but I am not sure if this is intended 
for small fixes like this as well.
How shall I proceed to get this into master after the svn->git transition?
* Open a bug first
* fork + pull request or 
* email patch from git format-patch to devel list?

Best regards
Christoph Niethammer


--

Christoph Niethammer
High Performance Computing Center Stuttgart (HLRS)
Nobelstrasse 19
70569 Stuttgart

Tel: ++49(0)711-685-87203
email: nietham...@hlrs.de
http://www.hlrs.de/people/niethammerFrom 7b81fe5584ddc675aca7a09a7f59b5658254318f Mon Sep 17 00:00:00 2001
From: Christoph Niethammer 
Date: Wed, 15 Oct 2014 15:56:56 +0200
Subject: [PATCH] Add missing Fortran binding for Win_allocate.

---
 ompi/mpi/fortran/mpif-h/Makefile.am|   1 +
 ompi/mpi/fortran/mpif-h/profile/Makefile.am|   1 +
 ompi/mpi/fortran/mpif-h/profile/defines.h  |   2 +
 ompi/mpi/fortran/mpif-h/prototypes_mpi.h   |   2 +
 ompi/mpi/fortran/mpif-h/win_allocate_f.c   | 137 +
 ompi/mpi/fortran/use-mpi-f08/Makefile.am   |   2 +
 .../fortran/use-mpi-f08/mpi-f-interfaces-bind.h|  13 ++
 .../mpi/fortran/use-mpi-f08/mpi-f08-interfaces.F90 |  17 ++-
 .../fortran/use-mpi-f08/pmpi-f-interfaces-bind.h   |  13 ++
 .../use-mpi-f08/profile/pwin_allocate_f08.F90  |  28 +
 ompi/mpi/fortran/use-mpi-f08/win_allocate_f08.F90  |  28 +
 .../mpi-ignore-tkr-interfaces.h.in |  26 
 .../use-mpi-tkr/mpi-f90-cptr-interfaces.F90|  29 +
 13 files changed, 298 insertions(+), 1 deletion(-)
 create mode 100644 ompi/mpi/fortran/mpif-h/win_allocate_f.c
 create mode 100644 ompi/mpi/fortran/use-mpi-f08/profile/pwin_allocate_f08.F90
 create mode 100644 ompi/mpi/fortran/use-mpi-f08/win_allocate_f08.F90

diff --git a/ompi/mpi/fortran/mpif-h/Makefile.am b/ompi/mpi/fortran/mpif-h/Makefile.am
index b727329..f254975 100644
--- a/ompi/mpi/fortran/mpif-h/Makefile.am
+++ b/ompi/mpi/fortran/mpif-h/Makefile.am
@@ -386,6 +386,7 @@ libmpi_mpifh_la_SOURCES += \
 rput_f.c \
 compare_and_swap_f.c \
 fetch_and_op_f.c \
+win_allocate_f.c \
 win_allocate_shared_f.c \
 win_call_errhandler_f.c \
 win_complete_f.c \
diff --git a/ompi/mpi/fortran/mpif-h/profile/Makefile.am b/ompi/mpi/fortran/mpif-h/profile/Makefile.am
index 793c45c..66712df 100644
--- a/ompi/mpi/fortran/mpif-h/profile/Makefile.am
+++ b/ompi/mpi/fortran/mpif-h/profile/Makefile.am
@@ -314,6 +314,7 @@ linked_files = \
 prput_f.c \
 pcompare_and_swap_f.c \
 pfetch_and_op_f.c \
+pwin_allocate_f.c \
 pwin_allocate_shared_f.c \
 pwin_call_errhandler_f.c \
 pwin_complete_f.c \
diff --git a/ompi/mpi/fortran/mpif-h/profile/defines.h b/ompi/mpi/fortran/mpif-h/profile/defines.h
index 43b21b7..94fd9e4 100644
--- a/ompi/mpi/fortran/mpif-h/profile/defines.h
+++ b/ompi/mpi/fortran/mpif-h/profile/defines.h
@@ -344,6 +344,8 @@
 #define ompi_waitany_f pompi_waitany_f
 #define ompi_wait_f pompi_wait_f
 #define ompi_waitsome_f pompi_waitsome_f
+#define ompi_win_allocate_f pompi_win_allocate_f
+#define ompi_win_allocate_cptr_f pompi_win_allocate_cptr_f
 #define ompi_win_allocate_shared_f pompi_win_allocate_shared_f
 #define ompi_win_allocate_shared_cptr_f pompi_win_allocate_shared_cptr_f
 #define ompi_win_call_errhandler_f pompi_win_call_errhandler_f
diff --git a/ompi/mpi/fortran/mpif-h/prototypes_mpi.h b/ompi/mpi/fortran/mpif-h/prototypes_mpi.h
index f3115c3..b8ac7da 100644
--- a/ompi/mpi/fortran/mpif-h/prototypes_mpi.h
+++ b/ompi/mpi/fortran/mpif-h/prototypes_mpi.h
@@ -401,6 +401,8 @@ PN2(void, MPI_Waitall, mpi_waitall, MPI_WAITALL, (MPI_Fint *count, MPI_Fint *arr
 PN2(void, MPI_Waitany, mpi_waitany, MPI_WAITANY, (MPI_Fint *count, MPI_Fint *array_of_requests, MPI_Fint *index, MPI_Fint *status, MPI_Fint *ierr));
 PN2(void, MPI_Wait, mpi_wait, MPI_WAIT, (MPI_Fint *request, MPI_Fint *status, MPI_Fint *ierr));
 PN2(void, MPI_Waitsome, mpi_waitsome, MPI_WAITSOME, (MPI_Fint *incount, MPI_Fint *array_of_requests, MPI_Fint *outcount, MPI_Fint *array_of_indices, MPI_Fint *array_of_statuses, MPI_Fint *ierr));
+PN2(void, MPI_Win_allocate, mpi_win_allocate, MPI_WIN_ALLOCATE, (MPI_Aint *size, MPI_Fint *disp_unit, MPI_Fint *info, MPI_Fint *comm, char *baseptr, MPI_Fint *win, MPI_Fint *ierr));
+PN2(void, MPI_Win_allocate_cptr, mpi_win_allocate_cptr, MPI_WIN_ALLOCATE_CPTR, (MPI_Aint *size, MPI_Fint *disp_unit, MPI_Fint *info, MPI_Fint *comm, char *baseptr, MPI_Fint *win, MPI_Fint *ierr));
 PN2(void, MPI_Win_allocate_shared, mpi_win_allocate_shared, MPI_WIN_ALLOCATE_SHARED, (MPI_Aint *size, MPI_Fint *disp_unit, MPI_Fint *info, MPI_Fint *comm, char *baseptr, MPI_Fint *win, MPI_Fint *ierr));
 PN2(void, MPI_Win_allocate_shared_cptr, mpi_win_allocate_shared_cptr, MPI