Applications programmers do not need to write explicitly parallel programs


Moderator: Professor Arvind, MIT


For the motion: Professor David August, Princeton

Against the motion: Professor Keshav Pingali, University of Texas at Austin


Arvindís position statement

Microprocessors with small number of cores have become ubiquitous. The number of cores in a microprocessor may track Mooreís law in future. There is a general agreement that programming multicores remains the biggest obstacle in this forward march of performance. How should the potential of multicore processors be exploited by applications programmers? Is explicit parallel programming inherently more difficult than implicit parallel programming? If so, can we design languages, compilers, and runtime systems so that applications programmers can get away with writing only implicitly parallel programs (augmented with a small number of declarative annotations if necessary), without sacrificing performance? Is explicitly parallel programming needed for anyone other than a few compiler writers and systems programmers? Is it important to be able to express non-determinism (e.g., selection from a set) to exploit parallelism in an application? Is a speculative execution model essential to exploit parallelism? Professors August and Pingali will debate these questions.


Please bring your own darts.


Keshav Pingali's position statement:

I believe explicitly parallel programming is a necessary evil for applications programmers. It is true that explicitly parallel programs are more complex to write, debug and maintain than implicitly parallel programs (in which parallelism is managed automatically by compilers, runtime systems and systems software). Nevertheless, I will argue that there are applications that cannot be parallelized at compile-time or runtime by automatic techniques; for these types of applications, programmers must write explicitly parallel code if they want good performance on multicore processors. I will also present quantitative arguments to show that it is important to permit applications programmers to express non-deterministic choice, and that a speculative model is essential for exploiting parallelism in many programs.


David August's position statement:

Check back soon.


Back to CARD webpage