Issue with Eric7 and Parallel Processing
Detlev Offenbach
detlev at die-offenbachs.de
Thu Nov 16 17:12:29 GMT 2023
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 Offenbach
detlev at die-offenbachs.de
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://www.riverbankcomputing.com/pipermail/eric/attachments/20231116/729d02db/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_0xBD1F26A5DA8A6150.asc
Type: application/pgp-keys
Size: 660 bytes
Desc: OpenPGP public key
URL: <https://www.riverbankcomputing.com/pipermail/eric/attachments/20231116/729d02db/attachment.key>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature.asc
Type: application/pgp-signature
Size: 236 bytes
Desc: OpenPGP digital signature
URL: <https://www.riverbankcomputing.com/pipermail/eric/attachments/20231116/729d02db/attachment.sig>
More information about the Eric
mailing list