自动并行化

时间:2011-01-28 16:14:23

标签: multithreading multicore

我希望在线程级别自动并行化顺序程序以在多核上运行 处理器。 我不知道使用lvm或openIMPACT或其他编译器。你能帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

您希望将顺序程序拆分为通过数据流进行通信的任务管道。假设例如C或C ++程序,您需要手动将应用程序重写为并行任务网络。有各种API可以帮助您编写任务和通信。与此完全契合的形式模型是Kahn Process Networks(KPN)。

显然,真正的挑战是重写代码以将所有通信暴露给显式数据流。根据应用程序的不同,这可能会有很多工作。

为了实现,OpenMP对任务并行性有一些支持。查看vfTasks library(C / C ++)以获得高效的流API,您可以轻松地将其移植到您想要的任何架构中。 (免责声明:我是作者之一)。