我用C ++构建了一个MPI程序。
程序可能在分布式计算环境中运行,但也可以在单个计算机上运行。在初始化时,参数被分配给每个工作者。然后工人们以平行的方式进行,没有相互沟通。将部分结果返回给主服务器,分配更多参数,完成更完全并行的工作,程序终止。
对于单台机器,程序的工作人员可以并且必须按顺序运行。程序保存的总数据不适合RAM。一种可能的解决方案是在战略时间点暂停工作进程,以便将其内存交换到磁盘,然后再重新生成它们以执行更多计算。
是否可以暂停工作人员,例如pthread_suspend
,然后重新启用它?