def __init__(self, p_iter='fork', ncpus=None, **kwds): """ EXAMPLES:: sage: P = sage.parallel.decorate.Parallel(); P <sage.parallel.decorate.Parallel instance at 0x...> """ # The default p_iter is currently the 'fork' implementation. # This has changed. self.p_iter = None if isinstance(p_iter, (int, long, Integer)): p_iter, ncpus = 'fork', p_iter if ncpus is None: from ncpus import ncpus as compute_ncpus ncpus = compute_ncpus() if p_iter == 'fork': self.p_iter = p_iter_fork(ncpus, **kwds) elif p_iter == 'multiprocessing': self.p_iter = multiprocessing_sage.pyprocessing(ncpus) elif p_iter == 'reference': self.p_iter = p_iter_reference elif isinstance(p_iter, str): raise ValueError("unknown iterator '%s'" % p_iter) else: if self.p_iter is None: self.p_iter = p_iter
def __init__(self, p_iter='fork', ncpus=None, **kwds): """ EXAMPLES:: sage: P = sage.parallel.decorate.Parallel(); P <sage.parallel.decorate.Parallel instance at 0x...> """ # The default p_iter is currently the 'fork' implementation. # This has changed. self.p_iter = None if isinstance(p_iter, (int, long, Integer)): p_iter, ncpus = 'fork', p_iter if ncpus is None: from ncpus import ncpus as compute_ncpus ncpus = compute_ncpus() if p_iter == 'fork': self.p_iter = p_iter_fork(ncpus, **kwds) elif p_iter == 'multiprocessing': self.p_iter = multiprocessing_sage.pyprocessing(ncpus) elif p_iter == 'reference': self.p_iter = p_iter_reference elif isinstance(p_iter, str): raise ValueError, "unknown iterator '%s'" % p_iter else: if self.p_iter is None: self.p_iter = p_iter