aboutsummaryrefslogtreecommitdiffstats
path: root/python/cds_curve.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/cds_curve.py')
-rw-r--r--python/cds_curve.py8
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]