在 Linux 集群上安装 R `forecast` 包:编译器问题?

Mat*_*ler 5 r icc forecasting rcpp xeon-phi

我希望测试性能R,更具体地说是forecast在具有英特尔至强融核协处理器的 HPC 集群上的包中的一些例程。据我了解,系统管理员已R/3.2.5按照英特尔网站上的说明从源代码构建:https : //software.intel.com/en-us/articles/build-r-301-with-intel-c-compiler-and-intel -mkl-on-linux

因此,可以在使用安装到本地用户特定库的会话中执行R包括devtoolsdata.tabledplyrggplot2、在内的软件包的安装。我提到这些包的原因是它们都需要某种形式的编译,因此我需要在我的文件中包含该行以加载编译器。RcppRcppArmadilloRinstall.packagesmodule load intel/15.2.164.bashrc

但是,当我开始安装该forecast软件包时,却失败了。有很长的文本输出流(见下文),但总而言之,似乎与编译器相关的某些事情失败了:

/gpfs/stfc/local/apps/intel/intel_cs/2015.2.164/composer_xe_2015.2.164/compiler/include/complex(115): error #308: member "std::complex<float>::_M_value" (declared at line 1157 of "/usr/include/c++/4.4.7/complex") is inaccessible
          return __x._M_value + __y._M_value;
Run Code Online (Sandbox Code Playgroud)

恐怕我对编译软件和管理/安装知之甚少:这些问题以前在我的 Mac 或大学 Linux 集群上从未发生过。

> install.packages("forecast")
Installing package into '/gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5'
(as 'lib' is unspecified)
trying URL 'https://www.stats.bris.ac.uk/R/src/contrib/forecast_7.1.tar.gz'
Content type 'application/x-gzip' length 196896 bytes (192 KB)
==================================================
downloaded 192 KB

* installing *source* package 'forecast' ...
** package 'forecast' successfully unpacked and MD5 sums checked
** libs
icpc -I/gpfs/stfc/local/apps/intel/R/3.2.5/lib64/R/include -DNDEBUG  -I/gpfs/stfc/local/apps/intel/utilities/include -I"/gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5/Rcpp/include" -I"/gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5/RcppArmadillo/include"   -fpic  -O2  -c calcBATS.cpp -o calcBATS.o
icpc -I/gpfs/stfc/local/apps/intel/R/3.2.5/lib64/R/include -DNDEBUG  -I/gpfs/stfc/local/apps/intel/utilities/include -I"/gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5/Rcpp/include" -I"/gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5/RcppArmadillo/include"   -fpic  -O2  -c calcTBATS.cpp -o calcTBATS.o
icpc -I/gpfs/stfc/local/apps/intel/R/3.2.5/lib64/R/include -DNDEBUG  -I/gpfs/stfc/local/apps/intel/utilities/include -I"/gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5/Rcpp/include" -I"/gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5/RcppArmadillo/include"   -fpic  -O2  -c etsTargetFunction.cpp -o etsTargetFunction.o
In file included from /gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5/Rcpp/include/RcppCommon.h(64),
                 from /gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5/Rcpp/include/Rcpp.h(27),
                 from etsTargetFunction.h(3),
                 from etsTargetFunction.cpp(7):
/gpfs/stfc/local/apps/intel/intel_cs/2015.2.164/composer_xe_2015.2.164/compiler/include/complex(69): error #308: member "std::complex<double>::_M_value" (declared at line 1302 of "/usr/include/c++/4.4.7/complex") is inaccessible
          _M_value = __z._M_value;
                         ^

In file included from /gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5/Rcpp/include/RcppCommon.h(64),
                 from /gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5/Rcpp/include/Rcpp.h(27),
                 from etsTargetFunction.h(3),
                 from etsTargetFunction.cpp(7):
/gpfs/stfc/local/apps/intel/intel_cs/2015.2.164/composer_xe_2015.2.164/compiler/include/complex(77): error #308: member "std::complex<float>::_M_value" (declared at line 1157 of "/usr/include/c++/4.4.7/complex") is inaccessible
          _M_value = __z._M_value;
                         ^

In file included from /gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5/Rcpp/include/RcppCommon.h(64),
                 from /gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5/Rcpp/include/Rcpp.h(27),
                 from etsTargetFunction.h(3),
                 from etsTargetFunction.cpp(7):
/gpfs/stfc/local/apps/intel/intel_cs/2015.2.164/composer_xe_2015.2.164/compiler/include/complex(115): error #308: member "std::complex<float>::_M_value" (declared at line 1157 of "/usr/include/c++/4.4.7/complex") is inaccessible
          return __x._M_value + __y._M_value;
                     ^

In file included from /gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5/Rcpp/include/RcppCommon.h(64),
                 from /gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5/Rcpp/include/Rcpp.h(27),
                 from etsTargetFunction.h(3),
                 from etsTargetFunction.cpp(7):
/gpfs/stfc/local/apps/intel/intel_cs/2015.2.164/composer_xe_2015.2.164/compiler/include/complex(115): error #308: member "std::complex<float>::_M_value" (declared at line 1157 of "/usr/include/c++/4.4.7/complex") is inaccessible
          return __x._M_value + __y._M_value;
                                    ^

In file included from /gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5/Rcpp/include/RcppCommon.h(64),
                 from /gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5/Rcpp/include/Rcpp.h(27),
                 from etsTargetFunction.h(3),
                 from etsTargetFunction.cpp(7):
/gpfs/stfc/local/apps/intel/intel_cs/2015.2.164/composer_xe_2015.2.164/compiler/include/complex(120): error #308: member "std::complex<float>::_M_value" (declared at line 1157 of "/usr/include/c++/4.4.7/complex") is inaccessible
          return __x._M_value - __y._M_value;
                     ^

In file included from /gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5/Rcpp/include/RcppCommon.h(64),
                 from /gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5/Rcpp/include/Rcpp.h(27),
                 from etsTargetFunction.h(3),
                 from etsTargetFunction.cpp(7):
/gpfs/stfc/local/apps/intel/intel_cs/2015.2.164/composer_xe_2015.2.164/compiler/include/complex(120): error #308: member "std::complex<float>::_M_value" (declared at line 1157 of "/usr/include/c++/4.4.7/complex") is inaccessible
          return __x._M_value - __y._M_value;
                                    ^

In file included from /gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5/Rcpp/include/RcppCommon.h(64),
                 from /gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5/Rcpp/include/Rcpp.h(27),
                 from etsTargetFunction.h(3),
                 from etsTargetFunction.cpp(7):
/gpfs/stfc/local/apps/intel/intel_cs/2015.2.164/composer_xe_2015.2.164/compiler/include/complex(125): error #308: member "std::complex<float>::_M_value" (declared at line 1157 of "/usr/include/c++/4.4.7/complex") is inaccessible
          return __x._M_value * __y._M_value;
                     ^

In file included from /gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5/Rcpp/include/RcppCommon.h(64),
                 from /gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5/Rcpp/include/Rcpp.h(27),
                 from etsTargetFunction.h(3),
                 from etsTargetFunction.cpp(7):
/gpfs/stfc/local/apps/intel/intel_cs/2015.2.164/composer_xe_2015.2.164/compiler/include/complex(125): error #308: member "std::complex<float>::_M_value" (declared at line 1157 of "/usr/include/c++/4.4.7/complex") is inaccessible
          return __x._M_value * __y._M_value;
                                    ^

In file included from /gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5/Rcpp/include/RcppCommon.h(64),
                 from /gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5/Rcpp/include/Rcpp.h(27),
                 from etsTargetFunction.h(3),
                 from etsTargetFunction.cpp(7):
/gpfs/stfc/local/apps/intel/intel_cs/2015.2.164/composer_xe_2015.2.164/compiler/include/complex(130): error #308: member "std::complex<float>::_M_value" (declared at line 1157 of "/usr/include/c++/4.4.7/complex") is inaccessible
          return __x._M_value / __y._M_value;
                     ^

In file included from /gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5/Rcpp/include/RcppCommon.h(64),
                 from /gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5/Rcpp/include/Rcpp.h(27),
                 from etsTargetFunction.h(3),
                 from etsTargetFunction.cpp(7):
/gpfs/stfc/local/apps/intel/intel_cs/2015.2.164/composer_xe_2015.2.164/compiler/include/complex(130): error #308: member "std::complex<float>::_M_value" (declared at line 1157 of "/usr/include/c++/4.4.7/complex") is inaccessible
          return __x._M_value / __y._M_value;
                                    ^

In file included from /gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5/Rcpp/include/RcppCommon.h(64),
                 from /gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5/Rcpp/include/Rcpp.h(27),
                 from etsTargetFunction.h(3),
                 from etsTargetFunction.cpp(7):
/gpfs/stfc/local/apps/intel/intel_cs/2015.2.164/composer_xe_2015.2.164/compiler/include/complex(134): error #308: member "std::complex<float>::_M_value" (declared at line 1157 of "/usr/include/c++/4.4.7/complex") is inaccessible
          return -__x._M_value;
                      ^

In file included from /gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5/Rcpp/include/RcppCommon.h(64),
                 from /gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5/Rcpp/include/Rcpp.h(27),
                 from etsTargetFunction.h(3),
                 from etsTargetFunction.cpp(7):
/gpfs/stfc/local/apps/intel/intel_cs/2015.2.164/composer_xe_2015.2.164/compiler/include/complex(141): error #308: member "std::complex<float>::_M_value" (declared at line 1157 of "/usr/include/c++/4.4.7/complex") is inaccessible
          return __x._M_value == __y._M_value;
                     ^

In file included from /gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5/Rcpp/include/RcppCommon.h(64),
                 from /gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5/Rcpp/include/Rcpp.h(27),
                 from etsTargetFunction.h(3),
                 from etsTargetFunction.cpp(7):
/gpfs/stfc/local/apps/intel/intel_cs/2015.2.164/composer_xe_2015.2.164/compiler/include/complex(141): error #308: member "std::complex<float>::_M_value" (declared at line 1157 of "/usr/include/c++/4.4.7/complex") is inaccessible
          return __x._M_value == __y._M_value;
                                     ^

In file included from /gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5/Rcpp/include/RcppCommon.h(64),
                 from /gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5/Rcpp/include/Rcpp.h(27),
                 from etsTargetFunction.h(3),
                 from etsTargetFunction.cpp(7):
/gpfs/stfc/local/apps/intel/intel_cs/2015.2.164/composer_xe_2015.2.164/compiler/include/complex(146): error #308: member "std::complex<float>::_M_value" (declared at line 1157 of "/usr/include/c++/4.4.7/complex") is inaccessible
          return __x._M_value != __y._M_value;
                     ^

In file included from /gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5/Rcpp/include/RcppCommon.h(64),
                 from /gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5/Rcpp/include/Rcpp.h(27),
                 from etsTargetFunction.h(3),
                 from etsTargetFunction.cpp(7):
/gpfs/stfc/local/apps/intel/intel_cs/2015.2.164/composer_xe_2015.2.164/compiler/include/complex(146): error #308: member "std::complex<float>::_M_value" (declared at line 1157 of "/usr/include/c++/4.4.7/complex") is inaccessible
          return __x._M_value != __y._M_value;
                                     ^

In file included from /gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5/Rcpp/include/RcppCommon.h(64),
                 from /gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5/Rcpp/include/Rcpp.h(27),
                 from etsTargetFunction.h(3),
                 from etsTargetFunction.cpp(7):
/gpfs/stfc/local/apps/intel/intel_cs/2015.2.164/composer_xe_2015.2.164/compiler/include/complex(150): error #308: member "std::complex<float>::_M_value" (declared at line 1157 of "/usr/include/c++/4.4.7/complex") is inaccessible
          return ~__z._M_value;
                      ^

In file included from /gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5/Rcpp/include/RcppCommon.h(64),
                 from /gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5/Rcpp/include/Rcpp.h(27),
                 from etsTargetFunction.h(3),
                 from etsTargetFunction.cpp(7):
/gpfs/stfc/local/apps/intel/intel_cs/2015.2.164/composer_xe_2015.2.164/compiler/include/complex(187): error #308: member "std::complex<double>::_M_value" (declared at line 1302 of "/usr/include/c++/4.4.7/complex") is inaccessible
          return __x._M_value + __y._M_value;
                     ^

In file included from /gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5/Rcpp/include/RcppCommon.h(64),
                 from /gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5/Rcpp/include/Rcpp.h(27),
                 from etsTargetFunction.h(3),
                 from etsTargetFunction.cpp(7):
/gpfs/stfc/local/apps/intel/intel_cs/2015.2.164/composer_xe_2015.2.164/compiler/include/complex(187): error #308: member "std::complex<double>::_M_value" (declared at line 1302 of "/usr/include/c++/4.4.7/complex") is inaccessible
          return __x._M_value + __y._M_value;
                                    ^

In file included from /gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5/Rcpp/include/RcppCommon.h(64),
                 from /gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5/Rcpp/include/Rcpp.h(27),
                 from etsTargetFunction.h(3),
                 from etsTargetFunction.cpp(7):
/gpfs/stfc/local/apps/intel/intel_cs/2015.2.164/composer_xe_2015.2.164/compiler/include/complex(192): error #308: member "std::complex<double>::_M_value" (declared at line 1302 of "/usr/include/c++/4.4.7/complex") is inaccessible
          return __x._M_value - __y._M_value;
                     ^

In file included from /gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5/Rcpp/include/RcppCommon.h(64),
                 from /gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5/Rcpp/include/Rcpp.h(27),
                 from etsTargetFunction.h(3),
                 from etsTargetFunction.cpp(7):
/gpfs/stfc/local/apps/intel/intel_cs/2015.2.164/composer_xe_2015.2.164/compiler/include/complex(192): error #308: member "std::complex<double>::_M_value" (declared at line 1302 of "/usr/include/c++/4.4.7/complex") is inaccessible
          return __x._M_value - __y._M_value;
                                    ^

In file included from /gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5/Rcpp/include/RcppCommon.h(64),
                 from /gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5/Rcpp/include/Rcpp.h(27),
                 from etsTargetFunction.h(3),
                 from etsTargetFunction.cpp(7):
/gpfs/stfc/local/apps/intel/intel_cs/2015.2.164/composer_xe_2015.2.164/compiler/include/complex(197): error #308: member "std::complex<double>::_M_value" (declared at line 1302 of "/usr/include/c++/4.4.7/complex") is inaccessible
          return __x._M_value * __y._M_value;
                     ^

In file included from /gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5/Rcpp/include/RcppCommon.h(64),
                 from /gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5/Rcpp/include/Rcpp.h(27),
                 from etsTargetFunction.h(3),
                 from etsTargetFunction.cpp(7):
/gpfs/stfc/local/apps/intel/intel_cs/2015.2.164/composer_xe_2015.2.164/compiler/include/complex(197): error #308: member "std::complex<double>::_M_value" (declared at line 1302 of "/usr/include/c++/4.4.7/complex") is inaccessible
          return __x._M_value * __y._M_value;
                                    ^

In file included from /gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5/Rcpp/include/RcppCommon.h(64),
                 from /gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5/Rcpp/include/Rcpp.h(27),
                 from etsTargetFunction.h(3),
                 from etsTargetFunction.cpp(7):
/gpfs/stfc/local/apps/intel/intel_cs/2015.2.164/composer_xe_2015.2.164/compiler/include/complex(202): error #308: member "std::complex<double>::_M_value" (declared at line 1302 of "/usr/include/c++/4.4.7/complex") is inaccessible
          return __x._M_value / __y._M_value;
                     ^

In file included from /gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5/Rcpp/include/RcppCommon.h(64),
                 from /gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5/Rcpp/include/Rcpp.h(27),
                 from etsTargetFunction.h(3),
                 from etsTargetFunction.cpp(7):
/gpfs/stfc/local/apps/intel/intel_cs/2015.2.164/composer_xe_2015.2.164/compiler/include/complex(202): error #308: member "std::complex<double>::_M_value" (declared at line 1302 of "/usr/include/c++/4.4.7/complex") is inaccessible
          return __x._M_value / __y._M_value;
                                    ^

In file included from /gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5/Rcpp/include/RcppCommon.h(64),
                 from /gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5/Rcpp/include/Rcpp.h(27),
                 from etsTargetFunction.h(3),
                 from etsTargetFunction.cpp(7):
/gpfs/stfc/local/apps/intel/intel_cs/2015.2.164/composer_xe_2015.2.164/compiler/include/complex(206): error #308: member "std::complex<double>::_M_value" (declared at line 1302 of "/usr/include/c++/4.4.7/complex") is inaccessible
          return -__x._M_value;
                      ^

In file included from /gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5/Rcpp/include/RcppCommon.h(64),
                 from /gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5/Rcpp/include/Rcpp.h(27),
                 from etsTargetFunction.h(3),
                 from etsTargetFunction.cpp(7):
/gpfs/stfc/local/apps/intel/intel_cs/2015.2.164/composer_xe_2015.2.164/compiler/include/complex(211): error #308: member "std::complex<double>::_M_value" (declared at line 1302 of "/usr/include/c++/4.4.7/complex") is inaccessible
          return __x._M_value == __y._M_value;
                     ^

In file included from /gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5/Rcpp/include/RcppCommon.h(64),
                 from /gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5/Rcpp/include/Rcpp.h(27),
                 from etsTargetFunction.h(3),
                 from etsTargetFunction.cpp(7):
/gpfs/stfc/local/apps/intel/intel_cs/2015.2.164/composer_xe_2015.2.164/compiler/include/complex(211): error #308: member "std::complex<double>::_M_value" (declared at line 1302 of "/usr/include/c++/4.4.7/complex") is inaccessible
          return __x._M_value == __y._M_value;
                                     ^

In file included from /gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5/Rcpp/include/RcppCommon.h(64),
                 from /gpfs/stfc/local/HCPhi012/mjw01/mjw93-mjw01/library/R/3.2.5/Rcpp/include/Rcpp.h(27),
                 from etsTargetFunction.h(3),
                 from etsTargetFunction.cpp(7):
/gpfs/stfc/local/apps/intel/intel_cs/2015.2.164/composer_

hro*_*tyr 3

我曾经也有同样的问题。看来 RcppArmadillo 不知何故#pragma warning (push)失去#pragma warning (pop)了平衡。

当英特尔的complex处理完成时,您必须禁用警告 308。

最简单的方法是添加到R的Makeconf中:

CXXFLAGS = -diag-disable 308
Run Code Online (Sandbox Code Playgroud)

这样就一劳永逸地解决了问题。