HPC has a very small team of computational scientists that are responsible for everything related to helping users run their applications on the Henry2 cluster. Henry2 has hundreds of users in very different fields of expertise, each using different types of software. Additionally, there are a huge number of permutations of possible ways to install that software (versions, dependencies, options, etc.). This is why the core set of software that is officially supported by staff must remain small. HPC staff will help all users with any problems in installing user maintained software, but users are asked to first look at the documentation and make efforts to do installs themselves as much as feasible. Providing as much detail as possible when requesting support for software installs will result in much speedier resolution times for all.
Please help us grow this FAQ by emailing Support with additional questions or with suggestions on additions and clarifications.
Clicking on the topic will expand the text with further details.
Will my software run on Henry2?
The application must run on Linux. Specifically, Henry2 runs Linux CentOS 7 (use
cat /etc/centos-release to check current release), which also is usually compatible with RHEL. If an application says "Windows only", or is only supported on a different flavor of Linux (e.g. Ubuntu), it cannot be installed on Henry2. Check out the VCL or contact VCL support for using applications that require a different operating system.
To find out the OS requirements for an application, look on the website under Download, "Buy it", Specs, or Install/Compiling documentation.
When Singularity is fully deployed on the cluster, users may be able to run applications that require root to install, or that only run on Ubuntu, etc.
IT staff from different departments:, please contact HPC if you are willing to assist with creating Singularity containers for your users.
There are generally three resolutions to this issue: 1) The program may be installed by specifying the proper installation directory, 2) The program may be installed 'from source' rather than via package manager, or 3) The program actually needs to be installed as root and therefore cannot be installed.
1) Generally, the basic install instructions for an application automatically try to install to a directory that only has root write access, such as /usr/bin. The solution is to specify a different install path, which should generally be in a space for user maintained software in /usr/local/usrapps/$GROUP/$USER/[packagename]. It is most commonly done in a configure step by adding
--prefix=[path to installation location].
2)Many applications recommend installing an application and/or all the necessary dependencies via a package manager, e.g.
sudo yum install, etc. For these, look for instructions on How to install from source. Package managers greatly simplify installations, but they are rarely necessary.
3)There are some applications that need to be installed system wide as root to function properly. These may not be installed on the cluster. Check out the VCL or contact VCL support to install these applications. Henry2 also has basic support for running containers. Users may run working Singularity images, or Docker images that may convert to a Singularity image, in the sif queue. There are not enough resources (i.e. HPC staff) to install or debug containers at this time.
Before buying a software licence with the intention of running the application on the cluster, check whether or not it can be successfully installed and properly run on the cluster, but also check the licensing requirements. Some licences are system wide, but others require a license for every node that might run it - in the case of Henry2, that can be over 900 licences needed. Contact HPC Staff or NCSU Software Licensing Management for more information.
Before spending a lot of time doing a complicated software install, and before buying software licenses, check the requirements for running especially if the application requires a GUI. While GUI applications may be run on the HPC, rendering performance is often poor unless it is run directly from the HPC-VCL. HPC-VCL images are not as powerful as the compute nodes on the cluster, and by default they have 16GB of RAM and a limited number of cores. Contact VCL for information about the possibility of requesting a more powerful image.
What should I do first?
module availto see the officially supported software packages. See the Software page as well, which contains additional available sponsored software that is not officially maintained by staff, but sponsored by an individual willing to install and maintain the software for others. To use sponsored software, send a request to be added to the appropriate group.
A space in /usrapps is by default writable by everyone in the project, so all members have permissions to write directly to the /usrapps/$GROUP space. This leads to confusion and potential permissions problems. Users should create their own space within the group directory. Each user should make their own directory to install software and adjust permissions as necessary.
To get the software, download from trusted websites to Henry2.
wget https:some-domain/mysoftware/latest.tar.gz tar zxvf latest.tar.gz
git clone https:github-path/mysoftware/latest.gitThat will download the source to a directory called latest.
Where to install? For software to be used regularly by a research group, install to the group's space in /usr/local/usrapps. Software that is used temporarily for testing purposes only might more appropriately be installed in the scratch directory at the discretion of the user.
Where to install from? Usually, installations should be done from a login node. Note that compute nodes cannot download source code and packages from the internet, and neither compute nodes nor VCL nodes may write to /usr/local/usrapps. When compiling a software using compiler options to optimize for architecture, the compilation might be done on a node with the targeted architecture, with the understanding that it consequently may not run on any nodes not having the instruction set(ISA) specified. See Advanced Compiler Options for more details on creating binaries optimized for multiple ISAs.
How to install?
Sometimes there are multiple ways to install a software package. Here are some methods, in order of increasing difficulty.
cd [path to source directory] ./configure --prefix=[path to installation location] make make check #or 'make test' make installThe configure script checks the environment and creates a makefile accordingly; therefore, the environment must be set so that the necessary dependencies are found when running configure. For example, if the application requires the Intel compiler and Intel MPI, do
module load PrgEnv-intel ./configure --prefix=[path to installation location] make make check #or 'make test' make install
mkdir build cd build module load cmake cmake [path to source directory] make make check #or 'make test' make install
mkdir build cd build module load cmake ccmake [path to source directory] [Use the GUI to set the install prefix and other environment variables. Choose the options listed at the bottom, typically configure, then generate, then exit.] make make check #or 'make test' make install
bashbefore following the instructions. Type
exitto return to the default shell.
chmod u+x script.csh
touchcommand by default. Open a help ticket requesting access to the touch command, and copy/paste the compile error that indicates the requirement of the touch command.
How can I get help?