2011-01-28 55 views
0

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

+1

有很少有关于自动来并行化...更多详细信息请? – Crisfole 2011-01-28 16:27:17

回答

0

您想将顺序程序分成通过数据流进行通信的任务管道。假设例如C或C++程序,您需要手动将应用程序重写为并行任务网络。有各种API可以帮助你编写任务和沟通。与之相配的正式模型是Kahn Process Networks(KPN)。

显然,真正的挑战是重写你的代码,将所有的通信公开为显式数据流。取决于应用,这可能是很多工作。

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