Benjamin Michalowicz |
|
Research
What am I currently working on?
My research primarily lies in High-Performance Computing (HPC). For the uninitiated, I work on software that helps giant supercomputers run people's applications --- namely the MVAPICH software (Google "Message Passing Interface" for some more high-level details on what this is). Broadly, I'm interested in the lower-level aspects of the HPC Ecosystem -- network level APIs like InfiniBand's "IB-Verbs" library and how to efficiently utilize their more advanced features, low-level shared memory modules like XPMEM and CMA, etc. In addition, I'm a fan of heterogeneous hardware and SmartNIC's like NVIDIA's BlueField DPUs
My personal research interests include HPC, Parallel/Computer Architecture, HPC Virtualization (how to use virtualization for HPC systems), Heterogeneous Computing, and Compiler Technologies.
What have I previously done?
At Stony Brook University, my research experience began with the COMPAS lab under Dr. Michael Ferdman, where I helped a then-PhD student work on a way for eliding over redundant instructions at the processor level. During this time, I also attended ISCA 2019 on a scholarship through their μ-Arch program for undergrads. Being my first foray into computer science research, I expected to stay in this field at the time, but a mixture of factors (interests, coursework, etc.) pushed me directly into HPC.
During my master's degree (also at Stony Brook), I was fortunate to study the A64FX processor through both Stony Brook's Ookami cluster and the Fugaku supercomputer under Dr. Barbara Chapman. Primarily, I worked with different compiler toolchains (GCC, ARM, Cray, Fujitsu) and a combination of OpenMP and various MPI libraries across several applications -- SpecHPC, the FLASH code, HPCG, and the OSU micro-benchmarks, among others. This work resulted in a few papers on initial experiences with Ookami, studies of OpenMP behavior on the processor, and some experiences porting code to it to enable use of the Scalable Vector Extension (SVE) instructions available on the A64FX.