我尝试使用高性能群集在我的本地目录上设置最新版本的R,因此当我提交作业时,我可以获取正确的库,以便分配的节点将使用最新的R版本。
在HPC中,我的本地/ bin驱动器确实具有最新版本的R。
根据作业提交和节点分配的说明,我们应该使用限制为R版本3.3.2(不是最新版本)来获取setup.bash脚本。
我查看了setup.bash文件,并且对创建本地版本以设置R库的导出感兴趣,因此可以使用最新的R版本设置节点。
case $PATH in
*/usr/usc/R/3.3.2/bin*)
;;
*) PATH=/usr/usc/R/3.3.2/bin:$PATH
;;
esac
case "${LD_LIBRARY_PATH:-}" in
*/usr/usc/R/3.3.2/lib64/R/lib*)
;;
*) LD_LIBRARY_PATH=/usr/usc/R/3.3.2/lib6/R/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
;;
esac
if [ -n "${MANPATH:-}" ]; then
MANPATH=/usr/usc/R/3.3.2/share/man:$MANPATH
elif [ -x /usr/bin/manpath ]; then
MANPATH=/usr/usc/R/3.3.2/bin/share/man:$(manpath)
else
MANPATH=/usr/usc/R/3.3.2/bin/share/man
fi
export LD_LIBRARY_PATH MANPATH
setup.bsh脚本将R二进制别名设置为$ PATH,$ LD_LIBRARY_PATH和$ MANPATH。
我可以在我的本地目录上模仿这个并设置一个节点,而不是在HPC下使用更高版本的R吗?
我不确定这是否会导致权限问题。
我已经在我的本地HPC目录上编译了特定的R版本,并且会提供该版本,但我的问题是HPC上是否允许这样做? 〜
答案 0 :(得分:1)
获取设置脚本后,只需覆盖设置即可。只需确保
require("rgl")
require("fields")
degreeToRadian<-function(degree){
return (0.01745329252*degree)
}
turnPolarToX<-function(Amplitude,Coordinate){
return (Amplitude*cos(degreeToRadian(Coordinate)))
}
turnPolarToY<-function(Amplitude,Coordinate){
return (Amplitude*sin(degreeToRadian(Coordinate)))
}
# inputs for the code
test<-runif(359,min=-50,max=-20) # the 359 elements correspond to the polar coordinates of 1 to 359
test2<-runif(359,min=-50,max=-20) # the 359 elements correspond to the polar coordinates of 1 to 359
test3<-runif(359,min=-50,max=-20) # the 359 elements correspond to the polar coordinates of 1 to 359
# My three input vectors above are considered to be dBm values, typically unit for antenna or propagation measurements
# I want to plot those on three different 3d planes the XY, the YZ and the ZX. Since the rgl does not support
# polar coordinates I need to cast my polar coordinates to cartesian ones, using the three functions
# defined at the beginning. I also need to change my dBm values to their linear relative ones that are the mW
# Convert my dBm to linear ones
test<-10^(test/10)
test2<-10^(test2/10)
test3<-10^(test3/10)
# Start preparing the data to be plotted in cartesian domain
X1<-turnPolarToX(test,1:359)
Y1<-turnPolarToY(test,1:359)
Z1<-rep(0,359)
X2<-turnPolarToX(test2,1:359)
Y2<-rep(0,359)
Z2<-turnPolarToY(test2,1:359)
X3<-rep(0,359)
Y3<-turnPolarToX(test3,1:359)
Z3<-turnPolarToY(test3,1:359)
# Time for the plotting now
Min<-min(test,test2,test3)
Max<-max(test,test2,test3)
bgplot3d( suppressWarnings (
image.plot( legend.only=TRUE, legend.args=list(text='dBm/100kHz'), zlim=c(Min,Max),col=plotrix::color.scale(seq(Min,Max,length.out=21),c(0,1,1),c(0,1,0),0,xrange=c(Min,Max)))
) # zlim is the colorbar numbers
)
# for below alternatively you can also use the lines3d to get values
points3d(X1,Y1,Z1,col=plotrix::color.scale(test,c(0,1,1),c(0,1,0),0,xrange=c(Min,Max)),add=TRUE)
points3d(X2,Y2,Z2,col=plotrix::color.scale(test2,c(0,1,1),c(0,1,0),0,xrange=c(Min,Max)),add=TRUE)
points3d(X3,Y3,Z3,col=plotrix::color.scale(test3,c(0,1,1),c(0,1,0),0,xrange=c(Min,Max)),add=TRUE)
然后,只需运行你的R
export PATH=$WHERE_YOUR_R_IS/bin:${PATH}
export LD_LIBRARY_PATH=$WHERE_YOUR_R_IS/lib:${LD_LIBRARY_PATH}
应该做点什么。
至于:
“我已经在我的本地HPC目录上编译了特定的R版本,并且会提供该版本,但我的问题是HPC是否允许这样做?〜”
如果您可以从属于HPC的所有节点访问您的目录,我在这里看不到任何问题。为什么要被禁止?试试吧。