[argobots-discuss] how to marshal/serialize an ABT_pool id for network use

Seo, Sangmin sseo at anl.gov
Mon Feb 27 09:51:23 CST 2017


Hi Phil and Pavan,

ABT_pool is an opaque object, but actually it has a unique integer ID associated with it. The ID was added for convenience when the Charm++ folks wanted to manage pools with integers. You can call ABT_pool_get_id() to obtain the associated integer ID. The function is described at http://www.argobots.org/static/doxygen/latest/d9/d52/group__POOL.html#gae3b9d5f542cb31852aaa4d7079350e74

Thanks,
Sangmin

On Feb 27, 2017, at 8:20 AM, Phil Carns <carns at mcs.anl.gov<mailto:carns at mcs.anl.gov>> wrote:

That makes sense.  Thanks Pavan.

-Phil

On 02/26/2017 02:10 PM, Balaji, Pavan wrote:
Phil,

Argobots does not have an integer mapping for the pool id today.  Even if we did, it's an opaque object, so you can't assume that it'll be an integer.  You doing the mapping yourself is going to be the cleanest solution.

  -- Pavan

On Feb 26, 2017, at 8:35 AM, Phil Carns <carns at mcs.anl.gov<mailto:carns at mcs.anl.gov>> wrote:

Actually, after thinking through a preliminary design a little more, I think I would probably elect to do this mapping myself anyway (even if an integer identifier were available in Argobots) so that I can choose the size of the identifier in my protocol.  I may need to use a relatively small integer due to msg header size constraints.

-Phil

On 02/26/2017 08:46 AM, Phil Carns wrote:
Hi all,

I'm considering how to build a network service in which incoming requests could potentially be serviced by more than one Argobots pool (ABT_pool).  At the most fundamental level, this will look like a single centralized progress loop for the network that decodes the header for incoming messages, and based on that header calls ABT_thread_create() to launch the handler on a particular pool.

I'd like the client to be able to control which pool it is targeting.  I think this means that I should probably create my own data structure that maps "pool_id -> ABT_pool" so that I have a generic identifier that I can share over the network with other hosts.  "pool_id" in this case would just be an int64_t or something similar of a fixed size at any rate.  When a request arrives I would decode the header, look up the pool_id to ABT_pool mapping, then call ABT_thread_create() on that pool.

Before I implement that, though, I just wanted to check- there isn't any existing mechanism built into Argobots for generating stable IDs for a given ABT_pool, is there?

thanks!
-Phil

_______________________________________________
discuss mailing list
discuss at lists.argobots.org<mailto:discuss at lists.argobots.org>
https://lists.argobots.org/mailman/listinfo/discuss

_______________________________________________
discuss mailing list
discuss at lists.argobots.org<mailto:discuss at lists.argobots.org>
https://lists.argobots.org/mailman/listinfo/discuss
_______________________________________________
discuss mailing list
discuss at lists.argobots.org<mailto:discuss at lists.argobots.org>
https://lists.argobots.org/mailman/listinfo/discuss


_______________________________________________
discuss mailing list
discuss at lists.argobots.org<mailto:discuss at lists.argobots.org>
https://lists.argobots.org/mailman/listinfo/discuss

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.argobots.org/pipermail/discuss/attachments/20170227/f190c042/attachment-0001.html>


More information about the discuss mailing list