How to parallel sum a loop using multiprocessing in Python

前端 未结 3 1244
甜味超标
甜味超标 2020-12-18 01:10

I am having difficulty understanding how to use Python\'s multiprocessing module.

I have a sum from 1 to n where n=10^10, whic

3条回答
  •  臣服心动
    2020-12-18 01:31

    I find the usage of multiprocess.Pool and map() much more simple

    Using your code:

    from multiprocessing import Pool
    
    def sum_nums(args):
        low = int(args[0])
        high = int(args[1])
        return sum(range(low,high+1))
    
    if __name__ == "__main__":
        n = 1000 
        procs = 2 
    
        sizeSegment = n/procs
    
        # Create size segments list
        jobs = []
        for i in range(0, procs):
            jobs.append((i*sizeSegment+1, (i+1)*sizeSegment))
    
        pool = Pool(procs).map(sum_nums, jobs)
        result = sum(pool)
    
        >>> print result
        >>> 500500
    

提交回复
热议问题