INNER CODE UNIT · Python
nb_workers
mdeff/fma · features.py:118
nb_workers = int(1.5 * len(os.sched_getaffinity(0)))
# Longest is ~11,000 seconds. Limit processes to avoid memory errors.
table = ((5000, 1), (3000, 3), (2000, 5), (1000, 10), (0, nb_workers))
for duration, nb_workers in table:
print('Working with {} processes.'.format(nb_workers))
tids = tracks[tracks['track', 'duration'] >= duration].index
tracks.drop(tids, axis=0, inplace=True)
pool = multiprocessing.Pool(nb_workers)
it = pool.imap_unordered(compute_features, tids)
for i, row in enumerate(tqdm(it, total=len(tids))):
features.loc[row.name] = row
if i % 1000 == 0:
save(features, 10)