Software ======== Finding Available Software -------------------------- OIT manages a set of supported software for use on the Easley Cluster. Software binaries and libraries installed globally by OIT administrators are most often found in the /tools directory, each accompanied with a corresponding Environment Module. The best way to get started using a piece of software is to take a look at the corresponding module files. To see what software is currently available on Easley, you can look in the /tools directory or view available software modules … .. hpc-prompt:: hpcterm > ls -al /tools .. hpc-prompt:: hpcterm > module avail Each module contains detailed information about the software including a short description, where to obtain documentation, when and how it was installed, and any corresponding changes that are made to your environment when loaded .. hpc-prompt:: hpcterm > module show [version] New Software ------------ Any unlicensed open-source software of use to the general user community can be installed by OIT provided that the Easley Cluster meets the software requirements. Please contact OIT support staff or submit a software request at https://aub.ie/hpcsw. Licensed software must be legally licensed before it can be installed. Since there are many different types of licenses and different vendor definitions of these licenses, any multi-user licensed software installation needs to be coordinated with OIT support staff. Single-user licensed software should be installed in the user’s /home directory. Custom software should be built in the user’s /home directory. Users are encouraged to maintain and publish their own local module files to configure the environment for their software. OIT support staff: hpcadmin@auburn.edu Software request: https://aub.ie/hpcsw Set the Environment ------------------- Using Environment Modules ^^^^^^^^^^^^^^^^^^^^^^^^^ Different programs require that OS environment variables be correctly defined in order to use them. For example, the commonly used $PATH and $LD_LIBRARY_PATH environment variables assign the locations of available software binaries and the existence of shared libraries, respectively. Most software can be properly executed with the correct manipulation of these variables. More complex software also requires the assignment of additional, custom environment variables. These variables can be set manually or in the user’s profile through the traditional shell methods… .. hpc-prompt:: hpcterm > export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/my/library However, this can be cumbersome when a user wants to use different versions of an application, employ a different compiler, or build against different libraries. A convenient solution is to use environment modules. Environment modules provide the user a way to easily and dynamically change their environment. With simple commands, modules define the environment variables of your shell environment, so that the correct versions of executables are in the path and compiler toolchains can find the correct libraries. OIT creates modules for globally installed software in the tools directory. Users must find and load the module(s) needed by their application. Common Module Commands ^^^^^^^^^^^^^^^^^^^^^^ +------------------------------+-----------------------------------------+ | Module Command | Description | +==============================+=========================================+ | module avail [module] | List all modules available to be loaded | +------------------------------+-----------------------------------------+ | module whatis | Display info about a module | +------------------------------+-----------------------------------------+ | module list | List modules currently loaded | +------------------------------+-----------------------------------------+ | module load | Load a module | +------------------------------+-----------------------------------------+ | module unload | Unload a module | +------------------------------+-----------------------------------------+ | module swap | Unload a module | +------------------------------+-----------------------------------------+ | module purge | Remove all modules | +------------------------------+-----------------------------------------+ Creating your Own Modules ^^^^^^^^^^^^^^^^^^^^^^^^^ Users should create their own modules for software installed in their /home directory. To create your own module files, just create a directory named ‘privatemodules’ in your /home directory and put your modules there. Once that directory exists, the module system will search it for module files the next time you login and should be listed as an available. Users can review existing modules in /tools/modulefiles and use them as a template. More information can be found here: Modules homepage: http://modules.sourceforge.net/ Modules manual: http://modules.sourceforge.net/man/module.html Compile Software ^^^^^^^^^^^^^^^^ You are free to compile and run any custom software needed for your research within your home directory, provided that it is from a reputable, trustworthy source and adheres to the acceptable use policies described above. Easley provides a variety of development tools that you can use to build software, including several versions of gcc, make, make, and openmpi. Your software will most likely provide a README or INSTALL file in the source distribution that should provide hints on what tools you will need and what procedure to follow. Alternatively, check the software’s web site or other Internet sources if you encounter problems. For parallelized software, you will want to compile with your software’s recommended version of openmpi, i.e… .. hpc-prompt:: hpcterm > module avail openmpi module load openmpi/1.8.3 ./configure --prefix=/home/software/build make make install