Algorithmic approach to designing an easy-to-program system: Can it lead to a HW-enhanced programmer's workflow add-on?

TitleAlgorithmic approach to designing an easy-to-program system: Can it lead to a HW-enhanced programmer's workflow add-on?
Publication TypeConference Papers
Year of Publication2009
AuthorsVishkin U
Conference NameComputer Design, 2009. ICCD 2009. IEEE International Conference on
Date Published2009/10//
Keywordsabstraction;PRAM-On-Chip;easy-to-program, algorithms;parallel, algorithms;sorting;, designing;explicit, multi-threading;fine-grained, PRAM, random-access-machine/model;parallel, sorting, system, system;parallel, systems;concurrency, THEORY, theory;multi-threading;parallel, threads;many-core

Our earlier parallel algorithmics work on the parallel random-access-machine/model (PRAM) computation model led us to a PRAM-On-Chip vision: a comprehensive many-core system that can look to the programmer like the abstract PRAM model. We introduced the eXplicit MultiThreaded (XMT) design and prototyped it in hardware and software. XMT comprises a programmer's workflow that advances from work-depth, a standard PRAM theory abstraction, to an XMT program, and, if desired, to its performance tuning. XMT provides strong performance for programs developed this way due to its hardware support of very fine-grained threads and the overhead of handling them. XMT has also shown unique promise when it comes to ease-of-programming, the biggest problem that has limited the impact of all parallel systems to date. For example, teachability of XMT programming has been demonstrated at various levels from rising 6th graders to graduate students, and students in a freshman class were able to program 3 parallel sorting algorithms. The main purpose of the current paper is to stimulate discussion on the following somewhat open-ended question. Now that we made significant progress on a system devoted to supporting PRAM-like programming, is it possible to incorporate our hardware support as an add-on into other current and future many-core systems? The paper considers a concrete proposal for doing that: recasting our work as a hardware-enhanced programmer's workflow ¿module¿ that can then be essentially imported into the other systems.