Detlev, Excuse my ignorance, but I'm not sure how to obtain a changeset through mercurial. Is there an easy way? - j
On Thu, Nov 16, 2023 at 9:12 AM Detlev Offenbach <det...@die-offenbachs.de> wrote: > Hi, > > I just committed changeset 1e498581a094, which should fix the issue. > Please give it a try and let me know. Otherwise, it will be contained in > release 23.12 as is. > > Regards, Detlev > > Am 15.11.23 um 16:33 schrieb Jamie Riotto: > > import multiprocessing > from time import time > import random > > > def parallelSim(job_queue, output_queue): > for data in iter(job_queue.get, 'STOP'): > choices = random.choices(data, k=10) > total = 0 > for i, c in enumerate(choices): > sign = 1 if i%2==0 else -1 > total += c * c * sign > > output_queue.put(total) > > if __name__ == '__main__': > start_time = time() > > job_queue = multiprocessing.Queue() > output_queue = multiprocessing.Queue() > > # create some data > data = list(range(1, 1000)) > > # DEBUG > #numCPUs = multiprocessing.cpu_count() > numCPUs = 4 > iterations = 10 > numjobs = numCPUs * iterations > > # load up the job queue > for sim in range(numjobs): > job_queue.put(data) > > # add Stops to the job queue > for x in range(numCPUs): > job_queue.put('STOP') > > serialDebug = False > if serialDebug is True: > # Debug the Parallel Process > parallelSim(job_queue, output_queue) > > else: > # parallelize processing using a pool of processes > for i in range(numCPUs): > multiprocessing.Process(target=parallelSim, args=(job_queue, > output_queue)).start() > > results = [] > for r in range(numjobs): > results.append(output_queue.get()) > > avg_result = sum(results) / numjobs > print("") > print(f'Average Results = {avg_result}') > > end_time = time() > elapsed = end_time - start_time > print(f"Finished in: {elapsed:.3f} seconds") > > -- > Detlev offenbachdet...@die-offenbachs.de > >