Parallel Programming

14,000,000 Leading Edge Experts on the ideXlab platform

Scan Science and Technology

Contact Leading Edge Experts & Companies

Scan Science and Technology

Contact Leading Edge Experts & Companies

The Experts below are selected from a list of 95727 Experts worldwide ranked by ideXlab platform

Cristina Massen - One of the best experts on this subject based on the ideXlab platform.

  • Parallel Programming of exogenous and endogenous components in the antisaccade task
    Quarterly Journal of Experimental Psychology, 2004
    Co-Authors: Cristina Massen
    Abstract:

    In the antisaccade task subjects are required to suppress the reflexive tendency to look at a peripherally presented stimulus and to perform a saccade in the opposite direction instead. The present studies aimed at investigating the inhibitory mechanisms responsible for successful performance in this task, testing a hypothesis of Parallel Programming of exogenous and endogenous components: A reflexive saccade to the stimulus is automatically programmed and competes with the concurrently established voluntary programme to look in the opposite direction. The experiments followed the logic of selectively manipulating the speed of processing of these components and testing the prediction that a selective slowing of the exogenous component should result in a reduced error rate in this task, while a selective slowing of the endogenous component should have the opposite effect. The results provide evidence for the hypothesis of Parallel Programming and are discussed in the context of alternative accounts of anti...

  • Parallel Programming of exogenous and endogenous components in the antisaccade task
    Quarterly Journal of Experimental Psychology, 2004
    Co-Authors: Cristina Massen
    Abstract:

    In the antisaccade task subjects are required to suppress the reflexive tendency to look at a peripherally presented stimulus and to perform a saccade in the opposite direction instead. The present studies aimed at investigating the inhibitory mechanisms responsible for successful performance in this task, testing a hypothesis of Parallel Programming of exogenous and endogenous components: A reflexive saccade to the stimulus is automatically programmed and competes with the concurrently established voluntary programme to look in the opposite direction. The experiments followed the logic of selectively manipulating the speed of processing of these components and testing the prediction that a selective slowing of the exogenous component should result in a reduced error rate in this task, while a selective slowing of the endogenous component should have the opposite effect. The results provide evidence for the hypothesis of Parallel Programming and are discussed in the context of alternative accounts of antisaccade performance.

Duane Szafron - One of the best experts on this subject based on the ideXlab platform.

  • why not use a pattern based Parallel Programming system
    European Conference on Parallel Processing, 2003
    Co-Authors: John Anvik, Duane Szafron, Jonathan Schaeffer, Kai Tan
    Abstract:

    Parallel Programming environments provide a way for users to reap the benefits of Parallelism, while reducing the effort required to create Parallel applications. The CO2P3S Parallel Programming system is one such tool, using a pattern-based approach to express concurrency. This paper demonstrates that the CO2P3S system contains a rich set of Parallel patterns for implementing a wide variety of applications running on shared-memory or distributed-memory hardware. Code metrics and performance results are presented to show the usability of the CO2P3S system and its ability to reduce Programming effort, while producing programs with reasonable performance.

  • pattern based Parallel Programming
    International Conference on Parallel Processing, 2002
    Co-Authors: Steven Bromling, Steve Macdonald, Duane Szafron, Jonathan Schaeffer, John Anvik, Kai Tan
    Abstract:

    The advantages of pattern-based Programming have been well-documented in the sequential Programming literature. However patterns have yet to make their way into mainstream Parallel computing, even though several research tools support them. There are two critical shortcomings of pattern (or template) based systems for Parallel Programming: lack of extensibility and performance. This paper describes our approach for addressing these problems in the CO/sub 2/P/sub 3/S Parallel Programming system. CO/sub 2/P/sub 3/S supports multiple levels of abstraction, allowing the user to design an application with high-level patterns, but move to lower levels of abstraction for performance tuning. Patterns are implemented as parameterized templates, allowing the user the ability to customize the pattern to meet their needs. CO/sub 2/P/sub 3/S generates code that is specific to the pattern/parameter combination selected by the user. The MetaCO/sub 2/P/sub 3/S tool addresses extensibility by giving users the ability to design and add new pattern templates to CO/sub 2/P/sub 3/S. Since the pattern templates are stored in a system-independent format, they are suitable for storing in a repository to be shared throughout the user community.

  • object oriented pattern based Parallel Programming with automatically generated frameworks
    USENIX Conference on Object-Oriented Technologies and Systems, 1999
    Co-Authors: Steve Macdonald, Duane Szafron, Jonathan Schaeffer
    Abstract:

    The CO2P3S Parallel Programming system uses design patterns and object-oriented Programming to reduce the complexities of Parallel Programming. The system generates correct frameworks from pattern template specifications and provides a layered Programming model to address both the problems of correctness and openness. This paper describes the highest level of abstraction in CO2P3S, using two example programs to demonstrate the Programming model and the supported patterns. Further, we introduce phased Parallel design patterns, a new class of patterns that allow temporal phase relationships in a Parallel program to be specified, and provide two patterns in this class. Our results show that the frameworks can be used to quickly implement Parallel programs, reusing sequential code where possible. The resulting Parallel programs provide substantial performance gains over their sequential counterparts.

  • pattern based object oriented Parallel Programming
    Conference on Scientific Computing, 1997
    Co-Authors: Steve Macdonald, Jonathan Schaeffer, Duane Szafron
    Abstract:

    Over the past five years there have been several attempts to produce template-based Parallel Programming systems (PPS). By observing the progression of these systems, we can clearly see the evolution of pattern-based computing technology. In this paper, we present an architecture and model for Correct Object-Oriented Pattern-based Parallel Programming System in which we address some of the shortcomings of FrameWorks and Enterprise. Our continuing goal is to produce usable Parallel Programming tools. The most important shortcoming we address is the loose relationship between the user's code and the graphical specification of the program structure.

  • an experiment to measure the usability of Parallel Programming systems
    Concurrency and Computation: Practice and Experience, 1996
    Co-Authors: Duane Szafron, Jonathan Schaeffer
    Abstract:

    SUMMARY The growth of commercial and academic interest in Parallel and distributed computing during the past fifteen years has been accompanied by a corresponding increase in the number of available Parallel Programming systems (PPS). However, little work has been done to evaluate their usability, or to develop criteria for such evaluations. As a result, the usability of a typical PPS is based on how easily a small set of trivially Parallel algorithms can be implemented by its authors. This paper discusses the design and results of an experiment to objectively compare the usability of two PPSs. Half of the students in a graduate Parallel and distributed computing course solved a problem using the Enterprise PPS while the other half used a PVM-like library of message-passing routines. The objective was to measure usability. This experiment provided valuable feedback as to what features of PPSs are useful and the benefits they provide during the development of Parallel programs. Although many usability experiments have been conducted for sequential Programming languages and environments, they are rare in the Parallel Programming domain. Such experiments are necessary to help narrow the gap between what Parallel programmers want, and what current PPSs provide.

Jonathan Schaeffer - One of the best experts on this subject based on the ideXlab platform.

  • why not use a pattern based Parallel Programming system
    European Conference on Parallel Processing, 2003
    Co-Authors: John Anvik, Duane Szafron, Jonathan Schaeffer, Kai Tan
    Abstract:

    Parallel Programming environments provide a way for users to reap the benefits of Parallelism, while reducing the effort required to create Parallel applications. The CO2P3S Parallel Programming system is one such tool, using a pattern-based approach to express concurrency. This paper demonstrates that the CO2P3S system contains a rich set of Parallel patterns for implementing a wide variety of applications running on shared-memory or distributed-memory hardware. Code metrics and performance results are presented to show the usability of the CO2P3S system and its ability to reduce Programming effort, while producing programs with reasonable performance.

  • pattern based Parallel Programming
    International Conference on Parallel Processing, 2002
    Co-Authors: Steven Bromling, Steve Macdonald, Duane Szafron, Jonathan Schaeffer, John Anvik, Kai Tan
    Abstract:

    The advantages of pattern-based Programming have been well-documented in the sequential Programming literature. However patterns have yet to make their way into mainstream Parallel computing, even though several research tools support them. There are two critical shortcomings of pattern (or template) based systems for Parallel Programming: lack of extensibility and performance. This paper describes our approach for addressing these problems in the CO/sub 2/P/sub 3/S Parallel Programming system. CO/sub 2/P/sub 3/S supports multiple levels of abstraction, allowing the user to design an application with high-level patterns, but move to lower levels of abstraction for performance tuning. Patterns are implemented as parameterized templates, allowing the user the ability to customize the pattern to meet their needs. CO/sub 2/P/sub 3/S generates code that is specific to the pattern/parameter combination selected by the user. The MetaCO/sub 2/P/sub 3/S tool addresses extensibility by giving users the ability to design and add new pattern templates to CO/sub 2/P/sub 3/S. Since the pattern templates are stored in a system-independent format, they are suitable for storing in a repository to be shared throughout the user community.

  • object oriented pattern based Parallel Programming with automatically generated frameworks
    USENIX Conference on Object-Oriented Technologies and Systems, 1999
    Co-Authors: Steve Macdonald, Duane Szafron, Jonathan Schaeffer
    Abstract:

    The CO2P3S Parallel Programming system uses design patterns and object-oriented Programming to reduce the complexities of Parallel Programming. The system generates correct frameworks from pattern template specifications and provides a layered Programming model to address both the problems of correctness and openness. This paper describes the highest level of abstraction in CO2P3S, using two example programs to demonstrate the Programming model and the supported patterns. Further, we introduce phased Parallel design patterns, a new class of patterns that allow temporal phase relationships in a Parallel program to be specified, and provide two patterns in this class. Our results show that the frameworks can be used to quickly implement Parallel programs, reusing sequential code where possible. The resulting Parallel programs provide substantial performance gains over their sequential counterparts.

  • pattern based object oriented Parallel Programming
    Conference on Scientific Computing, 1997
    Co-Authors: Steve Macdonald, Jonathan Schaeffer, Duane Szafron
    Abstract:

    Over the past five years there have been several attempts to produce template-based Parallel Programming systems (PPS). By observing the progression of these systems, we can clearly see the evolution of pattern-based computing technology. In this paper, we present an architecture and model for Correct Object-Oriented Pattern-based Parallel Programming System in which we address some of the shortcomings of FrameWorks and Enterprise. Our continuing goal is to produce usable Parallel Programming tools. The most important shortcoming we address is the loose relationship between the user's code and the graphical specification of the program structure.

  • an experiment to measure the usability of Parallel Programming systems
    Concurrency and Computation: Practice and Experience, 1996
    Co-Authors: Duane Szafron, Jonathan Schaeffer
    Abstract:

    SUMMARY The growth of commercial and academic interest in Parallel and distributed computing during the past fifteen years has been accompanied by a corresponding increase in the number of available Parallel Programming systems (PPS). However, little work has been done to evaluate their usability, or to develop criteria for such evaluations. As a result, the usability of a typical PPS is based on how easily a small set of trivially Parallel algorithms can be implemented by its authors. This paper discusses the design and results of an experiment to objectively compare the usability of two PPSs. Half of the students in a graduate Parallel and distributed computing course solved a problem using the Enterprise PPS while the other half used a PVM-like library of message-passing routines. The objective was to measure usability. This experiment provided valuable feedback as to what features of PPSs are useful and the benefits they provide during the development of Parallel programs. Although many usability experiments have been conducted for sequential Programming languages and environments, they are rare in the Parallel Programming domain. Such experiments are necessary to help narrow the gap between what Parallel programmers want, and what current PPSs provide.

Marco Danelutto - One of the best experts on this subject based on the ideXlab platform.

  • structured Parallel Programming with core fastflow
    Lecture Notes in Computer Science, 2013
    Co-Authors: Marco Danelutto, Massimo Torquati
    Abstract:

    FastFlow is an open source, structured Parallel Programming framework originally conceived to support highly efficient stream Parallel computation while targeting shared memory multi cores. Its efficiency mainly comes from the optimized implementation of the base communication mechanisms and from its layered design. FastFlow eventually provides the Parallel applications programmers with a set of ready-to-use, parametric algorithmic skeletons modeling the most common Parallelism exploitation patterns. The algorithmic skeleton provided by FastFlow may be freely nested to model more and more complex Parallelism exploitation patterns. This tutorial describes the “core” FastFlow, that is the set of skeletons supported since version 1.0 in FastFlow, and outlines the recent advances aimed at (i) introducing new, higher level skeletons and (ii) targeting networked multi cores, possibly equipped with GPUs, in addition to single multi/many core processing elements.

  • a risc building block set for structured Parallel Programming
    Parallel Distributed and Network-Based Processing, 2013
    Co-Authors: Marco Danelutto, Massimo Torquati
    Abstract:

    We propose a set of building blocks (RISC-pb2l) suitable to build high-level structured Parallel Programming frameworks. The set is designed following a RISC approach. RISC-pb2l is architecture independent but the implementation of the different blocks may be specialized to make the best usage of the target architecture peculiarities. A number of optimizations may be designed transforming basic building blocks compositions into more efficient compositions, such that Parallel application efficiency may be derived by construction rather than by debugging.

  • a framework for experimenting with structured Parallel Programming environment design
    Parallel Computing, 2004
    Co-Authors: Marco Aldinucci, Sonia Campa, Pierpaolo Ciullo, Massimo Coppola, Marco Danelutto, Paolo Pesciullesi, Roberto Ravazzolo, Massimo Torquati, Marco Vanneschi, Corrado Zoccolo
    Abstract:

    Publisher Summary A software development system based on integrated skeleton technology (ASSIST) is a Parallel Programming environment aimed at providing programmers of complex Parallel application with a suitable and effective Programming tool. Being based on algorithmically skeletons and coordination languages technologies, the Programming environment relieves the programmer from a number of cumbersome, error prone activities that are required when using traditional Parallel Programming environments. ASSIST has been specifically designed to be easily customizable in order to experiment different implementation techniques, solutions, algorithms or back-ends any time new features are required or new technologies become available. This chapter explains how the ASSIST Programming environment can be used to experiment new implementation techniques, mechanisms, and solutions within the framework of structured Parallel Programming models. The ASSIST implementation structure is briefly outlined and some experiments performed aimed at extending the environment are discussed. Those experiments were aimed at modifying ASSIST environment in such a way that, it can be used to program GRID architectures, including existing libraries in the application code, target heterogeneous cluster architectures, etc.

  • assist demo a high level high performance portable structured Parallel Programming environment at work
    European Conference on Parallel Processing, 2003
    Co-Authors: Marco Aldinucci, Sonia Campa, Pierpaolo Ciullo, Massimo Coppola, Marco Danelutto, Paolo Pesciullesi, Roberto Ravazzolo, Massimo Torquati, Marco Vanneschi, Corrado Zoccolo
    Abstract:

    This work summarizes the possibilities offered by Parallel Programming environment ASSIST by outlining some of the features that will be demonstrated at the conference demo session. We'll substantially show how this environment can be deployed on a Linux workstation network/cluster, how applications can be compiled and run using ASSIST and eventually, we'll discuss some ASSIST scalability and performance features. We'll also outline how the ASSIST environment can be used to target GRID architectures.

  • an advanced environment supporting structured Parallel Programming in java
    Future Generation Computer Systems, 2003
    Co-Authors: Marco Aldinucci, Marco Danelutto, P Teti
    Abstract:

    In this work we present Lithium, a pure Java structured Parallel Programming environment based on skeletons (common, reusable and efficient Parallelism exploitation patterns). Lithium is implemented as a Java package and represents both the first skeleton based Programming environment in Java and the first complete skeleton based Java environment exploiting macro-data flow implementation techniques.Lithium supports a set of user code optimizations which are based on skeleton rewriting techniques. These optimizations improve both absolute performance and resource usage with respect to original user code. Parallel programs developed using the library run on any network of workstations provided the workstations support plain JRE. The paper describes the library implementation, outlines the optimization techniques used and eventually presents the performance results obtained on both synthetic and real applications.

Laxmikant V Kale - One of the best experts on this subject based on the ideXlab platform.

  • gpu aware communication with ucx in Parallel Programming models charm mpi and python
    International Parallel and Distributed Processing Symposium, 2021
    Co-Authors: Jaemin Choi, Zane Fink, Sam White, Nitin Bhat, David F Richards, Laxmikant V Kale
    Abstract:

    As an increasing number of leadership-class systems embrace GPU accelerators in the race towards exascale, efficient communication of GPU data is becoming one of the most critical components of high-performance computing. For developers of Parallel Programming models, implementing support for GPU-aware communication using native APIs for GPUs such as CUDA can be a daunting task as it requires considerable effort with little guarantee of performance. In this work, we demonstrate the capability of the Unified Communication X (UCX) framework to compose a GPU-aware communication layer that serves multiple Parallel Programming models of the Charm++ ecosystem: Charm++, Adaptive MPI (AMPI), and Charm4py. We demonstrate the performance impact of our designs with microbenchmarks adapted from the OSU benchmark suite, obtaining improvements in latency of up to 10.2x, 11.7x, and 17.4x in Charm++, AMPI, and Charm4py, respectively. We also observe increases in bandwidth of up to 9.6x in Charm++, 10x in AMPI, and 10.5x in Charm4py. We show the potential impact of our designs on real-world applications by evaluating a proxy application for the Jacobi iterative method, improving the communication performance by up to 12.4x in Charm++, 12.8x in AMPI, and 19.7x in Charm4py.

  • a case study in tightly coupled multi paradigm Parallel Programming
    Languages and Compilers for Parallel Computing, 2008
    Co-Authors: Sayantan Chakravorty, Aaron T Becker, Terry Wilmarth, Laxmikant V Kale
    Abstract:

    Programming paradigms are designed to express algorithms elegantly and efficiently. There are many Parallel Programming paradigms, each suited to a certain class of problems. Selecting the best Parallel Programming paradigm for a problem minimizes Programming effort and maximizes performance. Given the increasing complexity of Parallel applications, no one paradigm may be suitable for all components of an application. Today, most Parallel scientific applications are programmed with a single paradigm and the challenge of multi-paradigm Parallel Programming remains unmet in the broader community. We believe that each component of a Parallel program should be programmed using the most suitable paradigm. Furthermore, it is not sufficient to simply bolt modules together: programmers should be able to switch between paradigms easily, and resource management across paradigms should be automatic. We present a pre-existing adaptive runtime system (ARTS) and show how it can be used to meet these challenges by allowing the simultaneous use of multiple Parallel Programming paradigms and supporting resource management across all of them. We discuss the implementation of some common paradigms within the ARTS and demonstrate the use of multiple paradigms within our featurerich unstructured mesh framework. We show how this approach boosts performance and productivity for an application developed using this framework.

  • performance and productivity in Parallel Programming via processor virtualization
    2004
    Co-Authors: Laxmikant V Kale
    Abstract:

    We have been pursuing a research program aimed at enhancing productivity and performance in Parallel computing at the Parallel Programming Laboratory of University of Illinois for the past decade. We summarize the basic approach, and why it has improved (and will further improve) both productivity and performance. The centerpiece of our approach is a technique called processor virtualization: the program computation is divided into a large number of chunks (called virtual processors), which are mapped to processors by an adaptive, intelligent runtime system. The runtime system also controls communication between virtual processors. This approach makes possible a number of runtime optimizations. We argue that the following strategies are necessary to improve productivity in Parallel Programming: • Automated resource management via processor virtualization • Modularity via concurrent composability • Reusability via frameworks, libraries, and multiparadigm interoperability Of these, the first two directly benefit from processor virtualization, while the last is indirectly impacted. We describe our research on all these fronts.