我希望在线程级别自动并行化顺序程序以在多核上运行 处理器。 我不知道使用lvm或openIMPACT或其他编译器。你能帮我解决这个问题吗?
答案 0 :(得分:0)
您希望将顺序程序拆分为通过数据流进行通信的任务管道。假设例如C或C ++程序,您需要手动将应用程序重写为并行任务网络。有各种API可以帮助您编写任务和通信。与此完全契合的形式模型是Kahn Process Networks(KPN)。
显然,真正的挑战是重写代码以将所有通信暴露给显式数据流。根据应用程序的不同,这可能会有很多工作。
为了实现,OpenMP对任务并行性有一些支持。查看vfTasks library(C / C ++)以获得高效的流API,您可以轻松地将其移植到您想要的任何架构中。 (免责声明:我是作者之一)。