The “elements of scientific computing” (ESC) is a collection of workshop examples and answers to common scientific computing questions. This resource should be generally useful to academic researchers who are using scientific computing methods or high-performance computing (HPC) in their work. These notes were compiled by Ryan Bradley for users of the Maryland Advanced Research Computing Center (MARCC) and we therefore refer to our largest machine named Blue Crab throughout the text. Material for the [tutorial series] is listed below.

Documentation sites

Our documentation is currently in flux. The following guide should help you find the right information.

  1. Questions about MARCC resources can be found on the main site:
    https://www.marcc.jhu.edu
  2. This “short course” is a good introduction to the machine for new users:
    https://marcc-hpc.github.io/tutorials/
  3. The current site includes a set of core documentation, common workflows, and materials for the tutorial series below.

Core Documentation for Blue Crab

The following guides cover the most critical features of the Blue Crab cluster. Most users will find the right software in our software modules system, while users who require Python, R, virtual environments, or Anaconda should consult the guide on software environments linked below.

  1. Software modules
  2. Software environments
  3. R Packages

If you cannot find what you need in the guides on this page, please contact our support staff at marcc-help@marcc.jhu.edu for additional guidance.

Common tasks and workflows

The following list provides answers to frequently asked questions and common workflows. These answers are specific to Blue Crab and designed to help users migrate their local development and calculations to our high-performance computing (HPC) environment.

Note that this site is currently under construction as we migrate some of our documentation here.

Tutorial Series

The following notes cover some of our work in the ongoing tutorial series.

  1. Epidemic: Build a simple model for an epidemic to demonstrate the use of two easy parallel computing methods.
  2. Multiprocessing and hierarchical data: Adapt the epidemic model for parallel calculations inside one python process, using only a single file for output.
  3. Extending python with high-performance code: In this brief example we extend Python with C++ code to improve performance.
  4. Databases workshop: In this exercise we will discuss the basics of relational and unstructured databases.
  5. Machine learning: a very quick introduction: Three exercises illustrate some of the basic patterns for using machine learning algorithms.
  6. Introduction to hierarchical data: We introduce the hierarchical data (h5py) format in Python and talk about hashing.