需要设置建议,以便通过多种场景并行处理许多合同



我需要大师们关于如何设置建模应用程序的建议。我有数千个场景可以在数千个合同上运行,用于现金流预测。假设我有 1000 个场景和 1000 个合约,我需要运行 1,000,000 个投影 (1000x1000)。我想使用 dask、ray 或其他方法并行执行此操作。我的数据在数据帧中,但我愿意接受更好的建议。我可以为每个运行创建 2 个循环(场景、合约),但这将是顺序的。

场景 1 w 合同 1

场景 1 w 合同 2

场景 1 w 合同3

. . .

场景1000 w 合同1000

我想将计算分发到多个处理器和多个服务器。

我将把我的问题保存在内部循环预测上,我必须在下次运行的 1,000,000 次运行的每个时间步长运行 100 个场景预测。

任何为我指出正确方向的建议都会有所帮助。

从一个简单的概念角度来看:

  • 为自己编写一个函数,该函数将合约和场景作为参数并执行所需的计算
  • 使用 Python 的multiprocessing设置工作线程池
  • 创建要在工作线程之间共享的队列(从多处理包)
  • 用所有组合填充队列(使用固定索引并仅将合约/场景(C, S)索引的元组推送到队列以减少所需空间可能是个好主意
  • 将函数映射到给定队列的工作线程池

有更复杂的方法可以做到这一点(包括 amqp/celery/...),具体取决于您是要在多台机器上分配任务,还是只想分配给所有本地可用的核心。这个简单的概念应该包含所有必需的关键字,以便自己构建您的第一个本地多处理!

最新更新