Co-array Fortran (CAF) is an emerging model for scalable, global address space parallel programming that consists of a small set of extensions to the Fortran 90 programming language. Compared to MPI, the widely-used m...
详细信息
ISBN:
(纸本)3540211993
Co-array Fortran (CAF) is an emerging model for scalable, global address space parallel programming that consists of a small set of extensions to the Fortran 90 programming language. Compared to MPI, the widely-used message-passing programming model, CAF's global address space programming model simplifies the development, of single-program-multiple-data parallel programs by shifting the burden for choreographing and optimizing communication from developers to compilers. This paper describes an open-source, portable, and retargetable CAF compiler under development at Rice University that is well-suited for today's high-performance clusters. Our compiler translates CAF into Fortran 90 plus calls to one-sided communication primitives. Preliminary experiments comparing CAF and MPI versions of several of the NAS parallel benchmarks on an Itanium 2 cluster with a Myrinet 2000 interconnect show that our CAF compiler delivers performance that is roughly equal to or, in many cases, better than that of programs parallelized using MPI, even though support for global optimization of communication has not yet been implemented in our compiler.
In this paper, we show our initial experience with a class of objects, called Hierarchically Tiled Arrays (HTAs), that encapsulate parallelism. HTAs allow the construction of single-threaded parallel programs where a ...
详细信息
ISBN:
(纸本)9781450377997
In this paper, we show our initial experience with a class of objects, called Hierarchically Tiled Arrays (HTAs), that encapsulate parallelism. HTAs allow the construction of single-threaded parallel programs where a master process distributes tasks to be executed by a collection of servers holding the components (tiles) of the HTAs. The tiled and recursive nature of HTAs facilitates the adaptation of the programs that use them to varying machine configurations, and eases the mapping of data and tasks to parallel computers with a hierarchical organization. We have implemented HTAs as a MATLAB™ toolbox, overloading conventional operators and array functions such that HTA operations appear to the programmer as extensions of MATLAB™. Our experiments show that the resulting environment is ideal for the prototyping of parallel algorithms and greatly improves the ease of development of parallel programs while providing reasonable performance.
The most frequently used part of MPI-2 is MPI I/O. Due to the complexity of parallel programming in general, and of handling parallel I/O in particular, there is a need for tools that support the application developme...
详细信息
This paper introduces a new primitive data type, hierarchically tiled arrays (HTAs), which could be incorporated into conventional languages to facilitate parallel programming and programming for locality. It is argue...
详细信息
Algorithmic skeletons define general patterns of computation which are useful for exposing the computational structure of a program. Being general structures they qualify as a target for parallelisation, which is most...
详细信息
ISBN:
(数字)9783540453611
ISBN:
(纸本)3540419195
Algorithmic skeletons define general patterns of computation which are useful for exposing the computational structure of a program. Being general structures they qualify as a target for parallelisation, which is most often carried out by providing specialised, non-portable, low-level parallel implementations (architectural skeletons) of each algorithmic skeleton for different platforms. In the paper we introduce an intermediate layer of implementation skeletons for the parallel functional language Eden. These are portable high-level skeletons which simplify the design of parallel programs substantially. Runtime experiments on a network of workstations and on a Beowulf cluster have shown that even on such high-latency parallel platforms good speedups can be obtained.
We describe how the ASSIST parallel programming environment can be used to run parallel programs on collections of heterogeneous workstations and evaluate the scalability of one task-farm real application and a data-p...
详细信息
This paper describes how we utilized cooperative learning to meet the practical challenges of teaching parallel programming in the early college years, as well as to provide a more real world context to the course. Ou...
详细信息
ISBN:
(纸本)1581133294
This paper describes how we utilized cooperative learning to meet the practical challenges of teaching parallel programming in the early college years, as well as to provide a more real world context to the course. Our main contribution is a set of cooperative group activities for both inside and outside the classroom, which are targeted to the computer science discipline, have received very positive student feedback, are easy to implement, and achieve a number of learning objectives beyond knowledge of the specific topic. These activities can be applied directly or be easily adapted to other computer science courses, particularly programming, systems, and experimental computer science courses.
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 organizat...
详细信息
ISBN:
(纸本)3540425225
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).
This paper presents task-parallel programming, a style of application development for reconfigurable systems. Task-parallel programming enables efficient interaction between concurrent hardware and software tasks. In ...
详细信息
Formal program transformation in a functional language can be used to support incremental design of parallel programs. This paper illustrates the method with a detailed example: a program transformation that improves ...
详细信息
暂无评论