diff options
| -rw-r--r-- | python/cds_curve.py | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/python/cds_curve.py b/python/cds_curve.py index fcdefd3a..f22f43ea 100644 --- a/python/cds_curve.py +++ b/python/cds_curve.py @@ -12,7 +12,7 @@ from yieldcurve import YC, ql_to_jp from quantlib.settings import Settings from quantlib.time.api import Date from db import dbconn, dbengine -from concurrent.futures import ProcessPoolExecutor, as_completed +from multiprocessing import Pool from itertools import zip_longest, chain from index_data import get_index_quotes from pandas.tseries.offsets import BDay @@ -48,9 +48,9 @@ def grouper(iterable, n, fillvalue=None): def build_curves_dist(quotes, args, workers=4): ## about twice as fast as the non distributed version ## non thread safe for some reason so need ProcessPool - with ProcessPoolExecutor(workers) as e: - fs = [e.submit(build_curves, *(q, args)) for q in grouper(quotes, 30)] - return list(chain.from_iterable([f.result() for f in as_completed(fs)])) + with Pool(workers) as pool: + r = pool.starmap(build_curve, [(q, *args) for q in quotes], 30) + return r def build_curves(quotes, args): return [build_curve(q, *args) for q in quotes if q is not None] |
