SoCal '10: Keynote
Language and Runtime Support for the Next-Generation of Distributed ApplicationsChandra Krintz, University of California, Santa Barbara
Abstract
Large, scalable, distributed software systems are increasingly implemented using collections of components to better manage software complexity through reusability, modularity, and fault isolation. Since each programming language has its own unique combination of performance, speed of development, library support, and developer communities, different software components are often implemented in different languages. For example, Ruby, Python, Java, and JavaScript facilitate fast development of the web presentation layer, Java, PHP, Perl, Python, and Ruby expedite development of efficient server-side logic, and Java, query languages, and C++ are accelerate backend data management. The components of these multi-language, multi-component applications and mashups typically execute within independent runtime systems (language virtual machines (VMs), interpreters, etc.) and communicate and interoperate via remote procedure calls (RPC) and message passing.
Although, multi-language application composition provides many benefits to programmer productivity and fault tolerance, it also poses many challenges to traditional runtime and distributed system support. Such challenges include how to profile and characterize application performance/behavior across language components and across multi-language workloads, how to adaptively place of code and data to make efficient use of distributed resources, and how to exploit co-location of components (those executing on the same physical resource) to improve communication performance between isolated runtime systems. Such support is increasingly important for performance-sensitive applications that execute using systems that simplify the use of distributed systems (e.g. clouds) by making resources and services opaque to developers. In this talk, we will overview this execution model and the challenges it poses. We will also identify and discuss new techniques that target and address these challenges in a effort to facilitate high-performance for the next-generation of distributed multi-language software.
Biosketch
Chandra Krintz is an Associate Professor at the University of California, Santa Barbara (UCSB). She joined the UCSB faculty in 2001 after receiving her M.S. and Ph.D. degrees in Computer Science from the University of California, San Diego (UCSD). Chandra's research interests include automatic and adaptive compiler, programming language, virtual runtime, and operating system techniques that improve performance (for high-end systems) and that increase battery life (for mobile, resource-constrained devices). Her recent work focuses on programming language and runtime support for cloud computing. Her group has recently developed and released AppScale—an open-source platform-as-a-service cloud computing system that implements the Google App Engine (GAE) APIs that facilitates next-generation cloud computing research. Chandra has supervised and mentored over 40 students, has published her work in a wide range of ACM venues including CGO, ECOOP, PLDI, OOPSLA, ASPLOS, and others, and leads several educational and outreach programs that introduce computer science to young people, particularly those from underrepresented groups. Chandra's efforts have been recognized with a 2006 NSF CAREER award, the 2008 CRA-W Anita Borg Early Career Award (BECA), and the 2008-9 UCSB Academic Senate Distinguished Teaching Award.