@contextlib.contextmanager
def multimap(cores=None):
    if cores is None:
        cores = max(multiprocessing.cpu_count() - 1, 1)
    def wrapper(func):
        def wrap(self, timeout=None):
            return func(self, timeout=timeout if timeout is not None else 1e100)
        return wrap
    IMapIterator.next = wrapper(IMapIterator.next)
    pool = multiprocessing.Pool(cores)
    yield pool.imap
    pool.terminate()
find panels from grabbed websites
dataset/ETHPy150Open chapmanb/cloudbiolinux/utils/s3_multipart_upload.py/multimap--crossover with--dataset/ETHPy150Open x3omdax/PenBox/Versions/V1.3/penbox.py/TNscan.findPanels