Building Software Packages

Overview

There are several possible avenues for building software on the cluster.  This section discusses the options.

Contents

  • Modules for Compilers, Build Tools, and Libraries
    • GNU Compilers
    • Intel Compilers
    • Cmake
    • MPI
  • Using Spack to Build Software

Compilers, Build Tools, and Libraries

There are plenty of software modules available for compilers, build systems, and libraries that can make it much easier to build software yourself.  

GNU Compilers

The Nova cluster has multiple versions of GNU compilers.   

jedicker@nova21-swift-2 ~]$ module spider gcc
-----------------------------------------------------------------------------------------
 gcc:
-----------------------------------------------------------------------------------------
    Versions:
       gcc/7.5.0-lohvu65
       gcc/8.5.0-vgowph4
       gcc/8.5.0-7u6zupk
       gcc/12.2.0-khmr45w
       gcc/14.2.0-cuda12-vx6uhdf
    Other possible modules matches:
    
       gcc-runtime
       

This shows several versions of gcc are available:  7.5, 8.5, 12.2, and 14.2 (with CUDA).   To load the 12.2 version, do:  
$ module load gcc/12.2

Intel Compilers

If you do need to use Intel Compilers, you can do:

$ module spider intel
-----------------------------------------------------------------------------------
 intel:
-----------------------------------------------------------------------------------
    Versions:
       intel/18.2
       intel/19.5
       intel/20.1
       intel/22.3.1
       intel/2024.2.0

Note that Intel 22.3.1 and later are OneAPI versions.

Also, code built with Intel compilers may not be fully optimized for systems with AMD processors.  

Cmake

To see the available modules for cmake, do:  module spider cmake

MPI

Building MPI yourself is not really necessary.  The Nova cluster provides software modules for OpenMPI.  See module spider openmpi  to see what versions are available.