Introducing parallelism using Habanero Java (HJ)

If our students are to make full use of multi-core processors, parallel programming must be taught to all students in required courses rather than only in the specialized electives where it has historically resided. We believe that widespread parallel programming will rely on high-level parallel languages and tools. This workshop presents one such language, Habanero Java (HJ), an extension of Java that adds keywords to create and manage tasks. HJ is powerful enough to be used by researchers, but also particularly well-suited for students because it builds on their knowledge of Java and its conciseness means that parallel algorithms can be illustrated with little code. Workshop attendees with learn about HJ, write HJ programs, and hear about how we have used it with students, including a brief unit in CS 2 that introduced parallelism.