This paper presents a practical evaluation and comparison of three state-of-the-art parallel functional languages. The evaluation is based on implementations of three typical symbolic computation programs, with perfor...
详细信息
This paper presents a practical evaluation and comparison of three state-of-the-art parallel functional languages. The evaluation is based on implementations of three typical symbolic computation programs, with performance measured on a Beowulf-class parallel architecture. We assess three mature parallel functional languages: PMLS, a system for implicitly parallel execution of ML programs;GpH, a mainly implicit parallel extension of Haskell;and Eden, a more explicit parallel extension of Haskell designed for both distributed and parallel execution. While all three languages employ a completely implicit approach to communication, each language takes a different approach to specifying and controlling parallelism, ranging from explicit identification of processes as language constructs (Eden) through annotation of potential parallelism (GPH) to automatic detection of parallel skeletons in sequential code (PMLS). We present detailed performance measurements of all three systems on a widely available parallel architecture: a Beowulf cluster of low-cost commodity workstations. We use three representative symbolic applications: a matrix multiplication algorithm, an exact linear system solver, and a simple ray-tracer. Our results show how moderate speedups can be achieved with little or no changes to the sequential code, and that parallel performance can be significantly improved even within our high-level model of parallel functional programming by controlling key aspects of the program such as load distribution and thread granularity.
作者:
Mosses, Peter D.BRICS
Department of Computer Science University of Aarhus Ny Munkegade B.540 DK-8000 Aarhus C Denmark
Christopher Strachey's paper on Fundamental Concepts in programminglanguages is being published here for the first time. Written in the autumn of 1967, it is based on the lectures given by Strachey at an Internat...
详细信息
Christopher Strachey's paper on Fundamental Concepts in programminglanguages is being published here for the first time. Written in the autumn of 1967, it is based on the lectures given by Strachey at an International School in computerprogramming, held in Copenhagen in August 1967. Strachey intended the paper to be published in the proceedings of the School—but the proceedings never materialized, and Strachey's paper has remained an unpublished preprint for more than three decades. It is, however, one of Strachey's most significant and lengthy papers; widely circulated in the original typescript version, it has also been highly influential.
Relationships between 16 programminglanguages have been investigated using data from 1062 U.K. software firms. The number of firms which use both of a given pair of languages is recorded for all pairings of the 16 la...
详细信息
Relationships between 16 programminglanguages have been investigated using data from 1062 U.K. software firms. The number of firms which use both of a given pair of languages is recorded for all pairings of the 16 languages. Above average co-occurrence of a pair is taken as evidence of relationship between the two languages. Alternatively, the number of firms which use neither of a given pair of languages is recorded for all pairs of languages. The two methods of deriving similarity matrices we call the AND analysis (relationship by co-occurrence) and NOR (relationship by co-absence), by analogy with the Boolean operators. The AND and NOR similarity matrices first undergo separate quasi Chi-square fits to remove the size-contributions; the residuals (observed minus expected values) are then used as the raw input to a simple hierarchical clustering algorithm. Separate AND and NOR analyses reveal a consistent picture of inter-language relationships. Subjectively labelled, the broadest dichotomy seems to be between traditional languages, quite often considered clumsy (such as BASIC, COBOL, FORTRAN, Assembler…) and more modern, elegant languages (such as the Algol family and APL). Business vs scientific seems to be a secondary dichotomy. Dependence and dominance relationships can be examined by an XOR analysis: counting when one language of a pair is used while the other is not. Relative dominance (when the size-effect has been removed) is modelled by a simple directed graph, with five sub-groups of languages as the nodes. Some other similarity measures that might be used to relate programminglanguages are discussed in the Introduction, any of which may contribute to similarity by usage. Finally, the general method of analysis is applicable to many different situations in which binary data about co-occurrence of events is gathered across a large number of elements.
A method of formalization of the semantics based on the notions of information structures and of computation is presented. An information structure is a framework in which one can express the data concept of informati...
详细信息
A method of formalization of the semantics based on the notions of information structures and of computation is presented. An information structure is a framework in which one can express the data concept of information (which formalizes the intuitive idea of a certain state of memory) and of the elementary modification of a piece of information. An information is a set of theorems in a formal system associated to the language. A computation in a sequence of elementary modifications;it is an expression of the elaboration of the program (operational semantics) and, if it is limited, it may be interpreted as a compound modification (denotational semantics). This method illustrated with the help of a subset of Algol 68. The formal definition of the latter subset GOL is prefected. 23 refs.
Recent advances in technology have made the construction of general purpose systems out of many small independent microprocessors feasible. One of the issues in distributed systems is the question of appropriate langu...
详细信息
Recent advances in technology have made the construction of general purpose systems out of many small independent microprocessors feasible. One of the issues in distributed systems is the question of appropriate language constructs. When the functions of a system are distributed over many independent microprocessors, many of the well-established ideas in system design, language specification, synchronization, and communication do not apply directly to such systems. As a result, several new language concepts have been recently proposed to overcome these difficulties. The purpose of this study is to survey this new breed of languages and compare them with respect to the criteria of modularization, communication and synchronization.
The purpose of this article is twofold: first, to present the principles of software engineering as applied to the task of establishing criteria for selecting programminglanguages for engineering applications;and sec...
详细信息
The purpose of this article is twofold: first, to present the principles of software engineering as applied to the task of establishing criteria for selecting programminglanguages for engineering applications;and second, to provide a survey of current languages which, by comparison with the established criteria, will help determine which languages are most suitable for engineering applications.
The work of Christopher Strachey on two projects related with understanding combined programminglanguages (CPL) is discussed. The first project is the definition and implementation of CPL with the help from Cambridge...
详细信息
The work of Christopher Strachey on two projects related with understanding combined programminglanguages (CPL) is discussed. The first project is the definition and implementation of CPL with the help from Cambridge and London Universities. He also wanted to create a simpler version of CPL which would be easier to implement. The second project is the semantics of programminglanguages. He was trying to give semantics to imperative languages using combinators.
Many data base query languages, both stand-alone and coupled to a general purpose programming language, have been proposed. A number of issues that various designs have addressed in different ways are treated, includi...
详细信息
Many data base query languages, both stand-alone and coupled to a general purpose programming language, have been proposed. A number of issues that various designs have addressed in different ways are treated, including the specification of performance options, side effects, implicitness, the handling of types and the time of binding. In all cases, the emphasis is on a comparative analysis, rather than on an exhaustive survey of proposals. Several general observations on language design for data base access are also made.
This paper describes various approaches which have been taken to developing machine independent systems programminglanguages. It explains why none of these provides the full answer. As an example of each approach, ce...
详细信息
This paper describes various approaches which have been taken to developing machine independent systems programminglanguages. It explains why none of these provides the full answer. As an example of each approach, certain features of the language for Systems Development, a PL/I derivative with improved control and data structures, basing modifiers, and string operations, are described.
暂无评论