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.

Compiler Tools
back to top

automake (1.16.5)

Automake is a tool for automatically generating Makefile.in 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.

Compilers
back to top

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

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.

Debugging
back to top

shellcheck (0.9.0)

A shell script static analysis tool

Editors
back to top

Emacs (28.1)

Emacs is a text and source code editor for text terminals and X. It has a vast set of features and is well suited for doing everything from reading mail and simple text editing to managing and editing large programming projects. It has its own help and tutorial which can be accessed by typing Ctrl-h i and Ctrl-h t respectively. Type emacs [filename] to edit a file. For more info, see here.

ESS (24.01.0)

Emacs Speaks Statistics is an Emacs mode for interactive statistical programming and data analysis. Languages supported: the S family (S, S-PLUS and R), SAS, BUGS/JAGS, Stata and XLispStat. First load an R module per our R applications page. Putting the line (load "/usr/local/share/emacs/site-lisp/ess-17.11/lisp/ess-site") in your .emacs file, or its one-time equivalent M-x load-library /usr/local/share/emacs/site-lisp/ess-17.11/lisp/ess-site, will make an *ESS* buffer available.

Nano (2.3.1)

Nano is a simple, user-friendly text editor derived from the editor in the Pine email client. Type nano [filename] to edit a file and use the key commands listed at the bottom of the screen to access various functions. It is equivalent to Pico.

nedit (5.7)

NEdit is an GUI style editor for plain text and source code files. It provides mouse based editing and a streamlined editing style, based on popular Macintosh and MS Windows editors, using the X-window system. NEdit requires an X-based workstation or X-Terminal. Type nedit [filename] to edit a file.

neovim (0.9.5)

Neovim is a refactor, and sometimes redactor, in the tradition of Vim (which itself derives from Stevie). It is not a rewrite but a continuation and extension of Vim.

SciTE (5.4.2)

SciTE or SCIntilla based Text Editor is a cross-platform text editor. Lightweight and built for speed, it is designed mainly for source editing, and performs syntax highlighting and inline function reference for many different languages.

Tex (2022)

Tex + Latex + associated packages for high-quality text formatting.

texinfo (6.8)

Texinfo is the official documentation format of the GNU project

vim (9.0)

a text editor that is upwards compatible to Vi. It can be used to edit all kinds of plain text. It is especially useful for editing programs with syntactical coloring.

vscode (n/a)

Visual Studio Code is a lightweight but powerful source code editor which runs on your desktop and is available for Windows, macOS and Linux. It comes with built-in support for JavaScript, TypeScript and Node.js and has a rich ecosystem of extensions for other languages (such as C++, C#, Java, Python, PHP, Go) and runtimes (such as .NET and Unity).

Languages
back to top

golang (1.21.1)

The Go programming language

Java (18.0.1.1)

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

high level, dynamic language for technical computing

Mathematica (13.3.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 (2023a)

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

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

Perl (5.38)

Perl is a highly capable, feature-rich programming language with over 30 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.3.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.76.0)

A language empowering everyone to build reliable and efficient software.

SAS (9.4M7)

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

Libraries
back to top

boost (1.84)

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.

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.

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

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.

libfreetype (2.13.2)

FreeType is a freely available software library to render fonts.

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.

lz4 (1.9.4)

LZ4 is lossless compression algorithm, providing compression speed > 500 MB/s per core, scalable with multi-cores CPU. It features an extremely fast decoder, with speed in multiple GB/s per core, typically reaching RAM speed limits on multi-core systems.

niftilib (3.0.0)

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.

openblas (0.3.26)

OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version.

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.

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.

vcfpy (0.13.6)

Python library for handling the variant call format. Differs from pyvcf in that it has the ability to modify per-sample genotype information.

MPI
back to top

mpich (4.1.3)

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

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