max_lat_accel.py: use parallel processing (#34936)

* use run_across_segments

* disable tqdm
This commit is contained in:
Shane Smiskol
2025-03-25 13:26:16 -07:00
committed by GitHub
parent e607cbe5a2
commit e652f435f9
2 changed files with 4 additions and 3 deletions

View File

@@ -2,6 +2,7 @@
import argparse
import numpy as np
import matplotlib.pyplot as plt
from functools import partial
from tqdm import tqdm
from typing import NamedTuple
from openpilot.tools.lib.logreader import LogReader
@@ -98,7 +99,7 @@ if __name__ == '__main__':
print('WARNING: Treating route as qlog!')
print('Finding events...')
events += find_events(lr, extrapolate=args.extrapolate, qlog=qlog)
events += lr.run_across_segments(8, partial(find_events, extrapolate=args.extrapolate, qlog=qlog), disable_tqdm=True)
print()
print(f'Found {len(events)} events')

View File

@@ -307,11 +307,11 @@ class LogReader:
def _run_on_segment(self, func, i):
return func(self._get_lr(i))
def run_across_segments(self, num_processes, func, desc=None):
def run_across_segments(self, num_processes, func, disable_tqdm=False, desc=None):
with multiprocessing.Pool(num_processes) as pool:
ret = []
num_segs = len(self.logreader_identifiers)
for p in tqdm.tqdm(pool.imap(partial(self._run_on_segment, func), range(num_segs)), total=num_segs, desc=desc):
for p in tqdm.tqdm(pool.imap(partial(self._run_on_segment, func), range(num_segs)), total=num_segs, disable=disable_tqdm, desc=desc):
ret.extend(p)
return ret