[zeromq-dev] State of Erlang SMP with ZeroMQ

Evax Software contact at evax.fr
Tue Jun 21 09:25:00 CEST 2011


Hi Yusuf,

> Hello,
> 
> A prior thread suggests that issues with running Erlang SMP + ZeroMQ have been resolved thanks to socket migration [1].
> 
> This is awesome, but I was wondering what exactly goes on during socket migration. Erlang SMP generally has one kernel thread for each CPU, and a shared queue from which the threads pull jobs to execute [2]. Consequently, AFAICS, ZeroMQ sockets will regularly migrate from one thread to another. If migration is an expensive process, this would likely cause the Erlang implementation to perform poorly with SMP enabled.
> 
> Thanks!
> 
> - Yusuf
> 
> 1: http://lists.zeromq.org/pipermail/zeromq-dev/2011-January/008767.html
> 
> 2: http://www.erlang.org/euc/08/euc_smp.pdf

This issue was affecting the port-based version of the bindings [1].
The new version [2] is NIF based and actually requires Erlang SMP.
The performance has been much improved in this newer version.

1: https://github.com/zeromq/erlzmq
2: https://github.com/zeromq/erlzmq2

Evax





More information about the zeromq-dev mailing list