Skip to content

Conversation

@jty2
Copy link

@jty2 jty2 commented Aug 31, 2022

Hello,

These patches address some issues I have been having with performance reproducibility.

The first patch addresses the warnings about using deprecated methods in zmq.hpp when compiled using C++11.

The second patch improves synchronization between the leader mcperf and its agents in order to reliably have fully concurrent load generation.

James

jty2 added 2 commits August 30, 2022 18:41
Some zmq::socket_base::send() and zmq::socket_base::recv() methods
cause deprecation warnings.  Use updated methods instead.
By default, zmq::socket_base::recv() blocks until a message is received, but
there is no guarantee of timely delivery.  However, sync_agent() uses recv() to
synchronize with agents, and recv() has been observed in some cases to block
completed reception of the "ack" until all agents have finished their entire
workload, causing the primary mcperf's load generation to start afterwards.
This causes some serial execution instead of fully-parallel concurrency, which
results in a higher QPS and longer latency.

Instead of relying on recv() to unblock quickly, poll non-blocking recv().
@shaygalon shaygalon merged commit c2c9088 into shaygalon:master Sep 16, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants