在R中调用C++,执行10000*1000次运算,
我的数据是10000个200行100列的不同的矩阵,对每一个矩阵,每次随机抽取50列组成新的矩阵进行下游的运算(如主成分分析),模拟1000次。
结果出现以下错误:
g++ -I/usr/share/R/include -DNDEBUG -fpic -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -g -c point.cpp -o point.o
g++ -shared -L/usr/lib/R/lib -Wl,-Bsymbolic-functions -Wl,-z,relro -o point.so point.o -L/usr/lib/R/lib -lR
*** caught segfault ***
address 0x7ffc58592a00, cause 'memory not mapped'
Traceback:
1: .C("ComputeSVD", as.double(GastricSample), as.integer(199), as.integer(26329), as.integer(144), as.integer(250), result = double(144 * 250))
aborting ...
Segmentation fault
这是我的R版本信息:
R session:
R version 3.2.2 (2015-08-14)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 15.10
locale:
[1] LC_CTYPE=zh_CN.UTF-8 LC_NUMERIC=C
[3] LC_TIME=zh_CN.UTF-8 LC_COLLATE=zh_CN.UTF-8
[5] LC_MONETARY=zh_CN.UTF-8 LC_MESSAGES=zh_CN.UTF-8
[7] LC_PAPER=zh_CN.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=zh_CN.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base