并行程序不会使

Posted

技术标签:

【中文标题】并行程序不会使【英文标题】:Parallel program wont make 【发布时间】:2012-03-04 19:51:42 【问题描述】:

我已经移动了一个在 Visual Studio 中运行并内置的并行程序。我正在使用 C++ 并在英特尔编译器上编译。我必须将项目移动到 linux 机器上并运行它。所以我制作了以下make文件。

parallel: main.o Node.o
    icpc -o parallel main.o Node.o

main.o: main.cpp
    icpc -c $(CONFIG) main.cpp

Node.o: Node.cpp
    icpc -c $(CONFIG) Node.cpp

clean:
    rm -f parallel *.o core core.*

CONFIG  = -openmp

但是得到这个输出。我不知道为什么它在 Windows 上工作时无法识别。

main.cpp:(.text+0x4e): undefined reference to `__kmpc_begin'
main.cpp:(.text+0xa2): undefined reference to `__kmpc_global_thread_num'
main.cpp:(.text+0xb2): undefined reference to `__kmpc_ok_to_fork'
main.cpp:(.text+0xc9): undefined reference to `__kmpc_fork_call'
main.cpp:(.text+0xdb): undefined reference to `__kmpc_serialized_parallel'
main.cpp:(.text+0xfa): undefined reference to `__kmpc_end_serialized_parallel'
main.cpp:(.text+0x106): undefined reference to `__kmpc_ok_to_fork'
""                  ""                         '""             """

虽然我认为没有必要,但这是我的项目。

http://bitbucket.org/pumphouse/disjoint-sets-serial-parallel

【问题讨论】:

你试过明显的(谷歌和手册)吗? 是的。我试图寻找答案,这是第 2 天。 你试过了吗:software.intel.com/en-us/forums/showthread.php?t=64701(搜索时谷歌上的第一个链接) 【参考方案1】:

您没有与-openmp 链接;将您的第二行更改为

 icpc $(CONFIG) -o parallel main.o Node.o

【讨论】:

我爱你,我现在就试试这个。如果可行,我会投票赞成您的历史记录。 @Pumphouse:如果您使用 Google,这是第一次点击。

以上是关于并行程序不会使的主要内容,如果未能解决你的问题,请参考以下文章

Mozilla使WebAssembly并行启动

每天3分钟操作系统修炼秘籍:并行的假象和分时系统

并行 Repa 代码不会产生火花

并行编程

Openacc:如何使插入排序更加并行[关闭]

大话异步与并行