使用Ray轻松进行Python分布式计算( 二 )

这将返回:
Total time of sleep: 9.9 for 16 tasks Finished in 3.18由于存在一些开销,会有一些延迟,但对于大型计算来说,这种延迟可以忽略不计 。
四、大规模计算的聚合值Ray可以轻松地用于聚合多个值,这对于构建需要跨多台机器进行计算的大型应用程序非常重要 。对于大规模计算,Ray可以将聚合的运行时间从线性改为对数 。
接下来看一个示例:
【使用Ray轻松进行Python分布式计算】import timeimport rayimport numpy as npStime = time.perf_counter()@ray.remotedef create_matrix(size):    return np.random.normal(size=size)@ray.remotedef multiply_matrices(x, y):    return np.dot(x, y)@ray.remotedef sum_matrices(x, y):    return np.add(x, y)m1 = create_matrix.remote([1000, 1000])m2 = create_matrix.remote([1000, 1000])m3 = create_matrix.remote([1000, 1000])m4 = create_matrix.remote([1000, 1000])m12 = multiply_matrices.remote(m1, m2)m34 = multiply_matrices.remote(m3, m4)a12_34 =  sum_matrices.remote(m12, m34)## 结果MM = ray.get(a12_34)print(f"Finished in {time.perf_counter()-Stime:.2f}")在上面的示例中,本文首先创建了四个矩阵,将它们分为两组,对每组中的矩阵进行乘法运算,然后对每组的乘法结果进行求和 。在这里,乘法运算是并行进行的,然后将结果聚合以获得求和结果 。
参考资料

  1. 【安装Ray】:https://docs.ray.io/en/latest/ray-overview/installation.html
  2. Pierfederici, F. (2016). 《Distributed Computing with Python》. Journal of Physics A: Mathematical and Theoretical (Vol. 44, Issue 8). Packt Publishing Ltd.




推荐阅读