Le 04/11/2014 15:30, Igor Stasenko a écrit :
Do you create socket via zeromq library, do sockets managed through it?
yes
To make sockets to not block the VM, just using a nice library is not enough: you must wire the socket events with VM process scheduling logic through signaling the semaphores etc.. Else you must always use non-blocking calls in C library. yes, this is done by zeromq, and one can specify blocking or non blocking socket option. By default (according to zeromq api) it should be blocking but it is not, I do not specify non blocking, but it is not blocking.
Well, parallel computing is broad area.. with zillions goals and solutions. The setup you described is not what i wanted to achieve with Hydra. Yes, I know, I know that you know, and now you know that I know that ... :) I made experiments with hydra in the past, I liked the idea very much. For now, personal circumstances allows me to have much more time to work on what interests me (still not enough but more than in the past)
Running multiple instances of same VM ~= running single instance of VM which can manage multiple native threads. But sure thing you can achieve similar results using both approaches. The difference is in how fine grained your control over consumed resources, namely memory and CPU.
Working (more helping) on heavy load performance benchmarks on a very different platform (IIS, dotNet, MsSql), I got convinced that multiple single threaded programs could achieve at least the same or a higher throughput than the (even well written) single multi-threaded equivalent with a good nolocking behavior, less synchronisation and delays (semaphores, locks, critical sections), less cpu false sharing and cache invalidation... Regards, Alain
-- Best regards, Igor Stasenko.