[zeromq-dev] feedback on proposed Context API addition
pieterh at gmail.com
Thu Feb 9 03:30:48 CET 2012
zmq_setctxopt, perhaps. Search the list for several previous proposals for
On Feb 9, 2012 8:50 AM, "john skaller" <skaller at users.sourceforge.net>
> On 09/02/2012, at 5:56 AM, Chuck Remes wrote:
> > A user on irc (calvin) may post here (or on this thread) later. He
> popped into the channel asking about pinning a socket to a specific CPU. I
> pointed him at ZMQ_AFFINITY which is available through zmq_setsockopt().
> However, as he pointed out, that only controls socket affinity with I/O
> threads which may still be scheduled on any CPU.
> > After a little back-and-forth, here's a proposal for an addition to the
> C API.
> > void *zmq_init_with_affinity (int io_threads, char*
> cpu_bitmask_buffer, size_t bitmask_len);
> And, either ZMQ_AFFINITY should be modified to support the arbitrary length
> bitmask OR a new tag be invented such as
> Also, since this API would exclude thread_safety as it too is an
> additional context
> construction option, it may be right to start thinking about
> function that looks like
> [The interface in C is ugly in the extreme .. ]
> > Such a change would allow a programmer to create a context and specify
> which specific CPUs should have I/O threads pinned to them. We need to use
> a byte buffer to contain the bitmask and pass a length since systems with
> more than 64 CPUs and/or cores are already available.
> > This addition would not break existing code. Furthermore, we could
> implement zmq_init() internally with a call to zmq_init_with_affinity().
> Not directly, my modification to the style guide prohibits this. You'd do
> it with
> an inner function all the public interfaces called. Same effect though.
> john skaller
> skaller at users.sourceforge.net
> zeromq-dev mailing list
> zeromq-dev at lists.zeromq.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the zeromq-dev