HPC节点R在HPC节点

时间:2017-06-29 20:17:37

标签: r hpc

我尝试使用高性能群集在我的本地目录上设置最新版本的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上是否允许这样做? 〜

1 个答案:

答案 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的所有节点访问您的目录,我在这里看不到任何问题。为什么要被禁止?试试吧。