New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 864621 link

Starred by 1 user

Issue metadata

Status: Untriaged
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug

Blocking:
issue 857283



Sign in to add a comment

Async off uploads and continue processing in process_perf_results.py

Project Member Reported by simonhatch@chromium.org, Jul 17

Issue description

split off from crbug.com/857283

Thirdly, from poking around the implementation of the parallelization, I think there's a lot of low hanging fruit there still. From what I see, each step is parallelized, but runs in sync. ie. if a step on 1 core consists of a 10 second process, 10 second upload, you should just async off the upload and free up the thread to process the next dataset rather than waiting around the full 20s.
 
Blockedon: 857283
Interesting, though given the large amount of benchmarks to be processed & upload in parallel, I don't think at any time we have free cores sitting around not having work to do? Wouldn't that mean splitting up the upload & processing won't save much time?
Maybe I misread the script, but isn't each core basically consist of process + upload?

So let's say there's 2 cores and several tests with a 10s process, 5 second upload

The execution sequence on each core would be 10s processing, 5s block on upload, 10s processing, 5s block on upload

In this case, that's 30s of work.

It might be faster to have 1 pool that's dedicated to processing, and then a separate parallel upload whenever anything is free. Hope I'm explaining that correctly.

So that would be, 10s process, spawn an upload and immedaitely process next 10s, spawn an upload, etc.

So that'd be 20s of processing + the last upload time
Blocking: 857283
Blockedon: -857283
Additional tweak: I think you could order them from heaviest to lightest with heaviest uploading first.
Cc: -eakuefner@chromium.org

Sign in to add a comment