Personal information
Biography
My graduate studies and work experience were in numerical analysis and parallel computing, with an emphasis on computer performance on high performance computing (HPC) systems. Specific activities included the following.
a) parallel algorithm design and implementation
My parallel algorithm work ranged from theoretical investigations into what is feasible based on information theoretic concepts to the design, implementation, and optimization of parallel algorithms, most recently in earth system and fusion energy simulation models.
b) performance evaluation of parallel applications and computer systems
My work on performance evaluation had three aspects: (1) performance data collection, visualization, and analysis, (2) benchmarking and benchmarking methodology, and (3) performance modeling and prediction.
c) performance and software engineering for scientific computing
My performance and software engineering work focused principally on performance portability, i.e. empirical methodology and software infrastructure that support the quick (re)optimization of performance of a simulation model when problem specification or target computer system change, and as the model evolves.
d) troubleshooting
A practical aspect of working on HPC systems and with HPC codes is that both can be fragile. A significant fraction of my work involved troubleshooting problems (verifying, diagnosing, developing workarounds, reporting), whether for 'basic functionality' (does it run?), correctness (does it do what it is supposed to?), or computer performance. Some of this was research, for example, characterizing sources of performance variability and developing mitigation strategies. All of it involved careful experimental design.