High-Performance Computing at the NIH
GitHub YouTube @nih_hpc RSS Feed
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.15)

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

cmake (3.4.3)

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

libtool (2.4.6)

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

m4 (1.4.17)

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

Maven (3.3.9)

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.

TAU (2.26)

TAU - an acronym for Tuning And Analysis Utilities - is a suite of software tools for measuring performance of software packages running on a High Performance Computing resource such as the Biowulf cluster. It has the capability to measure CPU, memory, and I/O performance throughout the execution of an application.

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 (7.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 (8.0.1)

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

Intel Compiler Suite (2015.1.133)

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

TAU (2.26)

TAU - an acronym for Tuning And Analysis Utilities - is a suite of software tools for measuring performance of software packages running on a High Performance Computing resource such as the Biowulf cluster. It has the capability to measure CPU, memory, and I/O performance throughout the execution of an application.

back to top

An enterprise-ready Python distribution for large-scale data processing, predictive analytics, and scientific computing

golang (1.8)

The Go programming language

Haskell (8.0.1)

Haskell is an advanced purely-functional programming language.

Java (1.8.0_92)

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 (0.5.2)

high level, dynamic language for technical computing

Mathematica (11.0)

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

Matlab (

MATLAB is a high-performance 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.

openjdk (1.8.0_121)

OpenJDK (Open Java Development Kit) is a free and open source implementation of the Java Platform, Standard Edition (Java SE). It is the official reference implementation of Java SE since version 7.[

Perl (5.18.2)

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

PHP (5.6.4)

PHP is a widely-used general-purpose scripting language that is especially suited for Web development and can be embedded into HTML.

PyPy (5.0)

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

Python (2.7.9)

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

R (3.4.0)

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 (2.2.0)

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

SAS (9.4)

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

Scala (2.12.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.63)

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 (8.0.4)

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).

cuDNN (5.0.5)

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.

Eigen (3.2.5)

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

FFmpeg (3.2.2)

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

FFTW (3.3.6)

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).

gflags (2.1.2)

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.

glog (0.3.4)

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

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.18)

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

libjpeg-turbo (1.4.80)

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.21)

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

LMDB (0.9.16)

LMDB is an ultra-fast, ultra-compact key-value embedded data store developed by Symas for the OpenLDAP Project. It uses memory-mapped files, so it has the read performance of a pure in-memory database while still offering the persistence of standard disk-based databases, and is only limited to the size of the virtual address space, (it is not limited to the size of physical RAM).

matlab-npy (524bd14)

read/write NumPy .NPY files in MATLAB

OpenCV (3.2.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 (2.6.1)

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

Qt (5.9.1)

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.

snappy (1.1.3)

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.2)

MPI implementation for Infiniband

OpenMPI (2.0.1)

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