在Google Cloud Platform中运行并行C ++代码

问题描述

我有一个C ++代码,需要独立运行100,000次,每次都有不同的参数集。在小型笔记本电脑上,一次运行大约需要20分钟。我想使用云基础架构(如GCP)并行执行。在合理的时间内(1-2天)可以完成此任务的最佳方法是什么。

解决方法

我的第一种方法是简单地启动一堆VM,并使用GNU parallel处理不同的任务。您可以跟踪哪些运行失败,然后稍后重新运行。请参见--joblog--resume--resume-failed选项。

稍微高级一点的方法将使用明确的任务队列,并记录成功和失败的任务。这种方法将使用Sidekiq,Celery或Minion之类的东西。

如果您不愿意或无法做很多繁重的工作,请查看Google Cloud Tasks。您可以将C ++代码与调用它的小型Python或NodeJS包装器打包在一起,然后根据需要设置工作池,然后将任务的不同配置提交为任务。