Introduction to Scientific Computing

marcc-hardware

Course description

The most important tool in science and engineering, computers find applications in all aspects of academia and industry alike. Though expected to employ this tool effectively, few scientists or engineers have been trained to harness the power at their fingertips, and most could benefit significantly from a high-level exposure to scientific computing methodology. This course will introduce many computational tools, tricks, and tips that would otherwise require years of trial and error to learn.

This course will be strongly focused on increasing user proficiency with computational resources, such as those provided by the Maryland Advanced Research Computing Center (MARCC) run by Johns Hopkins University.

At a glance

Prerequisites: None

Schedule: 13:00-16:00 on Tuesday, Wednesday, and Friday 10 – 26 January 2017

Location: Hackerman B17

Syllabus: Download

Selected topics:

  • Computer hardware basics
  • Computer software basics (compilers, linkers, libraries, etc.)
  • Using Linux (connecting, navigating, text editing, software installation, etc.)
  • Scripting (bash and python)
  • Code development best practices (style, modularity, documentation, etc.)
  • Code development tools (repositories, debuggers, profilers, etc.)
  • Introduction to data management
  • Introduction to high-performance computing (MARCC and other shared systems)
  • Parallelization (OpenMP, MPI, Cuda)

Course content