Method, apparatus, and program for eliminating thread skew in multithreaded performance benchmarks
First Claim
1. A data processing system implemented method for performing a benchmark, comprising steps implemented by the data processing system of:
- signaling a start test event and waiting during a rampup interval;
signaling a start measurement event at the end of the rampup interval;
responsive to the signaling the start measurement event, collecting measurement results for units of work performed by a plurality of worker threads, the measurement results having mitigated thread skew due to the measurement results being collected responsive to the signaling the start measurement event; and
signaling a stop test event.
3 Assignments
0 Petitions
Accused Products
Abstract
A data processing system performs a multithreaded performance benchmark with a rampup interval and a rampdown interval. The master thread signals a start test event and begins the rampup interval. After the rampup interval, the master thread signals a start measurement event. In response to the start measurement event, the worker threads record the units of work they complete. After the measurement interval, the master signals the workers to stop measuring, but to continue running. This begins the rampdown interval. After the rampdown interval, the master thread signals a stop test event. The rampup and rampdown intervals are long enough to ensure that measurements are not recorded during skew intervals. Thus, thread skew does not impact the results.
33 Citations
23 Claims
-
1. A data processing system implemented method for performing a benchmark, comprising steps implemented by the data processing system of:
-
signaling a start test event and waiting during a rampup interval; signaling a start measurement event at the end of the rampup interval; responsive to the signaling the start measurement event, collecting measurement results for units of work performed by a plurality of worker threads, the measurement results having mitigated thread skew due to the measurement results being collected responsive to the signaling the start measurement event; and signaling a stop test event. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A data processing system implemented method for performing a benchmark, comprising steps implemented by the data processing system of:
-
signaling a start test event; starting a plurality of worker threads during a rampup interval; signaling a start measurement event at the end of the rampup interval; collecting measurement results; and signaling a stop test event, wherein the length of the rampup interval is determined based on the number of worker threads in the plurality of worker threads.
-
-
10. A data processing system implemented method for performing a benchmark, comprising steps implemented by the data processing system of:
-
signaling a start test event; waiting during a rampup interval; signaling a start measurement event at the end of the rampup interval; collecting measurement results; signaling a stop test event; repeatedly increasing the rampup interval and performing the benchmark until the increase of the rampup interval has no measurable impact on the measurement results.
-
-
11. A data processing system implemented method for performing a benchmark, comprising steps implemented by the data processing system of:
-
signaling a start test event; waiting during a rampup interval; signaling a start measurement event at the end of the rampup interval; collecting measurement results, wherein the step of collecting measurement results comprises repeatedly running an iteration of a test until a plurality of metrics have converged; and signaling a stop test event. - View Dependent Claims (12)
-
-
13. A data processing system implemented method for performing a benchmark, comprising:
-
starting a plurality of worker threads; waiting during a rampup interval; signaling a start measurement event at the end of the rampup interval; responsive to the signaling the start measurement event, receiving measurement results from the worker threads, the measurement results having mitigated thread skew due to the measurement results being received responsive to the signaling the start measurement event; signaling a stop measurement event; waiting during a rampdown interval after the stop measurement event; and signaling a stop test event at the end of the rampdown interval. - View Dependent Claims (14)
-
-
15. A data processing machine for performing a benchmark, comprising:
-
first signal means for signaling a start test event and waiting during a rampup interval by the data processing machine; second signal means for signaling a start measurement event at the end of the rampup interval by the data processing machine; collection means, responsive to the second signaling means, for collecting measurement results comprising units of work performed by a plurality of worker threads by the data processing machine; and third signal means for signaling a stop test event by the data processing machine. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22)
-
-
23. A data processing machine for performing a benchmark, comprising:
-
means for starting a plurality of worker threads by the data processing machine; means for waiting during a rampup interval by the data processing machine; means for signaling a start measurement event at the end of the rampup interval by the data processing machine; means, responsive to the signaling the start measurement event, for receiving measurement results from the worker threads by the data processing machine; means for signaling a stop measurement event by the data processing machine; means for waiting during a rampdown interval after the stop measurement event by the data processing machine; and means for signaling a stop test event at the end of the rampdown interval by the data processing machine.
-
Specification