Testing: Strategies When Learning Programming Models and Using High-Performance Libraries

Series: HPC Best Practices Webinars

Software testing is an invaluable practice, albeit the level of testing in scientific applications can vary widely, from no testing at all to full continuous integration (as discussed in earlier webinars of the HPC-BP series). In this webinar I will consider a specific case: the use of unit-testing when developing a mini-app as an approach to learn about new programming models such as Kokkos and SYCL, or when using (or contributing to) high-performance libraries. I will illustrate with an example from Lattice QCD, focusing on the integration of the QUDA optimized library with the Chroma application. The webinar will focus on lessons learned and generally applicable strategies.


Presenter Bio

Balint Joo got his B. Sc. in Computer Science and Physics in 1996 and his PhD in Theoretical Physics in 2000, both at the University of Edinburgh. Since then he has been working in the area of numerical lattice QCD calculations, with post doctoral positions at the University of Kentucky working on Monte Carlo algorithms, at Columbia University and the University of Edinburgh as part of the design team for the QCDOC supercomputer, and back at the University of Edinburgh where he worked with solvers for Chiral Fermions and got involved with the QDP++ and Chroma software packages. He has been a Staff Computer Scientist at Jefferson Lab since 2005, where his work includes maintaining and developing Chroma and porting and optimizing it for new architectures. He has been working closely with NVIDIA on the QUDA library and more recently with Intel on code for Xeon and Xeon Phi. He is also a computer user running lattice QCD calculations on a number of DOE and NSF centers including Titan at OLCF, BlueWaters at NCSA and Stampede at TACC.