[PerfFix] Avoid separate thread for MP executor shm spin (take 2) (#28319)
Signed-off-by: Nick Hill <nhill@redhat.com>
This commit is contained in:
@@ -89,14 +89,12 @@ def test_aggregate_workers_output():
|
||||
def test_async_aggregate_workers_output():
|
||||
aggregator = KVOutputAggregator(expected_finished_count=2)
|
||||
|
||||
future1: Future[DummyModelRunnerOutput] = Future()
|
||||
future2: Future[DummyModelRunnerOutput] = Future()
|
||||
result_future = aggregator.async_aggregate([future1, future2])
|
||||
future: Future[list[DummyModelRunnerOutput]] = Future()
|
||||
result_future = aggregator.async_aggregate(future)
|
||||
|
||||
output1 = DummyModelRunnerOutput()
|
||||
output2 = DummyModelRunnerOutput()
|
||||
future1.set_result(output1)
|
||||
future2.set_result(output2)
|
||||
future.set_result([output1, output2])
|
||||
|
||||
assert result_future.done()
|
||||
aggregated = result_future.result()
|
||||
@@ -106,16 +104,14 @@ def test_async_aggregate_workers_output():
|
||||
assert aggregated.finished_recving is None
|
||||
assert not aggregated.invalid_block_ids
|
||||
|
||||
future1 = Future()
|
||||
future2 = Future()
|
||||
result_future = aggregator.async_aggregate([future1, future2])
|
||||
future = Future()
|
||||
result_future = aggregator.async_aggregate(future)
|
||||
|
||||
output1 = DummyModelRunnerOutput(
|
||||
finished_sending={"req1"}, finished_recving={"req2"}
|
||||
)
|
||||
output2 = DummyModelRunnerOutput(invalid_block_ids={1})
|
||||
future1.set_result(output1)
|
||||
future2.set_result(output2)
|
||||
future.set_result([output1, output2])
|
||||
|
||||
assert result_future.done()
|
||||
aggregated = result_future.result()
|
||||
@@ -125,14 +121,12 @@ def test_async_aggregate_workers_output():
|
||||
assert aggregated.finished_recving is None
|
||||
assert aggregated.invalid_block_ids == {1}
|
||||
|
||||
future1 = Future()
|
||||
future2 = Future()
|
||||
result_future = aggregator.async_aggregate([future1, future2])
|
||||
future = Future()
|
||||
result_future = aggregator.async_aggregate(future)
|
||||
|
||||
output1 = DummyModelRunnerOutput(invalid_block_ids={2})
|
||||
output2 = DummyModelRunnerOutput(finished_sending={"req1"})
|
||||
future1.set_result(output1)
|
||||
future2.set_result(output2)
|
||||
future.set_result([output1, output2])
|
||||
|
||||
assert result_future.done()
|
||||
aggregated = result_future.result()
|
||||
@@ -142,16 +136,14 @@ def test_async_aggregate_workers_output():
|
||||
assert aggregated.finished_recving is None
|
||||
assert aggregated.invalid_block_ids == {2}
|
||||
|
||||
future1 = Future()
|
||||
future2 = Future()
|
||||
result_future = aggregator.async_aggregate([future1, future2])
|
||||
future = Future()
|
||||
result_future = aggregator.async_aggregate(future)
|
||||
|
||||
output1 = DummyModelRunnerOutput(invalid_block_ids={3, 4})
|
||||
output2 = DummyModelRunnerOutput(
|
||||
finished_recving={"req2"}, invalid_block_ids={4, 5}
|
||||
)
|
||||
future1.set_result(output1)
|
||||
future2.set_result(output2)
|
||||
future.set_result([output1, output2])
|
||||
|
||||
assert result_future.done()
|
||||
aggregated = result_future.result()
|
||||
|
||||
Reference in New Issue
Block a user