Spring 2017 MARCC Tutorial Series

This spring I will be teaching a series of tutorials through the Maryland Advanced Research Computing Center (MARCC). Here are the details:

Spring 2017: Introduction to Scientific Computing

Computers, one of the most important tools in science and engineering, find applications in all aspects of academia and industry alike. Though expected to employ this tool effectively, few scientist and 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 tutorial series will introduce many computational tools, tricks, and tips that would otherwise take years of trial and error to learn.

Schedule

During the spring semester, we will offer the tutorial series at the Johns Hopkins University Homewood campus:

  • Mondays from 3:00 pm to 5:00 pm in Malone G33, beginning 30 January and ending 1 May
  • Tuesdays from 3:00 pm to 5:00 pm in Bloomberg 462, beginning 31 January and ending 2 May

During the summer, we will repeat the tutorial series at the Johns Hopkins University School of Medicine: details to be announced

Prerequisites

No prior experience is required. Please bring a laptop to participate in the tutorials.

Attendance policy

The tutorial series is designed to build on itself as it progresses and we strongly discourage skipping tutorials. For a smaller time commitment, consider attending one of our training workshops.

Topics

These are the topics that we plan to cover:

  • Week 1: Computer hardware basics (single-user, cluster)
  • Week 2: Connecting to a remote system
  • Week 3: Linux basics (navigation, Bash, Vim, file transfer)
  • Week 4: MARCC environment (lmod, Slurm)
  • Week 5: Code repositories (Git)
  • Week 6: C basics (compiling, linking, debugging, profiling)
  • Week 7: Installing packages/libraries
  • Week 8: Python basics
  • Week 9: Python data analysis
  • Week 10: Data visualization (ParaView)
  • Week 11: Parallelization (OpenMP, MPI, Cuda)
  • Week 12: Data management plans
  • Week 13: LaTeX basics

We reserve the right to modify this schedule as the tutorial series progresses.

Register

Click here to register for this free MARCC Training Series.

New course for Intersession 2017: Introduction to Scientific Computing

I am happy to announce that I will be offering a new course for Intersession 2017 at Johns Hopkins University, entitled Introduction to Scientific Computing (EN.530.391.13). The interactive two-credit course designed to teach upper-level undergraduate students and new graduate students about the true capabilities of their computers–beyond email and internet–will take place from 10 through 26 January 2017.

As with all Intersession courses, Introduction to Scientific Computing will be offered free of charge to students enrolled at Johns Hopkins University for the fall 2015 semester.

Registration for Intersession 2017 opens 6 December 2016 at 07:00. Have a question about the course? Submit a comment below or contact me.

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.

Prerequisites: none

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

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, etc.)
  • Code development tools (repositories, debuggers, profilers, etc.)
  • Introduction to high-performance computing (MARCC and other shared systems)
  • Parallelization (OpenMP, MPI, Cuda)

New appointment: Research Scientist

whiting.logo.small.vertical.blue-croppedI am excited to announce that I have accepted an appointment as an Assistant Research Scientist in the Department of Mechanical Engineering at the Johns Hopkins University. In this new role, I will work extensively within the Maryland Advanced Research Computing Center (MARCC; pronounced Marcy) to support the development and implementation of high-performance computing applications used for transformational research within the University and beyond. As a natural extension of my Ph.D. work, I look forward to developing new computational capabilities and to teaching users about this outstanding high-performance computing resource.

marcc-hardware
Some of the hardware that comprises MARCC’s Bluecrab cluster, as viewed during a tour of the facility with my Fall 2015 course.
sed-duct-combined
An example of a particle-laden flow simulation performed using Bluebottle on MARCC.

Announcing a new course for JHU’s Intersession 2016: Applications in Scientific Computing

I am happy to announce that I will be offering a new course for Intersession 2016 at Johns Hopkins University, entitled Applications in Scientific Computing (EN.530.390.13). The interactive two-credit course designed as an introduction to scientific computing for upper-level undergraduate students will take place from 4 through 22 January 2016. New graduate students are also encouraged to attend.

As will all Intersession courses, Applications in Scientific Computing will be offered free of charge to students enrolled at Johns Hopkins University for the fall 2015 semester. All reference textbooks used for the course will be freely available online.

Registration for Intersession 2016 opens 1 December. For more information, submit a comment below or contact me.

Course description

Scientific discovery and computing capability have progressed inseparably for more than the last century, but few theoretically-focused courses find time to discuss this important connection. Guided by various examples borrowed from physics and engineering courses, we will interactively explore methods of solving problems numerically using contemporary computational tools. Example problems will draw from the following fields: dynamical systems, continuum mechanics, molecular dynamics, and robotics.

Prerequisites: calculus, differential equations, linear algebra

Schedule: 13:00-16:00 on Tuesday, Wednesday, and Friday from 4 through 22 January 2016

Relevant topics

  • Computer hardware
  • Data structures
  • Sources of error
  • Sorting and selection
  • Numerical discretization
  • Interpolation and extrapolation
  • Random number generation
  • Solution of linear systems
  • Eigensystems
  • Integration of functions
  • Initial- and boundary-value problems