[R] Help executing R on High Performance Cluster
Rhon Calderon, Eric
Er|c@RhonC@|deron @end|ng |rom pennmed|c|ne@upenn@edu
Tue Oct 4 15:36:59 CEST 2022
Hi,
I need some help executing recently downloaded R on my HPC.
Here is the script I used to install R on my HPC module:
wget https://cran.r-project.org/src/base-prerelease/R-devel.tar.gz
tar -xvf R-devel.tar.gz
cd /home/ericrhon/labsoftware/R-devel/
./configure --prefix=/home/ericrhon/labsoftware/R-devel -with-recommended-packages=no --without-x --with-cairo --with-libpng --with-libtiff --with-jpeglib --enable-R-shlib --with-pcre1
make
make install
After I installed, I tried to run /home/ericrhon/labsoftware/R-devel/R. But I get the next error:
/home/ericrhon/labsoftware/R-devel/bin/exec/R: line 272: /home/ericrhon/labsoftware/R-devel/bin/exec/R: Argument list too long
/home/ericrhon/labsoftware/R-devel/bin/exec/R: line 272: /home/ericrhon/labsoftware/R-devel/bin/exec/R: Success
Here is the exec script of R, line 272 is highlighted:
#!/bin/sh
# Shell wrapper for R executable.
R_HOME_DIR="/home/ericrhon/labsoftware/R-devel"
if test "${R_HOME_DIR}" = "/home/ericrhon/labsoftware/shared_Renv/versions/R-devel/lib64/R"; then
case "linux-gnu" in
linux*)
run_arch=`uname -m`
case "$run_arch" in
x86_64|mips64|ppc64|powerpc64|sparc64|s390x)
libnn=lib64
libnn_fallback=lib
;;
*)
libnn=lib
libnn_fallback=lib64
;;
esac
if [ -x "/home/ericrhon/labsoftware/shared_Renv/versions/R-devel/${libnn}/R/bin/exec/R" ]; then
R_HOME_DIR="/home/ericrhon/labsoftware/shared_Renv/versions/R-devel/${libnn}/R"
elif [ -x "/home/ericrhon/labsoftware/shared_Renv/versions/R-devel/${libnn_fallback}/R/bin/exec/R" ]; then
R_HOME_DIR="/home/ericrhon/labsoftware/shared_Renv/versions/R-devel/${libnn_fallback}/R"
## else -- leave alone (might be a sub-arch)
fi
;;
esac
fi
if test -n "${R_HOME}" && \
test "${R_HOME}" != "${R_HOME_DIR}"; then
echo "WARNING: ignoring environment value of R_HOME"
fi
R_HOME="${R_HOME_DIR}"
export R_HOME
R_SHARE_DIR="${R_HOME_DIR}/share"
export R_SHARE_DIR
R_INCLUDE_DIR="${R_HOME_DIR}/include"
export R_INCLUDE_DIR
R_DOC_DIR="${R_HOME_DIR}/doc"
export R_DOC_DIR
# Since this script can be called recursively, we allow R_ARCH to
# be overridden from the environment.
# This script is shared by parallel installs, so nothing in it should
# depend on the sub-architecture except the default here.
: ${R_ARCH=}
usage="
Usage: R [options] [< infile] [> outfile]
or: R CMD command [arguments]
Start R, a system for statistical computation and graphics, with the
specified options, or invoke an R tool via the 'R CMD' interface.
Options:
-h, --help Print short help message and exit
--version Print version info and exit
--encoding=ENC Specify encoding to be used for stdin
--encoding ENC
RHOME Print path to R home directory and exit
--save Do save workspace at the end of the session
--no-save Don't save it
--no-environ Don't read the site and user environment files
--no-site-file Don't read the site-wide Rprofile
--no-init-file Don't read the user R profile
--restore Do restore previously saved objects at startup
--no-restore-data Don't restore previously saved objects
--no-restore-history Don't restore the R history file
--no-restore Don't restore anything
--vanilla Combine --no-save, --no-restore, --no-site-file,
--no-init-file and --no-environ
--no-readline Don't use readline for command-line editing
--max-ppsize=N Set max size of protect stack to N
--min-nsize=N Set min number of fixed size obj's (\"cons cells\") to N
--min-vsize=N Set vector heap minimum to N bytes; '4M' = 4 MegaB
-q, --quiet Don't print startup message
--silent Same as --quiet
-s, --no-echo Make R run as quietly as possible
--interactive Force an interactive session
--verbose Print more information about progress
-d, --debugger=NAME Run R through debugger NAME
--debugger-args=ARGS Pass ARGS as arguments to the debugger
-g TYPE, --gui=TYPE Use TYPE as GUI; possible values are 'X11' (default)
and 'Tk'.
--arch=NAME Specify a sub-architecture
--args Skip the rest of the command line
-f FILE, --file=FILE Take input from 'FILE'
-e EXPR Execute 'EXPR' and exit
FILE may contain spaces but not shell metacharacters.
Commands:
BATCH Run R in batch mode
COMPILE Compile files for use with R
SHLIB Build shared library for dynamic loading
INSTALL Install add-on packages
REMOVE Remove add-on packages
build Build add-on packages
check Check add-on packages
LINK Front-end for creating executable programs
Rprof Post-process R profiling files
Rdconv Convert Rd format to various other formats
Rd2pdf Convert Rd format to PDF
Rd2txt Convert Rd format to pretty text
Stangle Extract S/R code from Sweave documentation
Sweave Process Sweave documentation
Rdiff Diff R output ignoring headers etc
config Obtain configuration information about R
javareconf Update the Java configuration variables
rtags Create Emacs-style tag files from C, R, and Rd files
Please use 'R CMD command --help' to obtain further information about
the usage of 'command'.
Options --arch, --no-environ, --no-init-file, --no-site-file and --vanilla
can be placed between R and CMD, to apply to R processes run by 'command'
Report bugs at <https://bugs.R-project.org>."
## some systems have a more portable sed, e.g. /usr/xpg4/bin/sed on Solaris,
## so make sure that is used.
SED=/usr/bin/sed
export SED
error () {
echo "ERROR: $*" >&2
exit 1
}
### Argument loop
args=
debugger=
debugger_args=
gui=
while test -n "${1}"; do
case ${1} in
RHOME|--print-home)
echo "${R_HOME}"; exit 0 ;;
CMD)
shift;
export R_ARCH
. "${R_HOME}/etc${R_ARCH}/ldpaths"
exec sh "${R_HOME}/bin/Rcmd" "${@}" ;;
-g|--gui)
if test -n "`echo ${2} | ${SED} 's/^-.*//'`"; then
gui="${2}"
args="${args} ${1} ${2}"
shift
else
error "option '${1}' requires an argument"
fi
;;
--gui=*)
gui=`echo "${1}" | ${SED} -e 's/[^=]*=//'`
args="${args} ${1}"
;;
-d|--debugger)
if test -n "`echo ${2} | ${SED} 's/^-.*//'`"; then
debugger="${2}"; shift
else
error "option '${1}' requires an argument"
fi
;;
--debugger=*)
debugger=`echo "${1}" | ${SED} -e 's/[^=]*=//'` ;;
--debugger-args=*)
debugger_args=`echo "${1}" | ${SED} -e 's/[^=]*=//'` ;;
-h|--help)
echo "${usage}"; exit 0 ;;
--args)
break ;;
--arch)
if test -n "`echo ${2} | ${SED} 's/^-.*//'`"; then
R_ARCH="/${2}"
shift
else
error "option '${1}' requires an argument"
fi
## check sub-architecture here for a better error message
if ! test -d ${R_HOME}/etc${R_ARCH}; then
error "sub-architecture '${1}' is not installed"
fi
;;
--arch=*)
r_arch=`echo "${1}" | ${SED} -e 's/[^=]*=//'`
R_ARCH="/${r_arch}"
## check sub-architecture here for a better error message
if ! test -d ${R_HOME}/etc${R_ARCH}; then
error "sub-architecture '${r_arch}' is not installed"
fi
;;
-e)
TAB=`printf "\t"`
if test -n "`echo ${2} | ${SED} 's/^-.*//'`"; then
a=`(echo "${2}" && echo) | ${SED} -e 's/ /~+~/g' | \
${SED} -e :a -e N -e '$!ba' -e 's/\n/~n~/g' -e 's/~n~$//g' -e "s/$TAB/~t~/g"`
shift
else
error "option '${1}' requires a non-empty argument"
fi
args="${args} -e $a"
;;
-f)
if test -n "`echo ${2} | ${SED} 's/^-.*//'`"; then
a=`echo "${2}" | ${SED} -e 's/ /~+~/g'`; shift
else
error "option '${1}' requires a filename argument"
fi
args="${args} -f $a"
;;
--file=*)
a=`echo "${1}" | ${SED} -e 's/[^=]*=//' | ${SED} -e 's/ /~+~/g'`
args="${args} --file=$a"
;;
--no-environ)
R_ENVIRON=''
export R_ENVIRON
R_ENVIRON_USER=''
export R_ENVIRON_USER
args="${args} ${1}"
;;
--no-site-file)
R_PROFILE=''
export R_PROFILE
args="${args} ${1}"
;;
--no-init-file)
R_PROFILE_USER=''
export R_PROFILE_USER
args="${args} ${1}"
;;
--vanilla)
R_ENVIRON=''
export R_ENVIRON
R_ENVIRON_USER=''
export R_ENVIRON_USER
R_PROFILE=''
export R_PROFILE
R_PROFILE_USER=''
export R_PROFILE_USER
args="${args} ${1}"
;;
*)
args="${args} ${1}" ;;
esac
shift
done
. "${R_HOME}/etc${R_ARCH}/ldpaths"
R_binary="${R_HOME}/bin/exec${R_ARCH}/R"
export R_ARCH
case "${gui}" in
Tk|tk|X11|x11)
;;
"")
;;
*)
error "unknown GUI ${gui}"
esac
## R_HOME may have moved, so check
if test -x "${R_HOME}"; then
:
else
error "R_HOME ('${R_HOME}') not found"
fi
## Startup
if test -z "${debugger}"; then
exec "${R_binary}" ${args} "${@}"
else
## Ideally, we would like the debugger to start R with additional
## ('inferior') arguments, but not all debuggers can do this. We know
## about valgrind and some versions of GDB , and deal with these.
## Otherwise, to be on the safe side, we disregard non-debugger
## command line args.
args_ok=no
case "`${debugger} --version 2>/dev/null`" in
"GNU gdb"*)
if ${debugger} --help 2>/dev/null | \
grep ' *--args' >/dev/null; then
args_ok=yes
debugger_args="${debugger_args} --args"
fi
;;
valgrind*)
args_ok=yes
;;
esac
if test -n "${args}${*}" && test "${args_ok}" = no; then
args=`expr "${args} ${*}" : " *\(.*\)"`
echo "*** Further command line arguments ('${args}') disregarded"
echo "*** (maybe use 'run ${args}' from *inside* ${debugger})"
echo ""
exec ${debugger} ${debugger_args} "${R_binary}"
else
exec ${debugger} ${debugger_args} "${R_binary}" ${args} "${@}"
fi
fi
### Local Variables: ***
### mode: sh ***
### sh-indentation: 2 ***
### End: ***
Could you please help me? I have been trying to load it unsuccessfully.
Thanks.
Eric
[[alternative HTML version deleted]]
More information about the R-help
mailing list