Integrating task and data parallelism

The increased computational power of massively parallel computers and high bandwidth low latency computer networks will make a wide range of previously unpractical problems feasible. This will inevitably result in the need to develop parallel software whose complexity far exceeds that of parallel programs being developed today. These programs will combine task and data parallelism within a single application. In this workshop, we will discuss multi-paradigm parallel programs and programming languages to support their development. We will introduce the parallel programming languages Fortran M and Compositional C++. Fortan M is a small set of extensions to Fortran 77; Compositional C++ is a small set of extensions to C++. We will demonstrate how these languages can be used to develop parallel programs that contain both task and data parallelism and how these languages are well suited to writing reusable parallel program libraries.