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 publication in the Journal Computer Physics Communications

My paper, GPU-centric resolved-particle disperse two-phase flow simulation using the Physalis method, has recently been published in the Journal Computer Physics Communications. The sibling to my previous paper, Resolved-particle simulation by the Physalis method: Enhancements and new capabilities, the current work more thoroughly details the algorithmic advancements I developed to improve the computational throughput of the Physalis method itself. As can be seen in the figure below, the largest simulations run more than 60 times faster when using an Nvidia Titan GPU than an Intel CPU alone.

sierakowski-2016-f9

Abstract:

We present work on a new implementation of the Physalis method for resolved-particle disperse two-phase flow simulations. We discuss specifically our GPU-centric programming model that avoids all device-host data communication during the simulation. Summarizing the details underlying the implementation of the Physalis method, we illustrate the application of two GPU-centric parallelization paradigms and record insights on how to best leverage the GPU’s prioritization of bandwidth over latency. We perform a comparison of the computational efficiency between the current GPU-centric implementation and a legacy serial-CPU-optimized code and conclude that the GPU hardware accounts for run time improvements up to a factor of 60 by carefully normalizing the run times of both codes.

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.

Successful Ph.D. defense

IMG_20160310_130620-2 (1)
My doctoral advisor, Andrea Prosperetti, and I celebrate my successful Ph.D. defense.

On Thursday afternoon, I became the newest Ph.D. in the Mechanical Engineering Department at the Johns Hopkins University after I successfully defended my dissertation, which was entitled Numerical simulation of disperse particle flows on a graphics processing unit. My defense presentation was tremendously well attended by faculty, coworkers, family and friends.

I enjoyed celebrating my successful defense with family and friends in the afternoon and evening. Thank you to everyone who attended my presentation for their wonderful support!

Adam to speak at University of Florida

On Monday 14 March, I will present a seminar entitled “Numerical simulation of disperse particle flows on a graphics processing unit” at the Center for Compressible Multiphase Turbulence at the University of Florida.

ccmt

The seminar, presented at the Department of Mechanical & Aerospace Engineering, will take place at 15:00 in the Large Conference Room in the Particle Engineering Research Center.

Abstract

We will discuss the development and validation of a new open-source GPU-centric numerical tool for the resolved simulation of thousands of particles in a viscous flow in order to assist in the search for new closure models for reduced-order disperse particle flow simulation. The new tool, which achieves a throughput up to 90 times faster than its predecessors, implements the Physalis method to introduce the influence of spherical particles to a fixed-grid incompressible Navier-Stokes flow solver using a local analytic solution to the flow equations. We will consider some theoretical and numerical enhancements to the efficiency and stability of Physalis, and will visit two general classes of algorithms central to the effective utilization of a GPU for solving partial differential equations. To appropriately capture the unresolved particle interaction physics during collisions (i.e., lubrication and contact mechanics), we will discuss a new model that incorporates nonlinearly damped Hertzian contact. We will conclude by comparing simulation results to experimental data found in the literature and looking forward into the future of resolved particle simulation using heterogeneous high-performance computing systems.

Announcement: Dissertation defense

logo-jhu
A simulation by Bluebottle. Figure Copyright (c) 2016 Adam Sierakowski

On Thursday 10 March, I will defend my PhD dissertation entitled Numerical simulation of disperse particle flows on a graphics processing unit. I will present my work in a seminar open to the public in 228 Malone Hall on the Johns Hopkins University Homewood campus at 10:30 am.

Abstract:

In both nature and technology, we commonly encounter solid particles being carried within fluid flows, from dust storms to sediment erosion and from food processing to energy generation. The motion of uncountably many particles in highly dynamic flow environments characterizes the tremendous complexity of such phenomena. While methods exist for the full-scale numerical simulation of such systems, current computational capabilities require the simplification of the numerical task with significant approximation using closure models widely recognized as insufficient. There is therefore a fundamental need for the investigation of the underlying physical processes governing these disperse particle flows.

In the present work, we develop a new tool based on the Physalis method for the first-principles numerical simulation of thousands of particles (a small fraction of an entire disperse particle flow system) in order to assist in the search for new reduced-order closure models. We discuss numerous enhancements to the efficiency and stability of the Physalis method, which introduces the influence of spherical particles to a fixed-grid incompressible Navier-Stokes flow solver using a local analytic solution to the flow equations.

Our first-principles investigation demands the modeling of unresolved length and time scales associated with particle collisions. We introduce a collision model alongside Physalis, incorporating lubrication effects and proposing a new nonlinearly damped Hertzian contact model. By reproducing experimental studies from the literature, we document extensive validation of the methods.

We discuss the implementation of Physalis for massively parallel computation using a graphics processing unit (GPU). We combine Eulerian grid-based algorithms with Lagrangian particle-based algorithms to achieve computational throughput up to 90 times faster than the legacy implementation of Physalis for a single central processing unit. By avoiding all data communication between the GPU and the host system during the simulation, we utilize with great efficacy the GPU hardware with which many high performance computing systems are currently equipped. We conclude by looking forward to the future of Physalis with multi-GPU parallelization in order to perform resolved disperse flow simulations of more than 100,000 particles and further advance the development of reduced-order closure models.