In this paper, TOPAS, a new parallel programming environment for distributed systems is presented. TOPAS automatically analyzes data dependence among tasks and synchronizes data, which reduces the time needed for para...
详细信息
ISBN:
(纸本)3540435913
In this paper, TOPAS, a new parallel programming environment for distributed systems is presented. TOPAS automatically analyzes data dependence among tasks and synchronizes data, which reduces the time needed for parallel program developments. TOPAS also provides supports for scheduling, dynamic load balancing and fault tolerance. Experiments show simplicity and efficiency of parallel programming in TOPAS environment.
High-level programming languages such as Python are increasingly used to provide intuitive interfaces to libraries written in lower-level languages and for assembling applications from various components. This migrati...
详细信息
ISBN:
(纸本)9781450366700
High-level programming languages such as Python are increasingly used to provide intuitive interfaces to libraries written in lower-level languages and for assembling applications from various components. This migration towards orchestration rather than implementation, coupled with the growing need for parallel computing (e.g., due to big data and the end of Moore's law), necessitates rethinking how parallelism is expressed in programs. Here, we present Parsl, a parallel scripting library that augments Python with simple, scalable, and flexible constructs for encoding parallelism. These constructs allow Parsl to construct a dynamic dependency graph of components that it can then execute efficiently on one or many processors. Parsl is designed for scalability, with an extensible set of executors tailored to different use cases, such as low-latency, high-throughput, or extreme-scale execution. We show, via experiments on the Blue Waters supercomputer, that Parsl executors can allow Python scripts to execute components with as little as 5 ms of overhead, scale to more than 250 000 workers across more than 8000 nodes, and process upward of 1200 tasks per second. Other Parsl features simplify the construction and execution of composite programs by supporting elastic provisioning and scaling of infrastructure, fault-tolerant execution, and integrated wide-area data management. We show that these capabilities satisfy the needs of many-task, interactive, online, and machine learning applications in fields such as biology, cosmology, and materials science.
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 pa...
详细信息
ISBN:
(纸本)9783540897392
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 run-time 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 feature-rich unstructured mesh framework. We show how this approach boosts performance and productivity for an application developed using this framework.
We present a domain specific language, embedded in Haskell, for general purpose parallel programming on GPUs. Our intention is to explore the use of connection patterns in parallel programming. We briefly present our ...
详细信息
ISBN:
(纸本)9783642244513
We present a domain specific language, embedded in Haskell, for general purpose parallel programming on GPUs. Our intention is to explore the use of connection patterns in parallel programming. We briefly present our earlier work on hardware generation, and outline the current state of GPU architectures and programming models. Finally, we present the current status of the Obsidian project, which aims to make GPU programming easier, without relinquishing detailed control of GPU resources. Both a programming example and some details of the implementation are presented. This is a report on work in progress.
In the paper there is discussed problem of use semaphores to solve parallel programming problems. There is proposed new semaphore mechanism of extended features. An example of application of such a semaphore for contr...
详细信息
ISBN:
(纸本)0769517315
In the paper there is discussed problem of use semaphores to solve parallel programming problems. There is proposed new semaphore mechanism of extended features. An example of application of such a semaphore for controlling a technological process is introduced and discussed Simulation results and advantages of applying the new mechanism are presented.
Today most systems in high-performance computing (HPC) feature a hierarchical hardware design: Shared memory nodes with several multi-core CPUs are connected via a network infrastructure. parallel programming must com...
详细信息
ISBN:
(纸本)9780769535449
Today most systems in high-performance computing (HPC) feature a hierarchical hardware design: Shared memory nodes with several multi-core CPUs are connected via a network infrastructure. parallel programming must combine distributed memory parallelization on the node interconnect with shared memory parallelization inside each node. We describe potentials and challenges of the dominant programming models on hierarchically structured hardware: Pure MPI (Message Passing Interface), pure OpenMP (with distributed shared memory extensions) and hybrid MPI+OpenMP in several flavors. We pinpoint cases where a hybrid programming model can indeed be the superior solution because of reduced communication needs and memory consumption, or improved load balance. Furthermore we show that machine topology has a significant impact on performance for all parallelization strategies and that topology awareness should be built into all applications in the future. Finally we give an outlook on possible standardization goals and extensions that could make hybrid programming easier to do with performance in mind.
This paper argues for an implicitly parallel programming model for many-core microprocessors, and provides initial technical approaches towards this goal. In an implicitly parallel programming model, programmers maxim...
详细信息
ISBN:
(纸本)9781595937711
This paper argues for an implicitly parallel programming model for many-core microprocessors, and provides initial technical approaches towards this goal. In an implicitly parallel programming model, programmers maximize algorithmlevel parallelism, express their parallel algorithms by asserting high-level properties on top of a traditional sequential programming language, and rely on parallelizing compilers and hardware support to perform parallel execution under the hood. In such a model, compilers and related tools require much more advanced program analysis capabilities and programmer assertions than what are currently available so that a comprehensive understanding of the input program's concurrency can be derived. Such an understanding is then used to drive automatic or interactive parallel code generation tools for a diverse set of parallel hardware organizations. The chip-level architecture and hardware should maintain parallel execution state in such a way that a strictly sequential execution state can always be derived for the purpose of verifying and debugging the program. We argue that implicitly parallel programming models are critical for addressing the software development crises and software scalability challenges for many-core microprocessors.
This contribution presents an MPI-based parallel computational framework for simulation and gradient-based structural optimization of geometrically nonlinear and large-scale structural finite element models. The field...
详细信息
ISBN:
(纸本)9781905088423
This contribution presents an MPI-based parallel computational framework for simulation and gradient-based structural optimization of geometrically nonlinear and large-scale structural finite element models. The field of computational structural analysis is gaining more and more importance in product design. In order to obtain an impression about possible approaches of design improvement already in an early planning phase, an efficient optimization tool is desired that requires only few modelling effort. This demand can be satisfied by a combined analysis and optimization tool working on the same model. To this purpose the finite element based optimization method is an excellent approach, leading to the highest possible diversity within the optimization process.
Teaching parallel programming to undergraduate CS students is a challenging task as many of the concepts are highly abstract and difficult to grasp. OpenMP is often used to simplify parallelization of programs by allo...
详细信息
ISBN:
(纸本)9781450390705
Teaching parallel programming to undergraduate CS students is a challenging task as many of the concepts are highly abstract and difficult to grasp. OpenMP is often used to simplify parallelization of programs by allowing one to incrementally parallelize using concise and expressive directives. Unfortunately, OpenMP is not available in Java natively. A basic support of OpenMP-like directives can, however, be obtained in Java using the Pyjama compiler and runtime. I report on my experience introducing parallel programming in Java with Pyjama in a small Data Structures class. The material is presented to students in the form of parallel programming patternlets embedded in an interactive notebook with which students can experiment. Formative and summative assessments of the module's effectiveness are performed. This pilot run of the module yielded mixed results, yet valuable insight was gained regarding possible future approaches.
The importance of high-performance computing (HPC) motivates an increasing number of students to study parallel programming. However, a major obstacle for students to learn parallel programming is the lack of large-sc...
详细信息
ISBN:
(纸本)9781538665220
The importance of high-performance computing (HPC) motivates an increasing number of students to study parallel programming. However, a major obstacle for students to learn parallel programming is the lack of large-scale computing resources and feedback for their programs. In this paper, we design and implement an online HPC educational programming system, which provides free computing resources for students and the support of multiple HPC programming languages. The students can easily write HPC programs on our platform and submit to the Tianhe-2 supercomputer for execution. The execution results will be returned and displayed on the front-end web browser of users. In addition, our system also supports code evaluation and feedback debugging via integrating mpiP and TAU into our system kernel. The evaluation results and feedback allow students to look into the execution details of their programs and further optimize their submitted programs.
暂无评论