Doru Popovici

Name: Doru Popovici
Pronouns: he/him/his

Biography:
I am a Research Scientist in the Applied Computing for Scientific Discovery (ACSD) group. My interests are tied to computer architecture, programming languages and algorithms. I enjoy working on frameworks and methods to enable performance portable solutions for scientific applications, targeting simple (e.g. mobile devices) and complex (e.g. modern supercomputers) systems. I work on a myriad of applications which include Fourier transforms and Fourier based applications, dense and sparse tensor operations and even stencil operations seen in chemistry and bioinformatics codes. For each of these applications, my goal is to develop the necessary tools to easily target modern CPUs and GPUs, and to build custom hardware to enable faster and more reliable computations. I obtained my PhD from Carnegie Mellon University under Franz Franchetti, working on code generators for linear transforms. I subsequently joined Lawrence Berkeley National Laboratory (LBNL) as a postdoc within the ACSD group, continuing in the same vein of my graduate research while looking for other opportunities to apply newly gained knowledge. If anyone is interested in programming languages, compilers, or computer architecture I would like to sit down with a tea in hand and invite you to have further discussions about these topics.

Institution/Lab: Lawrence Berkeley National Laboratory
Website: https://www.linkedin.com/in/doru-thom-p-38753196/

SRP Collaboration Topic/Title: Hardware Software Co-Design

Field or research area: Computer Science

Please select all the topical areas that apply to your project:
Computer Science (i.e., architectures, compilers/languages, networks, workflow/edge, experiment automation, containers, neuromorphic computing, programming models, operating systems, sustainable software); High-Performance Computing

Brief Abstract:
The hardware landscape is constantly changing to match the needs of scientific applications. CPUs have provided much of the compute power, however recently the focus has shifted towards highly parallel GPUs and specialized units customized for specific operations like matrix multiply or Fourier transforms. As such, library and framework developers need to be always active to adapt the software but also keen on offering information to hardware developers for better hardware support. Moving forward, more emphasis should be put on hardware-software co-design, namely developing strategies to optimize certain algorithms, creating models to guide the optimizations and the hardware itself, and then automating the process by using high level frameworks like JAX or others. This becomes even more critical nowadays when computation is applied on data that exhibits dynamic and sparse behavior. This additional dimension makes the search space for efficient algorithms and hardware harder. Therefore, the work I am doing is looking into ways to reduce the search space and offer solutions for various scientific applications in a short amount of time, whether those solutions are all in software or whether some components make use of specialized hardware.

Desired relevant skills, background, or interests:
C/C++ background, a little bit of GPU programming, enthusiasm to get hands dirty and benchmark algorithms and systems

Other comments:

Do any special requirements apply? Permanent Resident OK; International OK
Other, specify:

Keywords:
high performance; programming languages; automatic optimizations; hardware/software codesign

Lightning Talk Title: Recipes for Achieving High Performance