Skip to content
Free planNo credit card requiredStart writing

Search 250 million research papers

Read the abstract, see who wrote it and who cites it, and get the citation in APA, MLA, Chicago or Harvard.

About 2,795 papers for “parallel programming languages”

Parallel Programming Languages

Keshav Pingali · 1998

this article always refers to the logical processors in the underlying parallel execution model of the language, and not to hardware processors). A more decoupled data model is provided by the distributed-memory model in which each processor has its own address space of memory locations inaccessible to other processors. The choice of the data model determines how processors communicate with each other --- in a shared-memory model, they communicate by reading and writing shared locations, but in a distributed-memory model, they communicate by sending and receiving messages.

Cited by 0

Portable Parallel Programming Languages

Rudolf Eigenmann · 1996

In this workshop session, three speakers present their viewpoints and contributions to the topic of portable parallel programming languages. They are Dennis Gannon from Indiana University, David Loveman from Digital Equipment Corporation, and David Padua from the University of Illinois. Their presentations discuss extensions to C , Fortran, and compiler support for standard languages on parallel architectures, respectively. This paper introduces the topic performance portability on parallel machines. We will then try to draw a picture of where we are today in providing portable parallel languages to a growing user community, given that the three contributions represent major milestones along this path.

Cited by 0

Compositional parallel programming languages

Ian Foster · ACM Transactions on Programming Languages and Systems · 1996

In task-parallel programs, diversee activities can take place concurrently, and communication and synchronization patterns are complex and not easily predictable. Previous work has identified compositionality as an important design principle for task-parallel programs. In this article, we discuss alternative approaches to the realization of this principle, which holds that properties of program components should be preserved when those co ponents are composed in parallel with other program components. We review two programming languages, Strand and Program Composition Notation, that support compositionality via a small number of simple concepts, namely, monotone operations on shared opbects, a uniform addressing mechanism, and parallel composition. Both languages have been used extensively for large-scale application development, allowing us to provide an informed assessment of both their strengths and their weaknesses. We observe that while compositionality simplifies development of complex applications, the use of specialized languages hinders reuse of existing code and tools and the specification of domain decomposition strategies. This suggests an alternative approach based on small extensions to existing sequential languages. We conclude the article with a discussion of two languages that realized this strategy.

Cited by 46

Parallel Programming Models and Languages

An Hong · 2002

Parallel computing is about 20 years old. Till now, there is a lack of effective parallel programming methods and tools in high performance computing as a result that it is very difficulty to parallel programming, understanding behaviors of parallel program, debugging parallel codes and optimizing performance. In this paper, the reasons why so difficulty parallel programming is are analyzed, while the issues about parallel programming methods existing in recent high performance parallel machines are addressed, the current status of parallel programming models and languages are surveyed, the view of the criteria is offered to evaluate parallel programming models, the challenge problems in this area are brought forward, and some future research directions are pointed out.

Cited by 6

Coordination Languages for Parallel Programming

Arbab Ciancarini, F. Arbab, P. Ciancarini et al. · 1998

this article we will identify some basic principles of coordination languages, describe some examples, and introduce the rest of the papers in this special issue. 2 Basic Principles

Cited by 0

Parallel programming using functional languages

Paul Roe · 1991

I am greatly indebted to Simon Peyton Jones, my supervisor, for his encouragement and technical assistance. His overwhelming enthusiasm was of great support to me. I particularly want to thank Simon and Geoff Burn for commenting on earlier drafts of this thesis. Through his excellent lecturing Cohn Runciman initiated my interest in functional programming. I am grateful to Phil Trinder for his simulator, on which mine is based, and Will Partain for his help with LaTex and graphs. I would like to thank the Science and Engineering Research Council of Great Britain for their financial support. Finally, I would like to thank Michelle, whose culinary skills supported me whilst I was writing-up.The Imagination the only nation worth defending a nation without alienation a nation whose flag is invisible and whose borders are forever beyond the horizon a nation whose motto is why have one or the other when you can have one the other and both

Cited by 41

Concurrent Programming—Parallel Programming General Terms Languages, Verification

Shivali Agarwal, Rajkishore Barik, Rudrapatna K Shyamasundar · 2008

X10 is a modern object-oriented programming language designed for high performance, high productivity programming of parallel and multi-core computer systems. Compared to the lower-level thread-based concurrency model in the Java TM language, X10 has higher-level concurrency constructs such as async, atomic and finish built into the language to simplify creation, analysis and optimization of parallel programs. In this paper, we introduce a new algorithm for May-Happen-in-Parallel (MHP)analysisofX10 programs. The analysis algorithm is based on simple path traversals in the Program Structure Tree, and does not rely on pointer alias analysis of thread objects as in MHP analysis for Java programs. We introduce a more precise definition of the MHP relation than in past work by adding condition vectors that identify execution instances for which the MHP relation holds, instead of just returning a single true/false value for all pairs of executing instances. Further, MHP analysis is refined in our approach by using the observation that two statement instances which occur in atomic sections that execute at the same X10 place must have MHP = false. We expect that our MHP analysis algorithm will be applicable to any language that adopts the core concepts of places, async, finish, and atomic sections from the X10 programming model. We also believe that this approach offers the best of two worlds to programmers and parallel programming tools — higher-level abstractions of concurrency coupled with simple and efficient analysis algorithms.

Cited by 0

Embedded Languages for Data-Parallel Programming

Joel Svensson · Chalmers Publication Library (Chalmers University of Technology) · 2013

Computers today are becoming more and more parallel. General purpose processors (CPUs) have multiple processing cores and Single Instruction Multiple Data (SIMD) units for data-parallelism. Graphics processors (GPUs) bring massive parallelism at the cost of being harder to program than CPUs. This thesis applies embedded language methodology to data-parallel programming. Two embedded languages are presented, Obsidian for general purpose GPU programming and EmbArBB for data-parallel programming across platforms. CPUs and GPUs get more parallel resources with each new generation. The question of how to efficiently program these processors arises. We are after efficiency both in programmer productivity and in application performance. Using embedded languages allows us to experimentwith what abstractions to present to the programmer at relatively little effort.Obsidian is an embedded language for general purpose programming of GPUs. We try to strike a balance between high level, productivity increasing abstractions and low-level control needed for performance. The Obsidian programming model mirrors the GPU architecture and the programmer is constrained into writing GPU-friendly code. Hierarchy level polymorphic library functions are supplied to make these constraints feel less obtrusive. Obsidian programs are compiled into CUDA C code. This compilation is based on a simple and elegant monad reification technique. In cases where the programmer is not interested in low-level details or wants the program to run over a range of hardware, a higher level language can be used.EmbArBB is a Haskell embedding or the Intel ArBB system. EmbArBB relies on the ArBB system to generate code (via a Just-In-Time compiler) to a range of hardware. EmbArBB embeds a preexisting library for data-parallelism into Haskell and we obtain very good performance at little implementation effort. This performance comes from the expertise and effort put into the ArBB system and that we get for free. Embedding ArBB is a way to provide these benefits to the Haskell programmer and a way to increase usefulnessof an existing system by opening it up to a wider audience. Obsidian is very different; it is not based on a set of high-level parallel primitives. The Obsidian programmer can implement these primitives in different ways and then select the best one. We have obtained very good performance in case studies involving reductions. Obsidian programs are also more terse and composable, compared to CUDA.

Cited by 2

Parallel object languages : programming and semantics

Caromel, Denis · OpenGrey (Institut de l'Information Scientifique et Technique) · 1996

Available from INIST (FR), Document Supply Service, under shelf-number : TM 580 / INIST-CNRS - Institut de l'Information Scientifique et Technique

Cited by 0

Taxonomy for Visual Parallel Programming Languages

P. A. Lee, J. Webber · 2007

Visual notations for constructing parallel programs have a number of potential advantages over traditional text-based forms, and several visual parallel programming languages have been proposed. This paper explores the design space for such visual languages, and presents a taxonomy that captures the salient underlying characteristics, with exemplification from a number of existing systems.

Cited by 0

Logic Programming: Prolog and Stream Parallel Languages

Jan Newmarch · Medical Entomology and Zoology · 1990

Introduction logic programming Prolog an interpretive algorithm refinements and extensions metalogical concepts the Warren Abstract Machine sequential implementation of Prolog parallelism in logic programs stream parallel.

Cited by 6

Analysis and Compilation of Parallel Programming Languages

Adilla Susungi · theses.fr (ABES) · 2018

La compilation traditionnelle est confrontée à de nombreux défis face aux besoins d'optimisations de programmes pour architectures parallèles. Un défi particulier est la conception de langages et représentations intermédiaires (RIs) appropriés.Bien que différentes RIs aient été proposées pour repousser les limites de la compilation traditionnelle, la plupart ne sont toujours pas adaptées pour appliquer des transformations de programmes pertinentes.Différentes alternatives sont donc de plus en plus exploitées, telles que l'autotuning ou la compilation interactive. Ces dernières nécessitent l'usage de langages intermédiaires fondamentalement différents, par exemple, les méta-langages pour la transformation de programmes. Dans cette thèse, centrée sur les besoins en applications numériques, nous étudions ce type de meta-langages; nous adressons particulièrement quatre questions:(i) Comment introduire une expressivité spécifique à un domaine?(ii) Comment repenser leur conception pour améliorer leur flexibilité dans la composition de transformations et la génération de plusieurs variantes de programme?(iii) Jusqu'où pouvons-nous introduire du support pour le NUMA (Non-Uniform Memory Access)?(iv) En tant que nouvelle classe de méta-langages, comment formaliser leur sémantique? Nous répondons à ces questions au travers de la conception et la sémantique de TeML, un méta-langage pour l'optimisation d'applications tensorielles.

Cited by 0Open access

Comparing Parallel Functional Languages: Programming and Performance∗

N. Scaife · 2015

Abstract. 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. ∗This work is primarily supported by the Austrian Academy of Sciences (APART fellowship 624), the Japan

Cited by 0

Complexity and Performance in Parallel Programming Languages

Steven P. V, Daphna Nathanson, David J. Lilja · 2008

Several parallel programming languages, libraries and environments have been developed to ease the task of writing programs for multiprocessors. Proponents of each approach often point out various language features that are designed to provide the programmer with a simple programming interface. However, virtually no data exists that quantitatively evaluates the relative ease of use of different parallel programming languages. The following paper borrows techniques from the software engineering field to quantify the complexity of three predominate programming models: shared memory, message passing and High-Performance Fortran. It is concluded that traditional software complexity metrics are effective indicators of the relative complexity of parallel programming languages.

Cited by 0