ACM/IFIP/USENIX 10th International Middleware Conference

Urbana Champaign, Illinois, USA

November 30 - December 4, 2009

Tutorial 1

Parallel application programming with parallel objects and Charm++
by Laxmikant Kale (UIUC)
Time and duration: Monday November 30 (full day)


The tutorial will present Charm++, a C++-based portable parallel programming system, designed with programmer productivity as a major goal. The tutorial will start with basic concepts, and introduce the language features via a series of examples. With Charm++, programmers decompose the computation into a larger number of objects, without regard to number of processors, while an adaptive runtime system assigns them to processors, automating resource management. Charm++ efficiently supports parallel composition, thus allowing multiple, independently written, parallel modules to effectively utilize available processors. It runs on multi-core desktops with shared memory, as well as large clusters of SMP nodes, and supports accelerators effectively in such environments. Further, its adaptive runtime system is leveraged to support multiple fault tolerant schemes, so applications can continue to run as components fail. Several highly scalable and widely used applications in science and engineering have been written using Charm++.


Laxmikant Kale is a Professor of Computer Science at the University of Illinois at Urbana-Champaign. He has been working on various aspects of parallel computing, with a focus on enhancing performance and productivity via adaptive runtime systems. His research is based on the belief that only interdisciplinary research involving multiple CSE and other applications can bring back well-honed abstractions into Computer Science that will have a long-term impact on the state-of-art. His collaborations include the widely-used Gordon-Bell award winning (SC'2002) biomolecular simulation program NAMD, and other collaborations on computational cosmology, quantum chemistry, rocket simulation, space-time meshes, and other unstructured mesh applications. He takes pride in his group's success in distributing and supporting software embodying his research ideas, including Charm++, Adaptive MPI and the ParFUM framework.

L. V. Kale received the B.Tech degree in Electronics Engineering from Benares Hindu University, Varanasi, India in 1977, and a M.E. degree in Computer Science from Indian Institute of Science in Bangalore, India, in 1979. He received a Ph.D. in computer science from State University of New York, Stony Brook, in 1985.

Tutorial 2

Practical Problem-Solving with Apache Hadoop & Pig
by Milind Bhandarkar (Yahoo! Inc.)
Time and duration: Tuesday December 1st (full day)


Apache Hadoop and Pig have become the platform of choice for developing large-scale data-intensive applications. In this tutorial, we will discuss design philosophy of Hadoop, describe how to design and develop Hadoop and Pig applications and higher-level application frameworks to crunch several terabytes of data, using anywhere from four to 4,000 computers. We will discuss solutions to common problems encountered in maximizing Hadoop application performance. We will also describe several frameworks and utilities developed using Hadoop that increase programmer-productivity and application-performance.


Dr. Milind Bhandarkar has been contributing to Apache Hadoop and Pig since version 0.1. He started the Yahoo! Grid solutions team focused on training, consulting, and supporting hundreds of new migrants to Hadoop. He has been focused on parallel programming languages and paradigms for over 20 years. He worked at the Center for Development of Advanced Computing (C-DAC), Center for Simulation of Advanced Rockets (UIUC), Siebel Systems, and Pathscale before joining Yahoo! in 2005.