Pub Date : 1995-10-09DOI: 10.1109/PMMPC.1995.504343
T. Ruhl, H. Bal
Functions that invoke operations on multiple objects atomically are a useful extension of object-based parallel languages, such as Orca. This paper introduces atomic functions and shows how compile-time information can drive run-time optimizations of such functions.
{"title":"Optimizing atomic functions using compile-time information","authors":"T. Ruhl, H. Bal","doi":"10.1109/PMMPC.1995.504343","DOIUrl":"https://doi.org/10.1109/PMMPC.1995.504343","url":null,"abstract":"Functions that invoke operations on multiple objects atomically are a useful extension of object-based parallel languages, such as Orca. This paper introduces atomic functions and shows how compile-time information can drive run-time optimizations of such functions.","PeriodicalId":344246,"journal":{"name":"Programming Models for Massively Parallel Computers","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1995-10-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131512150","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 1995-10-09DOI: 10.1109/PMMPC.1995.504357
V. Beletsky, Alexander Bagaterenco, A. Chemeris
Problems arising due to run existent software in parallel computer systems are considered. The problem may be formulated as the serial programs should be analyzed first and then through modification of them are to be brought in to make them able to run in parallel computers. The problems that arise have been analyzed and ways to tackle them are given. The structure of programming package is given. It is substantiated that for most sequential programs the major share of time spent for their execution is accounted for by processing loops. Three loop parallelization methods have been selected for implementation of programs: method of coordinates, method of linear transformations, and modified method of linear-piece parallelization. The dependence graph construction principles are expounded and scheduling methods are enumerated.
{"title":"A package for automatic parallelization of serial C-programs for distributed systems","authors":"V. Beletsky, Alexander Bagaterenco, A. Chemeris","doi":"10.1109/PMMPC.1995.504357","DOIUrl":"https://doi.org/10.1109/PMMPC.1995.504357","url":null,"abstract":"Problems arising due to run existent software in parallel computer systems are considered. The problem may be formulated as the serial programs should be analyzed first and then through modification of them are to be brought in to make them able to run in parallel computers. The problems that arise have been analyzed and ways to tackle them are given. The structure of programming package is given. It is substantiated that for most sequential programs the major share of time spent for their execution is accounted for by processing loops. Three loop parallelization methods have been selected for implementation of programs: method of coordinates, method of linear transformations, and modified method of linear-piece parallelization. The dependence graph construction principles are expounded and scheduling methods are enumerated.","PeriodicalId":344246,"journal":{"name":"Programming Models for Massively Parallel Computers","volume":" 46","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1995-10-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114053310","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 1995-10-09DOI: 10.1109/PMMPC.1995.504355
M. Chakravarty, F. Schroer, M. Simons
This paper describes the integration of nested data parallelism into imperative languages using the example of C. Unlike flat data parallelism, nested data parallelism directly provides means for handling irregular data structures and certain forms of control parallelism, such as divide-and-conquer algorithms, thus enabling the programmer to express such algorithms far more naturally. Existing work deals with nested data parallelism in a functional environment, which does help avoid a set of problems, but makes efficient implementations more complicated. Moreover functional languages are not readily accepted by programmers used to languages, such as Fortran and C, which are currently predominant in programming parallel machines. In this paper, we introduce the imperative data-parallel language V and give an overview of its implementation.
{"title":"V-nested parallelism in C","authors":"M. Chakravarty, F. Schroer, M. Simons","doi":"10.1109/PMMPC.1995.504355","DOIUrl":"https://doi.org/10.1109/PMMPC.1995.504355","url":null,"abstract":"This paper describes the integration of nested data parallelism into imperative languages using the example of C. Unlike flat data parallelism, nested data parallelism directly provides means for handling irregular data structures and certain forms of control parallelism, such as divide-and-conquer algorithms, thus enabling the programmer to express such algorithms far more naturally. Existing work deals with nested data parallelism in a functional environment, which does help avoid a set of problems, but makes efficient implementations more complicated. Moreover functional languages are not readily accepted by programmers used to languages, such as Fortran and C, which are currently predominant in programming parallel machines. In this paper, we introduce the imperative data-parallel language V and give an overview of its implementation.","PeriodicalId":344246,"journal":{"name":"Programming Models for Massively Parallel Computers","volume":"55 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1995-10-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129448705","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 1995-10-09DOI: 10.1109/PMMPC.1995.504340
J. Dennis
Functional programming languages are well suited to the expression and automatic mapping of parallel computations. The Paradigm compiler is being developed to automatically analyze and snap a class of Sisal programs amenable to static analysis for execution by distributed computer systems. A program description tree is constructed to represent the source program. In this form, the program is transformed into a hierarchy of acyclic interconnections of program modules (code blocks) of two basic types: array generators and stream producers. The program description tree is then used to guide decisions about allocation of processing elements to code blocks, and to construct of code for a target multiprocessor. We discuss the problem of finding an optimal allocation (mapping), and illustrate the methodology using a practical signal processing example.
{"title":"Automatic mapping of stream-processing functional programs","authors":"J. Dennis","doi":"10.1109/PMMPC.1995.504340","DOIUrl":"https://doi.org/10.1109/PMMPC.1995.504340","url":null,"abstract":"Functional programming languages are well suited to the expression and automatic mapping of parallel computations. The Paradigm compiler is being developed to automatically analyze and snap a class of Sisal programs amenable to static analysis for execution by distributed computer systems. A program description tree is constructed to represent the source program. In this form, the program is transformed into a hierarchy of acyclic interconnections of program modules (code blocks) of two basic types: array generators and stream producers. The program description tree is then used to guide decisions about allocation of processing elements to code blocks, and to construct of code for a target multiprocessor. We discuss the problem of finding an optimal allocation (mapping), and illustrate the methodology using a practical signal processing example.","PeriodicalId":344246,"journal":{"name":"Programming Models for Massively Parallel Computers","volume":"30 6 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1995-10-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122474706","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 1995-10-09DOI: 10.1109/PMMPC.1995.504354
A. Schramm
Parallel computers with distributed memory are gaining popularity on account of their optimal scalability. However, their efficient use requires a locality-preserving mapping of the application's underlying graph structure onto the physical topology of the target platform. PROMOTER is a parallel programming model which supports an automatic mapping by the compiler by making the graph structures explicit and thus processable by the implementation. This article describes how this is done for applications with irregular and dynamic spatial structures.
{"title":"Irregular applications in PROMOTER","authors":"A. Schramm","doi":"10.1109/PMMPC.1995.504354","DOIUrl":"https://doi.org/10.1109/PMMPC.1995.504354","url":null,"abstract":"Parallel computers with distributed memory are gaining popularity on account of their optimal scalability. However, their efficient use requires a locality-preserving mapping of the application's underlying graph structure onto the physical topology of the target platform. PROMOTER is a parallel programming model which supports an automatic mapping by the compiler by making the graph structures explicit and thus processable by the implementation. This article describes how this is done for applications with irregular and dynamic spatial structures.","PeriodicalId":344246,"journal":{"name":"Programming Models for Massively Parallel Computers","volume":"33 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1995-10-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127350068","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 1995-10-09DOI: 10.1109/PMMPC.1995.504335
W. Gropp, E. Lusk
The basic processing element, from PCs to large systems, is rapidly becoming a symmetric multiprocessor (SMP). As a result, the nodes of a parallel computer will often be an SMP. The resulting mixed hardware models (combining shared-memory and distributed memory) provide a challenge to system software developers to provide users with programming models that are portable, understandable, and efficient. This paper describes and compares a variety of programming models for a parallel computer made up of SMP nodes.
{"title":"A taxonomy of programming models for symmetric multiprocessors and SMP clusters","authors":"W. Gropp, E. Lusk","doi":"10.1109/PMMPC.1995.504335","DOIUrl":"https://doi.org/10.1109/PMMPC.1995.504335","url":null,"abstract":"The basic processing element, from PCs to large systems, is rapidly becoming a symmetric multiprocessor (SMP). As a result, the nodes of a parallel computer will often be an SMP. The resulting mixed hardware models (combining shared-memory and distributed memory) provide a challenge to system software developers to provide users with programming models that are portable, understandable, and efficient. This paper describes and compares a variety of programming models for a parallel computer made up of SMP nodes.","PeriodicalId":344246,"journal":{"name":"Programming Models for Massively Parallel Computers","volume":"17 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1995-10-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116836656","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}