Most personal computers, laptops and mobile phones are equipped with multicore processors. Technology has reached the physical limit on how fast one can clock the processing speed, but the computational demand of modern technology continues to grow. Hardware developers have added more processing cores into a processing chip to provide more computational power, however, writing correct and efficient software that fully uses multicore hardware is extremely challenging.
I-Ting Angelina Lee, assistant professor of computer science & engineering in the McKelvey School of Engineering at Washington University in St. Louis, plans to develop software infrastructure that can improve programmer productivity and increase the speed of interactive applications running on cloud platforms with a five-year, $500,000 CAREER Award from the National Science Foundation. CAREER awards support junior faculty who model the role of teacher-scholar through outstanding research, excellence in education and the integration of education and research within the context of the mission of their organization. One-third of current McKelvey Engineering faculty have received the award.
Lee studies task parallelism, a parallel programming paradigm designed to program shared-memory multicore machines.
"Task parallelism can improve programmer productivity because it provides high-level language abstractions to allow the programmer to express the logical parallelism of the computation and let an underlying runtime system to perform load balancing and synchronization automatically," Lee said. "Existing task-parallel platforms have been demonstrated to work efficiently for high-performance scientific applications in practice."
Lee said task parallelism falls short in supporting modern interactive parallel applications commonly run on cloud platforms, however, because it is mainly designed to target high-performance scientific applications that use specific parallel patterns and has throughput as the main performance criterion.
"Interactive applications, on the other hand, such as web services that support online gaming platforms and Google search, utilize very different parallel patterns and focus on different performance criteria," she said. "For such applications, a desirable performance criterion is responsiveness — web services tend to be long-running with both front-end computation necessary to respond to the client requests and backend computations necessary to perform the upkeep of the web servers. As the requests keep coming in, a web server needs to respond with low latency while doing enough maintenance work to allow the server to run smoothly. Because the server workload consists of different types of computations, the server must discern and prioritize front-end related computations over other background maintenance-related computations to ensure good user experience."
Writing code for such interactive applications using traditional parallel programming paradigm is extremely challenging, Lee said, and she aims to develop software infrastructure so that nonexpert programmers can develop such applications that run efficiently on multicore machines.
"We need new language abstraction to express nontraditional parallel patterns and novel runtime scheduling policies to enforce server responsiveness," she said. "Because both the language abstraction and the scheduling policies must change, we also need a new set of tools to help debug and performance engineer code written using the new paradigm.
"What I'm trying to do is to bring properties and guarantees provided by traditional task parallelism to support high-performance computing scientific applications, which we understood well, and extend them to better support interactive parallel applications," she said.
Lee integrates parallel computing into the undergraduate and graduate courses she teaches. In addition, she is developing a simple open-source platform with colleagues called Open Cilk to support the traditional type of parallel computing for both teaching and research. The Open Cilk team is planning its first release this year.
In addition, Lee is interested in improving gender diversity in the field of computer science. She does outreach events with female students from local high schools to encourage more women to go into the field. She also regularly participates in events organized by Women in Computer Science (WiCS), an organization for women in computer science at WashU.