Events

Seminars

Workshops

Summer School

 

Visiting I2PC Illinois

 

 

I2PC Summer School on Multicore Programming - Schedule

July 9-13, 2012
Siebel Center for Computer Science
University of Illinois at Urbana-Champaign

Overview

The I2PC Summer School on Multicore Programming is a chance to gain extensive, hands-on experience in Java multicore development and the Eclipse platform. Summer School runs from the afternoon of Monday, July 9th, through the afternoon of Friday, July 13th. Integrated lecture-labs will form the basis of the coursework. TAs will be on-hand to assist participants during the lab portions. The I2PC Summer School is held as a workshop and not run as an academic program; please be aware that no credit is available for the courses taken.

Changes from Previous Years

This year, the I2PC Summer School will be moving in a new direction. Taking into account past feedback and changes in the nature/direction of multicore programming, we will be offering a revised curriculum, more specific to Java and taught in greater depth than in past years. The 2012 summer school could even serve as a second step for those who have attended in the past. Because of this, a strong familiarity with the Java language is absolutely required for those attending. We expect that you have at least two years of coding experience with Java. Those who have worked intensively with Java for less time than that may also qualify, but this knowledge is essential for success in the course. If you are inexperienced with Java programming, you will likely not be able to keep up with the pace of the course.

We will also be moving away from the lecture/lab split: participants should be prepared to code and work on the material on their own computers as a part of each class. Attendees should come with multicore laptops loaded with the required software, which will include Eclipse IDE, Java, VisualVM profiler tools, an open-source data race detector (several options will be given), and additional concurrency frameworks. A detailed list of the required software will be provided three weeks before the start of class. It is the participants' responsibility to make sure the software is installed and operational before class begins on July 9th.

Due to cost issues, only on-site registration will be offered this year. However, some classes may be recorded and made available on our homepage after the close of the summer school.

Lecturers

This year, we will be having lectures from some of the top names in the parallel programming field. More speakers will be revealed closer to the start date of the school. However, we are pleased to announce the following:

Dr. Cliff Click (0xdata)

Cliff Click is the CTO and Co-Founder of 0xdata, a firm dedicated to creating a new way to think about web-scale data storage and real-time analytics. I wrote my first compiler when I was 15 (Pascal to TRS Z-80!), although my most famous compiler is the HotSpot Server Compiler (the Sea of Nodes IR). I helped Azul Systems build an 864 core pure-Java mainframe that keeps GC pauses on 500Gb heaps to under 10ms, and worked on all aspects of that JVM. Before that I worked on HotSpot at Sun Microsystems, and am at least partially responsible for bringing Java into the mainstream.

Previously I was with Motorola where I helped deliver industry leading SpecInt2000 scores on PowerPC chips, and before that I researched compiler technology at HP Labs. I am invited to speak regularly at industry and academic conferences including JavaOne, JVM, ECOOP and VEE; I serves on the Program Committee of many conferences (including PLDI and OOPSLA); and have published many papers about HotSpot technology. I hold a PhD in Computer Science from Rice University and about 15 patents.

Cliff blogs at www.cliffc.org/blog/.

Dr. Danny Dig (University of Illinois)

In 2007, Professor Dig earned his PhD from the CS department at the University of Illinois. After a postdoctoral appointment at MIT CSAIL, he moved back to his Alma Mater to lead research on refactorings that retroft parallelism. His mission is to make parallel programming synonymous with programming.

Danny will be teaching a series of classes using a curriculum he has refined and tested both in prior summer schools and in industry courses. The courses have received very high reviews from participants, and we’re confident Danny's be useful to those wanting to apply parallel programming techniques to Java code.

Mr. Stephen Heumann (University of Illinois)

Stephen is a doctoral student at the University of Illinois whose research centers around parallel computing. He will be presenting on Deterministic Parallel Java (DPJ).

Mr. Richard Hudson (Intel Corporation)

Richard L. Hudson is best known for his work in memory management including the invention of both the Train Algorithm and the Sapphire Algorithm. Richard joined Intel in 1998 where he has worked on concurrency related issues. He went to Shortridge and holds a B.A. degree from Hampshire College and an M.S. degree from the University of Massachusetts.

Richard will discuss the Intel Labs "River Trail" project and its goal of bringing parallelism to the masses.

Dr. Doug Lea (State University of New York at Oswego), lead architect of Java concurrency libraries

Doug Lea is a professor of Computer Science at the State University of New York at Oswego. He is an author of books, articles, reports, and standardization efforts on object oriented software development including those on specification, design and implementation techniques, distributed, concurrent, and parallel object systems, and software reusability; and has served as chair, organizer, or program committee member for many conferences and workshops in these areas. He is the primary author of several widely used software packages and components.

Doug will cover recent and upcoming "advanced" components in Java 7 and 8.

Dr. Tim Mattson (Intel Corporation), co-author of the most influential book on parallel patterns

Tim Mattson earned a PhD. for his work on quantum molecular scattering theory (UCSC, 1985). This was followed by a Post-doc at Caltech where he worked on the Caltech/JPL hypercubes. Since then, he has held a number of commercial and academic positions with high performance computers as the common thread. Application areas have included mathematics libraries, exploration geophysics, computational chemistry, molecular biology, and bioinformatics.

Dr. Mattson joined Intel in 1993. Among his many roles at Intel, he was applications manager for the ASCI teraFLOPS project, helped create OpenMP, founded the Open Cluster Group (with it's cluster package, OSCAR), and launched Intel's programs in computing for the Life Sciences.

Currently, Dr. Mattson is conducting research on abstractions that bridge across parallel system design, parallel programming environments, and application software. This work builds on his recent book on Design Patterns in Parallel Programming (written with Professors Beverly Sanders and Berna Massingill and published by Addison Wesley). The patterns provide the "human angle" and help keep his research focused on technologies that help general programmers solve real problems.

Tim will be teaching a module on parallel patterns.

Dr. Darko Marinov

Darko Marinov is an Associate Professor in the Department of Computer Science at the University of Illinois at Urbana-Champaign. His main research interests are in Software Engineering: improving software reliability; software testing and model checking for sequential, parallel, and distributed code; and program transformations (refactorings). He has a lot of fun looking for software bugs. He published over 35 conference papers, including three that won the ACM SIGSOFT Distinguished Paper awards. He received an NSF CAREER award (2008), an Illinois CAS Beckman Fellowship (2010-2011), and an Illinois DCS C.W. Gear Outstanding Junior Faculty Award (2010). His work has been supported by IBM, Intel, Microsoft, NSF, and Samsung.

Darko will offer training in a number of parallel Java tools, including IMUnit and ReEx.

Dr. Marc Snir (University of Illinois), the co-inventor of MPI

Marc Snir is Director of the Mathematics and Computer Science Division at the Argonne National Laboratory and Michael Faiman and Saburo Muroga Professor in the Department of Computer Science at the University of Illinois at Urbana-Champaign. He currently pursues research in parallel computing. He is co-PI for petascale Blue Waters system.

He was head of the Computer Science Department from 2001 to 2007. Until 2001 he was a senior manager at the IBM T. J. Watson Research Center where he led the Scalable Parallel Systems research group that was responsible for major contributions to the IBM SP scalable parallel system and to the IBM Blue Gene system.

Marc Snir received a Ph.D. in Mathematics from the Hebrew University of Jerusalem in 1979, worked at NYU on the NYU Ultracomputer project in 1980-1982, and was at the Hebrew University of Jerusalem in 1982-1986, before joining IBM. Marc Snir was a major contributor to the design of the Message Passing Interface. He has published numerous papers and given many presentations on computational complexity, parallel algorithms, parallel architectures, interconnection networks, parallel languages and libraries and parallel programming environments.

Marc will talk about the future trends of parallel hardware and parallelism beyond multicore.

Tentative Schedule

The following schedule is tentative and likely to change as the Summer School approaches. We reserve the right to make course substitutions and timing changes to fit the needs of our instructors and guest speakers. The dates of the school (July 9-13) will remain the same.

Monday

Dinner provided.

2:00 pm Registration and Check-in
3:00 pm Welcome and Class Overview (30 min)
3:30 pm Multicore Architecture (1 hour)
4:30 pm Threading Concepts (1 hour)
5:30 pm Future Trends in Parallelism (1 hour)
6:30 pm Bowling/Pizza Social

Tuesday

Breakfast, lunch, dinner, and snacks provided.

8:15 am Continental breakfast available
8:30 am Parallel Design Concepts (1.5 hours)
10:00 am Break
10:15 am Parallelism with Java Threads (3 hours with labs)
1:15 pm Lunch
2:15 pm Programming with Eclipse (1 hour)
3:15 pm Break
3:30 pm Parallelism with Upcoming Frameworks and Libraries in Java 7 (3 hours with labs)
6:30 pm Casual Dinner
7:30 pm Deterministic Parallel Java (DPJ) (1 hour)

Wednesday

Breakfast, lunch, dinner, and snacks provided.

8:15 am Continental breakfast available
8:30 am Correctness, Thread-safety, and Scalability (1.5 hours with labs)
10:00 am Break
10:15 am Programming with java.util.concurrent (j.u.c.) (3 hours with labs)
1:15 pm Lunch
2:15 pm Process for Refactoring Sequential Code for Parallelism (1 hour with labs)
3:15 pm Break
3:30 pm Refactoring for Thread Safety (2 hours with labs)
5:30 pm Dinner banquet
7:00 pm Tools for Parallel Java (1.5 hours)

Thursday

Breakfast, lunch, dinner, and snacks provided.

8:15 am Continental breakfast available
8:30 am Refactoring for Improving Throughput (3 hours with labs)
11:30 am Lunch
12:30 pm Refactoring for Improving Scalability, Part I (2 hours with labs)
2:30 pm Break
2:45 pm Refactoring for Improving Scalability, Part II (2 hours with labs)
4:45 pm Casual dinner
6:00 pm Design Patterns in Parallel Programming (2 hours)

Friday

Breakfast, lunch, and snacks provided.

8:15 am Continental breakfast available
8:30 am RiverTrail: Bringing parallelism to the masses with JavaScript (1.5 hours)
9:30 am Programming lab exercises (1 hour)
10:30 am Break
10:45 am Programming lab exercises, cont. (2 hours)
12:45pm Boxed lunches provided