我刚开始学习UPC,在运行hello world示例时遇到以下错误:
GASNet gasnetc_init returning an error code: GASNET_ERR_RESOURCE (Problem with requested resource)
at /home/dx/Downloads/berkeley_upc-2.14.2/gasnet/vapi-conduit/gasnet_core.c:1422
reason: unable to open any HCA ports
代码如下:
#include <upc_relaxed.h>
#include <stdio.h>
int main() {
printf("Hello from thread %i/%in", MYTHREAD, THREADS);
upc_barrier;
return 0;
}
它的编译方式是:
/usr/local/upc/opt/bin/upcc upcTest.upc -o up
并执行:
/usr/local/upc/opt/bin/upcrun -n 1 up
编译时我也收到此错误:
<command-line>:0:0: warning: "_FORTIFY_SOURCE" redefined [enabled by default]
<built-in>:0:0: note: this is the location of the previous definition
<command-line>:0:0: warning: "_FORTIFY_SOURCE" redefined [enabled by default]
<built-in>:0:0: note: this is the location of the previous definition
关于如何解决问题的任何想法?
提前感谢!
HCA代表主机通道适配器,这只是各种网络类型适配器的技术术语,尤其是InfiniBand。如果您的系统未启用 InifiniBand 则不存在 HCA。如果是这种情况,您应该使用另一种网络类型,例如 如果在仅具有以太网连接的群集上运行,则udp
,如果在单个多核/多插槽节点上运行,则smp
。
网络类型由-network=<type>
选项指定,以upcc
。运行 upcc -version
以获取可用网络类型的列表,并阅读文档以了解哪一种可以在您拥有的硬件上使用。