Biowulf High Performance Computing at the NIH
Development Tools and Libraries

Biowulf is intended to run code programmed by our users as well as commercial and open-source codes that may need to be built for our platform(s) if they do not come in a useable binary format. Accordingly, we host a number of compilers and build environments to suit the needs of developers and individuals that need to build projects from source.

This page provides information specific to the Biowulf development environment as well as a rough overview of the various compilers, libraries and programs used on our system. The linked documentation on specific packages and programs will usually need to be consulted for any useful understanding of them.

back to top

automake (1.16.5)

Automake is a tool for automatically generating files compliant with the GNU Coding Standards.

cmake (3.16.4)

CMake is a family of tools designed to build, test and package software.

hwloc (1.11.13)

The Hardware Locality (hwloc) software project aims at easing the process of discovering hardware resources in parallel architectures. It offers command-line tools and a C API for consulting these resources, their locality, attributes, and interconnection.

libtool (2.4.7)

GNU libtool is a generic library support script. Libtool hides the complexity of using shared libraries behind a consistent, portable interface.

m4 (1.4.19)

GNU M4 is an implementation of the traditional Unix macro processor.

Maven (3.6.3)

Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information.

back to top

Clang (3.4.2)

The goal of the Clang project is to create a new C, C++, Objective C and Objective C++ front-end for the LLVM compiler.

GCC (10.2.0)

The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, and Go, as well as libraries for these languages (libstdc++, libgfortran,...)

GHC (7.6.3)

GHC is a state-of-the-art, open source, compiler and interactive environment for the functional language Haskell.

Intel Compiler Suite (2019.4.243)

Intel Compiler Suite for Linux. Includes C/C++ and Fortran compilers. Also includes the Math Kernel Library, Integrated Performance Primitives and Thread Building Blocks.

The Portland Group suite includes the usual set of C, C++ FORTRAN77 and FORTRAN90/95 compilers.

back to top

shellcheck (0.9.0)

A shell script static analysis tool

back to top

fribidi (1.0.12)

The Free Implementation of the Unicode Bidirectional Algorithm.

golang (1.20.1)

The Go programming language

Haskell (7.6.3)

Haskell is an advanced purely-functional programming language.

Java (

Java is a high-level language and software-only platform. The two main components of the Java platform are the Java Application Programming Interface (API), which is a library of Java command lines and the Java Virtual Machine (JVM) that interprets Java code into machine language.

Julia (1.8.2)

high level, dynamic language for technical computing

Mathematica (13.2.1)

Mathematica is an interactive system for doing mathematical computation. It performs numerical, symbolic and graphical computations, and incorporates a high-level programming language.

Matlab (2022b)

MATLAB is an interactive software package for scientific and engineering numeric computation. MATLAB integrates numerical analysis, matrix computation, signal processing, and graphics in an environment where problems and solutions are expressed just as they are written mathematically.

nodejs (18.12.1)

Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine. module name: nodejs

Perl (5.34.0)

Perl is a highly capable, feature-rich programming language with over 23 years of development.

PyPy (3.8-7.3.9)

PyPy is a fast, compliant alternative implementation of the Python language.

Python (3.9)

Python is a programming language that lets you work more quickly and integrate your systems more effectively.

R (4.2.2)

R (the R Project) is a language and environment for statistical computing and graphics. R is similar to S, and provides a wide variety of statistical and graphical techniques (linear and nonlinear modelling, statistical tests, time series analysis, classification, clustering, ...).

Ruby (3.1.2)

A dynamic, open source programming language with a focus on simplicity and productivity

rust (1.62.1)

A language empowering everyone to build reliable and efficient software.

SAS (9.4M6)

Base SAS provides a scalable, integrated software environment specially designed for data access, transformation and reporting.

Scala (3.1.2)

General purpose language; multiparadigm (object-oriented, functional, concurrent elements); statically typed, type-safe

back to top

ATLAS (3.10.2)

ATLAS stands for Automatically Tuned Linear Algebra Software. ATLAS's purpose is to provide portably optimal linear algebra software.

boost (1.81)

Boost provides free peer-reviewed portable C++ source libraries. Boost libraries are intended to be widely useful, and usable across a broad spectrum of applications.

CUDA (11.3.0)

CUDA is a parallel computing platform and programming model invented by NVIDIA. It enables dramatic increases in computing performance by harnessing the power of the graphics processing unit (GPU). Run 'module load CUDA' to access tools in CUDA.

cuDNN (8.0.3)

The NVIDIA CUDA Deep Neural Network library (cuDNN) is a GPU-accelerated library of primitives for deep neural networks. cuDNN provides highly tuned implementations for standard routines such as forward and backward convolution, pooling, normalization, and activation layers.

dotnet-sdk (2.1.301)

Microsoft .NET SDK and runtime

Eigen (3.3.9)

Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.

FFmpeg (5.0.1)

A complete, cross-platform solution to record, convert and stream audio and video.

FFTW (3.3.7)

FFTW is a C subroutine library for computing the discrete Fourier transform (DFT) in one or more dimensions, of arbitrary input size, and of both real and complex data (as well as of even/odd data, i.e. the discrete cosine/sine transforms or DCT/DST).

freeglut (3.2.2)

FreeGLUT is a free-software/open-source alternative to the OpenGL Utility Toolkit (GLUT) library.

gflags (2.2.1)

The gflags package contains a library that implements commandline flags processing. It includes built-in support for C++ types like string and the ability to define flags in the source file in which they're used.

gifticlib (1.0.9)

giftilib is the Geometry format library under the Neuroimaging Informatics Technology Initiative (NIfTI). gifti is the surface-file format complement to the NIfTI volume-file format .nii.

glew (2.2.0)

The OpenGL Extension Wrangler Library (GLEW) is a cross-platform open-source C/C++ extension loading library. GLEW provides efficient run-time mechanisms for determining which OpenGL extensions are supported on the target platform.

glog (0.6.0)

The glog library implements application-level logging. This library provides logging APIs based on C++-style streams and various helper macros.

glpk (5.0)

The GLPK (GNU Linear Programming Kit) package is intended for solving large-scale linear programming (LP), mixed integer programming (MIP), and other related problems. It is a set of routines written in ANSI C and organized in the form of a callable library.

GSL (2.7)

The GNU Scientific Library (GSL) is a numerical library for C and C++ programmers. The library provides a wide range of mathematical routines such as random number generators, special functions and least-squares fitting. There are over 1000 functions in total with an extensive test suite.

LAPACK (3.7.1)

LAPACK is written in Fortran 90 and provides routines for solving systems of simultaneous linear equations, least-squares solutions of linear systems of equations, eigenvalue problems, and singular value problems.

leveldb (1.23)

LevelDB is a fast key-value storage library written at Google that provides an ordered mapping from string keys to string values.

libevent (2.1.8)

The libevent API provides a mechanism to execute a callback function when a specific event occurs on a file descriptor or after a timeout has been reached. Furthermore, libevent also support callbacks due to signals or regular timeouts.

libgit2 (1.1.0)

Libgit2 is an implementation of the GIT version control software protocols that is can be embedded in other software.

libjpeg-turbo (2.0.6)

libjpeg-turbo is a JPEG image codec that uses SIMD instructions (MMX, SSE2, NEON) to accelerate baseline JPEG compression and decompression on x86, x86-64, and ARM systems.

libpng (1.6.37)

libpng is the official PNG reference library. It supports almost all PNG features, is extensible, and has been extensively tested for over 20 years.

niftilib (3.0.0beta1)

Niftilib is a set of i/o libraries for reading and writing files in the nifti-1 data format. nifti-1 is a binary file format for storing medical image data, e.g. magnetic resonance image (MRI) and functional MRI (fMRI) brain images.

OpenCV (4.6.0)

OpenCV (Open Source Computer Vision Library) is an open source computer vision and machine learning software library. OpenCV was built to provide a common infrastructure for computer vision applications and to accelerate the use of machine perception in the commercial products.

protobuf (3.15.5)

Protocol buffers are Google's language-neutral, platform-neutral, extensible mechanism for serializing structured data. Think XML, but smaller, faster, and simpler.

pymc (5)

PyMC is a probabilistic programming library for Python that allows users to build Bayesian models with a simple Python API and fit them using Markov chain Monte Carlo (MCMC) methods.

Qt (5.14.0)

Qt is a cross-platform application framework that is used for developing application software that can be run on various software and hardware platforms with little or no change in the underlying codebase, while still being a native application with native capabilities and speed.

seqan (2.4.0)

SeqAn is an open source C++ library of efficient algorithms and data structures for the analysis of sequences with the focus on biological data. It applies a unique generic design that guarantees high performance, generality, extensibility, and integration with other libraries. This package also contains a suite of apps, including Fiona, Gustaf, Mason, RazerS 3, Yara, SeqAn T-Coffee, Stellar, and searchjoin.

snappy (1.1.7)

Snappy is a compression/decompression library. It does not aim for maximum compression, or compatibility with any other compression library; instead, it aims for very high speeds and reasonable compression.

back to top

Mpich2 (1.5)

MPICH2 is a high-performance and widely portable implementation of the Message Passing Interface (MPI) standard (both MPI-1 and MPI-2).

MVAPICH2 (2.3.7)

MPI implementation for Infiniband

OpenMPI (4.1.1)

OpenMPI is a popular implementation of Ethernet MPI with very active support and development.