Glenn K. Lockwood, Ph.D.
HPC Systems Architect
National Energy Research Scientific Computing Center
Lawrence Berkeley National Laboratory
I am a high-performance computing systems architect at the National Energy Research Scientific Computing Center (NERSC) at Lawrence Berkeley National Laboratory. NERSC provides high-performance computing resources for thousands of researchers around the world each year, and my role is to ensure that our storage systems balance advanced technologies with production reliability to enable science that can be done nowhere else. To this end, my work focuses on I/O performance analysis, extreme-scale storage architectures, and emerging I/O technologies and interfaces.
I have worked in the genomics industry in the past, and my formal education is in ceramic engineering. More information about my current and past work can be found in my CV and on LinkedIn, and excruciating details about my life are in my biography.
This site contains various notes I've taken related to technical computing over
the years. I welcome any feedback about its contents at the e-mail address
listed at the bottom of every page. You can also find me on Twitter and in
#hpc channel on Libera.
I've worked in high-performance computing since 2012, and this section contains notes and guides I've written in that capacity. I try to retire links to pages once they have fallen out of date, so things tend to come and go from this section as technologies (and my areas of work) evolve.
Practical Data Analysis
- Implementing the Simplest Neural Network
- Implementing a Multilayer Neural Network
- Dask in Practice
- Working with Jupyter and Matplotlib
- I/O Forwarding for Extreme-Scale Systems
- Lustre Pearls of Wisdom
- Principles of Non-volatile RAM
- Principles of Object Storage
- Blog: Reviewing the state of the art of burst buffers
- Blog: VAST Data's storage system architecture
- Building and Managing Darshan
- Hacking Darshan
- Managing Process Affinity in Linux
- Blog: Quick MPI Cluster Setup on Amazon EC2
Performance & Benchmarks
This section contains a number of disjoint pieces revolving around performance analysis.
- Building and Running IO500
- Getting Started with elbencho
- Getting Started with md-workbench
- Getting Started with mdtest
- Historical Performance Benchmarks
- Parallel I/O Benchmarks
- Power Consumption
- Blog: Basics of I/O Benchmarking
When I was a student I maintained a variety of notes about different topics relevant to ceramic engineering, in which I got my undergraduate degree. I've re-uploaded them here for posterity.
- Molecular Dynamics Tutorial
- Glass Compositions
- Overview of Alumina
- Overview of Glasses
- Overview of Metals
- Overview of Silicon Carbide
- Overview of Silicon Nitride
- Overview of Zirconia
- Statistical Design using Orthogonal Arrays
Hobbies & Personal Stuff
This section contains notes and tutorials that I've written related to my personal interests and hobbies outside of work.
Embedded & Edge Computing
- Getting started with the BeagleBone Black
- Getting started with the NVIDIA Jetson Nano
- Getting started with the Terasic DE10-Nano
- Programming the BMC2835 SOC
- Experimenting with digipots and ADCs
- Programming the HD44780 LCD Display with Raspberry Pi
- Understanding bipolar junction transistors
- Understanding the 555 Timer IC
- Understanding the TWSU Synth Kit
- Using the MAX7219CNG LED Display Driver
- Blog: Learning electronics with roulette, datasheets, and Raspberry Pi
System & OS Configuration
- Configuring Raspberry Pi as a Wireless-to-Wired Ethernet Island
- Configuring Raspberry Pi for Headless Boot
- Configuring a Solaris 10 Server
- Configuring dmake
- Converting Disk Block Size on Solaris