Software Tools for Development on the Eagle System
Many applications on the high-performance computing (HPC) Eagle system must be compiled from source code, modified, or written from scratch. Development tools enable users to create, contribute to, and manage software at the source code level.
Cross-Platform Make and SCons
The "Cross-Platform Make" (CMake) package is from Kitware, and SCons is a modern software build tool based on Python. Both are available through Anaconda (module load conda; conda search cmake). Cmake is also available through a standalone module (module load cmake).
Git is a distributed revision control system. The system installation (i.e., /usr/bin/git) is version 1.8.3. To access more up-to-date versions, access git via Anaconda.
For NREL's HPC systems, see using Git revision control on the Eagle System.
Python is a programming language that lets you work quickly and integrate your systems effectively. Eagle hosts the Anaconda Python distribution via the "conda" module. For more information, see using Anaconda Python on the Eagle System. Python versions 2.7.5 (python) and 3.6.8 (python3) are also part of the base system image on the login nodes, but these are not intended for project support.
R is a well known statistical computing framework for data science. Our primary support for R is through Anaconda. For more information, see running R Statistical Computing Environment software on the Eagle System.
Besides Python and R, the Anaconda framework can serve as a jumping-off point to many other language interpreters and runtimes. For example,
conda search julia conda search java conda search go conda search erlang conda search rust conda search ruby conda search mysql
all result in options to enable development in these languages.
You may also find the interactivity offered by a notebook environment appealing. The Europa server offers a Jupyterhub environment with visibility of Eagle's filesystems and the job scheduler. For more information on accessing Europa and customizing your environment, see the Jupyterhub documentation.