我们正在为Windows平台开发一些东西,希望能利用现今PC中的多个核心。我知道在VS2010中有并发运行时,但它仍处于测试版。目前我们需要发布高质量的代码,有没有其他API可以提供良好的过渡方案?还有其他建议吗?
英特尔的线程构建块库具有类似于并发运行时的并行任务系统(在高层次上)。API细节可能会有所不同,但将程序分解为独立运行的小任务所需的工作将保持不变。
我一直喜欢使用pthread,它很好地映射到我遇到的其他线程模型,并且相对容易编程(与MPI相比)。
然而,它不像并发运行时那样高级。
我也听说过OpenMP,但还没有深入了解。
简短回答:雇佣一位有良好线程经验的程序员。
在多核上使用多线程是很困难的。没有经验是无法替代的。
Visual C++(任何最新版本)都有开发并行软件的工具,但是存在数据同步等复杂性问题,对于缺乏经验的人来说非常棘手。并发运行时是试图隐藏复杂性并让编译器完成工作的尝试。它可能非常有效,但仍有待评估。目前,您可以使用现有工具获得良好的结果,但需要专业知识。
考虑雇佣一位优秀的承包商来帮助确定架构并培训您自己的员工。