Volume 2023, Number May (2023), Pages 1-4
Innovation Leaders: A Conversation with Sunita Chandrasekaran: Exploring sustainable and portable software solutions
Ubiquity's senior editor Dr. Bushra Anjum chats with Sunita Chandrasekaran, an associate professor with the Department of Computer and Information Sciences at the University of Delaware. Chandrasekaran discusses her goal, as a researcher as well as an educator, to prepare the next-generation workforce to tackle rich hardware features while exploring suitable software solutions. The discussion also addresses sustainable, maintainable, and portable solutions for legacy code that is traditionally unsuited for modern architectures.
Sunita Chandrasekaran, Ph.D., is an associate professor with the Department of Computer and Information Sciences at the University of Delaware. She is also a computational scientist at Brookhaven National Laboratory. She received her Ph.D. in 2012 on tools and algorithms for high-level algorithm mapping to field programmable gate arrays (FPGAs) from the School of Computer Science and Engineering, Nanyang Technological University, Singapore. Her research spans high-performance computing (HPC), exascale computing, parallel programming, benchmarking, and machine learning. Applications of interest include scientific domains such as plasma physics, biophysics, solar physics, and bioinformatics. She is a recipient of the 2016 IEEE-CS TCHPC Award for Excellence for Early Career Researchers in HPC. Dr. Chandrasekaran can be reached at schandraATudelDOTedu or via Twitter @sunitachandra29.
What is your big concern about the future of computing to which you are dedicating yourself?
Software seems like it is always behind, playing catch up with the ever-evolving hardware! Architectures are evolving at a speed that is alarming (pleasantly). Newer and richer features are being added to hardware architectures as we speak, pushing the boundaries of software to exploit the rich features of the hardware architecture. This is certainly fascinating! However, it is becoming increasingly time critical to think about standardized software. My group uses software of all kinds, including low-level such as CUDA (compute unified device architecture) and high-level ones such as OpenMP or OpenACC for on-node programming. However, often, it is a challenge to reuse software on more than one type of architecture without redoing it from scratch, thus requiring the software community to create yet another software and discard the ones on which much effort was spent already. I teach parallel programming at the University of Delaware, and I try to cover a variety of programming modules as part of the syllabus, including OpenMP, OpenACC, CUDA, MPI, among others. At the same time, I am also constantly thinking about the future of these programming paradigms 10 years from now. Should we be thinking out of the box, *now*, to make the programming aspect of computing more portable, maintainable, and sustainable 10 or fewer years from now?
We recently had an opportunity to hear from the Turing Award Winner Prof. Jack Dongarra's talk on "A Not so Simple Matter of Software," where he echoes that software is always a step behind and we always seem to be in a catch-up mode. I cannot agree more. It would be wise to get ahead of the ever-changing in a rapid manner—computing hardware landscape.
How did this concern of the software versus hardware dichotomy emerge for you?
I have a background in electrical and electronics (bachelor's degree), where I learned a great deal about hardware architecture and its nitty gritty. It was a lot of fun. I then pursued a Ph.D. in computer science engineering, where I got the opportunity to work on both the hardware and the software. The focus was on embedded systems, specifically field programmable gate arrays (FPGAs), which are notorious for programming. FPGAs are a set of reconfigurable programmable logic blocks that can be wired together. The term "reconfiguration" implies that these systems can be reconfigured to target the task to be computed. While I was working on my research, during the time frame of 2007-2010, there were at least 10-12 companies that were offering C->FPGA solutions, i.e., writing the software in a high-level programming language, such as C, and translating the same into FPGA readable code, which is a hardware description language (HDL). HDLs are hard to learn and use but offer the best performance as they directly program the electronic circuits of the board. However, achieving the same from a high-level language, such as C, is quite a challenge. So, none of those companies survived. The FPGA community (including myself) seemed to be satisfied with HDLs. But this also meant there weren't many users of FPGA. The domain scientists (physicists, for example) could not be expected to learn HDLs; hence if a team did not have a computer scientist, it was almost certain that they couldn't use FPGAs. As a result, this wonderful high-performance board still remains underutilized.
Let's fast forward a bit; I then went on to do my postdoc in HPC [high-performance computing] and ran into the various programmatic solutions to target clusters and supercomputers. While these solutions have evolved over a period of time, architectures are evolving faster, and it feels like software is always playing catch up. For example, let us take the latest and the greatest graphic processing units (GPUs) from popular vendors NVIDIA and AMD. They have been packing more cores and memory in their recent GPUs than the previous generation of GPUs. However, the software required to exploit its richness will take a few to more years before it can reap the best benefits from these hardware advancements. It is one thing to "use" the system and another to use it "effectively." The latter can take the extra mile. In summary, there is always the concern about building effective software for the hardware, and this is extremely time-consuming.
What project or initiative are you currently leading to enable using rich hardware features while exploring suitable software solutions?
In my group, we are working on a couple of research initiatives that focus on simplifying programming language in general and developing an extensible compiler for compiler developers. To that end, we are rethinking C++ as a language, revisiting various features of the language, and brainstorming if there is a simplistic way to represent those features. In addition, we are working on a compiler-based project where the idea is to explore building a highly customizable compiler with an extendable syntax tree and an easily customizable parser capable of adding new high-level passes.
We have other interdisciplinary projects in the group that involve collaborating with physicists (solar/plasma/biophysicists) to help move their legacy code to current and upcoming architectures without needing to rewrite their original code completely. These projects include targeting Frontier, the world's fastest supercomputer. The interdisciplinarity application requirements and novel architectural design push us to think outside the box. We are working to identify the gaps in software to build a performant yet portable software that need not be re-created every time the hardware changes.
I look forward to continuing working with application developers and optimistically addressing the growing gap between hardware and software to enable science. I also look forward to any thoughts you may have, so please feel free to reach out! Collaboratively, let us build maintainable, sustainable, portable yet reliable, and performant software.
Bushra Anjum, Ph.D., is a health IT data specialist currently working as the Senior Analytics Manager at the San Francisco based health tech firm Doximity. Aimed at creating HIPAA secure tools for clinicians, she leads a team of analysts, scientists, and engineers working on product and client-facing analytics. Formerly a Fulbright scholar from Pakistan, Dr. Anjum served in academia (both in Pakistan and the USA) for many years before joining the tech industry. A keen enthusiast of promoting diversity in the STEM fields, her volunteer activities, among others, involve being a senior editor for ACM Ubiquity and the Standing Committee's Chair for ACM-W global leadership. She can be contacted via the contact page bushraanjum.info/contact or via Twitter @DrBushraAnjum.
Copyright 2023 held by Owner/Author
The Digital Library is published by the Association for Computing Machinery. Copyright © 2023 ACM, Inc.