Thanks Ralph,

I will implement the second option.
conversion from sentinel to process name will require a few extra steps,
but that should not be in the critical path.

Cheers,

Gilles

On Saturday, February 6, 2016, Ralph Castain <r...@open-mpi.org> wrote:

> There are two potential places you could use:
>
> * the vpid itself is 32-bits in size - we are quite some years away from
> needing all of them, so taking the upper-most bit for this purpose should
> be okay
>
> * the lower 16-bits of the jobid is the local jobid - i.e., the number of
> times someone called “comm_spawn”. The code for recycling those has gone a
> tad stale, but it wouldn’t be hard to recover it. I doubt someone will call
> comm_spawn more than 2^15 times without at least one of those completing so
> we can reuse the jobid, and so it should be safe to take the upper bit of
> that field.
>
> Frankly, I thought the second option was what Nathan had intended, so I’m
> surprised to see us masking at the 64-bit level. This touches the mpirun
> part of the jobid (the upper 16-bits), which is a hash based on the
> hostname and OS pid. Stripping a bit from that is risky and I definitely
> wouldn’t advise it.
>
>
> On Feb 5, 2016, at 7:48 PM, Gilles Gouaillardet <
> gilles.gouaillar...@gmail.com
> <javascript:_e(%7B%7D,'cvml','gilles.gouaillar...@gmail.com');>> wrote:
>
> Thanks George,
>
> I will definitely try that !
>
> back to the initial question, has someone any thoughts on which bit(s) we
> can lose when using cutoff ?
>
> Cheers,
>
> Gilles
>
> On Saturday, February 6, 2016, George Bosilca <bosi...@icl.utk.edu
> <javascript:_e(%7B%7D,'cvml','bosi...@icl.utk.edu');>> wrote:
>
>> In addition shouldn't we use uintptr_t instead of the intptr_t to cope
>> with the MSB during the shifting operations?
>>
>> George
>> On Feb 5, 2016 10:08 AM, "Jeff Squyres (jsquyres)" <jsquy...@cisco.com>
>> wrote:
>>
>>> On Feb 5, 2016, at 9:26 AM, Gilles Gouaillardet <
>>> gilles.gouaillar...@gmail.com> wrote:
>>> >
>>> >  static inline opal_process_name_t ompi_proc_sentinel_to_name
>>> (intptr_t sentinel)
>>> > {
>>> >  sentinel >>= 1;
>>> >  sentinel &= 0x7FFFFFFFFFFFFFFF;
>>> >  return *((opal_process_name_t *) &sentinel);
>>> > }
>>>
>>> I don't have much of an opinion on any of the other stuff here, but I
>>> note that this is unsafe.  I know we don't really care about non-64 bit
>>> these days, but we shouldn't be knowingly breaking it.  Instead of ANDing
>>> with a fixed constant, shouldn't it be something like:
>>>
>>> intptr_t mask = ~1 >> 1;
>>> sentinel &= mask;
>>>
>>> --
>>> Jeff Squyres
>>> jsquy...@cisco.com
>>> For corporate legal information go to:
>>> http://www.cisco.com/web/about/doing_business/legal/cri/
>>>
>>> _______________________________________________
>>> 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/2016/02/18557.php
>>>
>> _______________________________________________
> devel mailing list
> de...@open-mpi.org <javascript:_e(%7B%7D,'cvml','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/2016/02/18563.php
>
>
>

Reply via email to