• Python 并行计算


    from joblib import Parallel, delayed  
    import time  
      
    # 定义一个函数,模拟一个耗时的操作  
    def slow_function(n):  
        time.sleep(n)  # 模拟耗时  
        return n * n  
      
    # 创建一个包含数字的列表  
    numbers = [1, 2, 3, 4, 5]  
      
    # 使用Parallel和delayed来并行地对每个数字执行slow_function  
    results = Parallel(n_jobs=-1)(delayed(slow_function)(n) for n in numbers)  
      
    # 打印结果  
    print(results)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    在这个示例中,我们定义了一个模拟耗时操作的函数slow_function。然后,我们创建了一个包含数字的列表numbers。通过使用Parallel和delayed,我们并行地对列表中的每个数字执行了slow_function函数。最后,我们打印了结果。

    请注意,在使用Parallel时,你可以通过设置n_jobs参数来控制并行任务的数量。在上面的示例中,我们设置了n_jobs=-1,这意味着用最大资源进行并行计算。

    如果函数有两个变量,代码如下:

    from joblib import Parallel, delayed  
    import time  
      
    # 定义一个函数,模拟一个耗时的操作,接受两个变量  
    def slow_function(x, y):  
        time.sleep(x + y)  # 模拟耗时  
        return x * y  
      
    # 创建一个包含输入变量的列表  
    inputs = [(1, 2), (3, 4), (5, 6)]  
      
    # 使用Parallel和delayed来并行地对每个输入执行slow_function  
    results = Parallel(n_jobs=3)(delayed(slow_function)(x, y) for x, y in inputs)  
      
    # 打印结果  
    print(results)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    在这个示例中,我们定义了一个函数slow_function,它接受两个变量x和y。然后,我们创建了一个包含输入变量的列表inputs,其中每个元素都是一个元组,包含两个变量。通过使用Parallel和delayed,我们并行地对列表中的每个输入执行了slow_function函数。最后,我们打印了结果。

    请注意,在使用Parallel时,你可以通过设置n_jobs参数来控制并行任务的数量。在上面的示例中,我们设置了n_jobs=3,这意味着最多同时执行3个任务。你可以根据自己的需求调整这个参数。

  • 相关阅读:
    10.5 校招 实习 内推 面经
    2023年度教育部人文社会科学研究一般项目评审结果,已公布!
    多种规格尺寸可定制羧基化聚苯乙烯-二乙烯基苯聚合物微球PS-DVB-COOH
    List类的超详细解析!(超2w+字)
    谈笑风声的秘密
    Linux多线程编程- 条件变量(Conditional variable)
    Avalonia 使用EFCore调用SQLite实现Singleton全局注册
    第十九章总结
    Linux便捷操作
    7、System类
  • 原文地址:https://blog.csdn.net/weixin_46604505/article/details/132869431