我需要加速我现在使用 PyLab 进行的许多计算。我想到了使用 CUDA。整个计算单元 (A) 包括执行几个(数千个)完全独立的较小计算 (B)。它们中的每一个在初始阶段都涉及进行 40-41 次独立的、甚至更小的计算 (C)。所以并行编程应该真的有帮助。使用 PyLab,总体 (A) 需要 20 分钟,(B) 需要十分之一秒。
作为这个领域的初学者,我的问题是我应该在哪个级别并行计算,无论是在 (C) 还是在 (B)。
我应该澄清一下,(C)阶段包括获取在所有(C)进程之间共享的一堆数据(数千个浮点数),并执行各种任务,其中最耗时的一个是线性回归,其中也是可并行的!每个过程 (C) 的输出是一个浮点数。每个计算 (B) 基本上包括执行多次程序 (C) 并对输出的数据进行线性回归。同样,它的输出是一个浮点数。
我不熟悉 CUDA 编程,所以我基本上是在问最明智的策略是什么。