I am a computational scientist and specialist in high-performance computing systems currently working at the National Energy Research Scientific Computing Center (NERSC) at Lawrence Berkeley National Laboratory. My work focuses on I/O performance analysis, extreme-scale storage architectures, and emerging I/O technologies and interfaces.
In my previous life, I did research in computational materials science and studied the chemical physics of water/silica interfaces with molecular dynamics simulation. I also spent some time working in the DNA sequencing industry helping to connect bioinformaticians with the computational resources their work demanded. More information about me is available on my CV and on LinkedIn.
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, and I can also be found in
#hpc on freenode.
My career has largely revolved around data-intensive scientific computing. Most of my current work is in storage systems and architecture, but in the past I have worked in the application space with tools including Hadoop and R.
Topics in Storage
- Principles of Object Storage
- Principles of Non-volatile RAM
- I/O Forwarding for Extreme-Scale Systems
Topics in Hadoop
- Conceptual Overview of Map/Reduce and Hadoop
- Writing Hadoop Applications in Python with Hadoop Streaming
- Parsing VCF Files with Hadoop Streaming
- Running Hadoop on HPC Clusters
- Slides: Hadoop Streaming: Programming Hadoop without Java
- Slides: Introduction to Spark
Topics in R
In the past I have worked as both a user services consultant and a systems enginer. This section contains a few notes relevant to using and managing HPC resources, but the bulk of my HPC how-to guides remains hosted at the San Diego Supercomputer Center.
Performance & Benchmarks
This section contains a number of disjoint pieces revolving around performance analysis.
- Blog: Basics of I/O Benchmarking
- Blog: BLAS, LAPACK, and ScaLAPACK Implementations
- Blog: SR-IOV with Amazon's C3 Instances
- Blog: SR-IOV with QDR InfiniBand
- Blog: IP over InfiniBand and IP over Ethernet
- Blog: Dual-Rail QDR InfiniBand vs. FDR InfiniBand
- Historical performance trends (1996-2017)
- Historical power consumption of Unix workstations
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.
- Statistical Design using Orthogonal Arrays
- Overview of Glasses
- Overview of Metals
- Overview of Alumina
- Overview of Silicon Carbide
- Overview of Silicon Nitride
- Overview of Zirconia
- Glass Compositions
I've created the following pages about my hobbies mostly for my own entertainment. They have little to do with what I do professionally, but they might be of interest to people who hold similar interests.
- Blog: Learning electronics with Velleman MK152 and Raspberry Pi
- Using the MAX7219 LED display driver
- Understanding bipolar junction transistors
- Experimenting with digipots and ADCs
- Programming the HD44780 LCD display driver with Raspberry Pi
- Understanding the TWSU Synth Kit
Unix and Linux Howtos
- Create a wired Ethernet island on a wifi network with Raspberry Pi
- Configuring Raspberry Pi for Headless Boot
- Installing and configuring a Solaris 10 server
- Converting 520-byte block disks to 512-byte blocks (Solaris)
- Configuring dmake (Solaris)