max_lat_accel.py: use parallel processing (#34936)

* use run_across_segments

* disable tqdm
pull/34937/head
Shane Smiskol 1 month ago committed by GitHub
parent e607cbe5a2
commit e652f435f9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 3
      selfdrive/debug/max_lat_accel.py
  2. 4
      tools/lib/logreader.py

@ -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')

@ -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

Loading…
Cancel
Save