General purpose parallel architectures
Handbook of theoretical computer science (vol. A)
PVM: Parallel virtual machine: a users' guide and tutorial for networked parallel computing
PVM: Parallel virtual machine: a users' guide and tutorial for networked parallel computing
Towards efficiency and portability: programming with the BSP model
Proceedings of the eighth annual ACM symposium on Parallel algorithms and architectures
Proceedings of the eighth annual ACM symposium on Parallel algorithms and architectures
Parallel programming with MPI
Using PLAPACK: parallel linear algebra package
Using PLAPACK: parallel linear algebra package
MagPIe: MPI's collective communication operations for clustered wide area systems
Proceedings of the seventh ACM SIGPLAN symposium on Principles and practice of parallel programming
Toward Formally-Based Design of Message Passing Programs
IEEE Transactions on Software Engineering - Special issue on architecture-independent languages and software tools for parallel processing
Letters to the editor: go to statement considered harmful
Communications of the ACM
Flow diagrams, turing machines and languages with only two formation rules
Communications of the ACM
Automatically tuned collective communications
Proceedings of the 2000 ACM/IEEE conference on Supercomputing
Object-based collective communication in Java
Proceedings of the 2001 joint ACM-ISCOPE conference on Java Grande
Scalable Parallel Computing: Technology,Architecture,Programming
Scalable Parallel Computing: Technology,Architecture,Programming
Optimization Rules for Programming with Collective Operations
IPPS '99/SPDP '99 Proceedings of the 13th International Symposium on Parallel Processing and the 10th Symposium on Parallel and Distributed Processing
CCL: A Portable and Tunable Collective Communication Library for Scalable Parallel Computers
Proceedings of the 8th International Symposium on Parallel Processing
Experimental Results about MPI Collective Communication Operations
HPCN Europe '99 Proceedings of the 7th International Conference on High-Performance Computing and Networking
Bandwidth-Efficient Collective Communication for Clustered Wide Area Systems
IPDPS '00 Proceedings of the 14th International Symposium on Parallel and Distributed Processing
Structured programming
Trasgo: a nested-parallel programming system
The Journal of Supercomputing
A preliminary nested-parallel framework to efficiently implement scientific applications
VECPAR'04 Proceedings of the 6th international conference on High Performance Computing for Computational Science
SPC-XML: a structured representation for nested-parallel programming languages
Euro-Par'05 Proceedings of the 11th international Euro-Par conference on Parallel Processing
Hi-index | 0.00 |
During the software crisis of the 1960s, Dijkstra's famous thesis "goto considered harmful" paved the way for structured programming, i.e. software development with well-defined and disciplined organization of control flow. In parallel programming, a new aspect - communication - has an important impact on the structure and properties of programs. This paper shows that many current difficulties of parallel programming are caused by complicated and poorly structured communication, which is a consequence of using low-level send-recv primitives. We argue that, like goto in sequential programs, send-recv should be avoided as far as possible and replaced by collective operations in the parallel setting. We argue against some widely held opinions about the apparent superiority of individual over collective communication and present substantial theoretical and empirical evidence to the contrary. The paper overviews some recent results on formal transformation rules for collective operations that facilitate systematic, performance-oriented design of parallel programs using MPI (Message Passing Interface).