LONDON A project at the Swiss Federal Institute of Technology – ETH Zurich – is one of seven academic research projects that will share $1.5 million from Microsoft External Research as part of the Safe and Scalable Multicore Computing request for proposal (RFP).
Micrsoft External Research says the aim of this RFP is to stimulate and enable bold, substantial research in multicore software that rethinks the relationships among computer architecture, operating systems, runtimes, compilers and applications. The goal of the research is to propose new mechanisms and paradigms that will lead to safe and scalable concurrent systems and applications, focusing on mainstream client platforms.
The Reliable and Efficient Concurrent Object-Oriented Programs (RECOOP) being run by Bertrand Meyer at ETH Zurich is the only non-U.S. project to receive a grant.
The goal of the project, starting with the simple concurrent object-oriented programming (SCOOP) model of concurrent computation, is to develop a practical formal semantics and proof mechanism, enabling programmers to reason abstractly about concurrent programs and allowing proofs of formal properties of these programs.
The team aims to enable precise reasoning on concurrent programs at a level of abstraction comparable with what is possible on sequential programs using modern languages and programming techniques.
Other winning projects include a project called Sensible Transactional Memory via Dynamic Public or Private Memory lead by Dan Grossman of the University of Washington.
Microsft says integrating transactions into the design and implementation of modern programming languages is surprisingly difficult. The broad goal of this research is to remove such difficulties via work in language semantics, compilers, runtime systems and performance evaluation. The researchers at the University of Washington will investigate programming-language techniques for eliminating semantic anomalies in weakly atomic transactional memory systems.
Kim Hazelwood's project at the University of Virginia is called Supporting Scalable Multicore Systems Through Runtime Adaptation . The Paradox Compiler Project aims to develop the means to build scalable software that executes efficiently on multicore and manycore systems via a unique combination of static analyses and compiler-inserted hints and speculation, combined with dynamic, runtime adaptation. This research will focus on the runtime adaptation portion of the Paradox system. Future parallelization systems must be capable of dynamically adapting a compiled application to the underlying hardware and the execution environment because the specific hardware configuration (number of cores, number of function units per core, cache sizes) will not — and should not — be known by the compiler.
Meanwhile, the system utilization changes at runtime, enabling the application to use more or fewer cores. Finally, the behavior of the application itself changes over time, which should result in regular re-evaluation of parallelism decisions. The focus of this team’s research is to develop a runtime system that requires a companion dynamic compilation layer to complement the static parallelization layer.
Antony Hosking, Jan Vitek, Suresh Jagannathan and Ananth Grama at Purdue University are looking at Language and Runtime Support for Safe and Scalable Programs . Expressing and managing concurrency at each layer of the software stack, with support across layers, as necessary, to reduce programmer effort in developing safe applications while ensuring scalable performance is a critical challenge.
This team will develop novel constructs that fundamentally enhance the performance and programmability of applications using transaction-based approaches. The researchers will build tools grounded in the C# language, by extending technologies including Phoenix, Bartok and Singularity, building support for specification, analysis, compilation, execution and benchmarking of high-level transaction-based abstractions for concurrent programming.Multicore-Optimal Divide-and-Conquer Programming is Paul Hudak's project at Yale University, which sees divide and conquer as a natural, expressive and efficient model for specifying parallel algorithms.
This team cast divide and conquer as an algebraic functional form, called DC, much like the more popular map, reduce and scan functional forms. As such, DC subsumes the more popular forms, and its modularity permits application to a variety of problems and architectural details. This team will tailor DC to multicore architectures and develop a notion of multicore-optimal divide-and-conquer programming. Expressing an algorithm in this framework not only will ensure maximal parallelism, but also will guarantee minimal communication costs, thus achieving a high degree of efficiency.
To ensure that multicore performance will scale with the increasing number of cores, innovative processor architectures (e.g., distributed shared caches, on-chip networks) are increasingly being deployed in the hardware design. In the project called Geospatial-based Resource Modeling and Management in Multi- and Manycore Era the team lead by Tao Li at the University of Florida, will explore novel techniques for geospatial-based on-chip resource utilization analysis, management and optimization focusing on accurate and scalable methods to model the geospatial resource utilization patterns across a large number of cores/components; architecture and operating system support for efficient mining of geospatial-based resource utilization at large scales; and studying the enabled geospatial-aware cooperative resource management for multi- and manycore processors.
Runtime Packaging of Fine-Grained Parallelism and Locality will see David Penry at Brigham Young University invetsigate how scalable multicore environments will require the exploitation of fine-grained parallelism to achieve superior performance. To overcome the overhead of task synchronization and variability in system architectures and runtime environments, packaging of parallelism and locality should be performed by the runtime environment. Current packaging algorithms suffer from a number of limitations. These researchers will develop new packaging algorithms that can take into account both parallelism and locality, are aware of critical sections, can be rerun as the runtime environment changes, can incorporate runtime feedback, and are highly scalable.
Microsoft External Research is also working with industry and academic research communities, including the Barcelona Supercomputing Center, Universal Parallel Computing Research Center (UPCRC), Intel Corporation and research teams at the University of California, Berkeley, and University of Illinois at Urbana-Champaign, and now with the Safe and Scalable Multicore Computing RFP, to continue furthering developments in this area.
The concept behind parallel computing is to divide a project into smaller bits of work that can be processed at the same time, or in parallel. Recent headlines have touted new duo-core and quad-core products that squeeze multiple processor cores onto a single chip. The idea is that more processor cores executing parts of the same program simultaneously can enable greater performance and achieve significant power savings.