The purpose of this book is to help you program shared-memory parallel systems without risking your sanity.1 Nevertheless, you should think of the information in this book as a foundation on which to build, rather tha...
详细信息
We present a novel virtualization framework for rapid prototyping in parallel programming environments, without incurring notable performance penalty. The centerpiece of this approach is a high-level functional langua...
详细信息
We present a novel virtualization framework for rapid prototyping in parallel programming environments, without incurring notable performance penalty. The centerpiece of this approach is a high-level functional language, and a "parallel and pipelined" virtual machine, to interpret this logic on the target parallel machine
The biggest difficulty that students face when learning programming is in developing the necessary cognitive skills that allows them to apply what they have learnt. It is generally accepted that programming is one of ...
详细信息
ISBN:
(纸本)9781467376853
The biggest difficulty that students face when learning programming is in developing the necessary cognitive skills that allows them to apply what they have learnt. It is generally accepted that programming is one of those things that can only be learnt by doing and actively engaging with it. parallel programming is a prime example of a programming area that students commonly struggle with. A major inhibitor is due to some of its abstract concepts, making it difficult to grasp a true understanding of the underlying principles in a traditional classroom setting. This paper discusses the underlying principles that motivated the development of Active Classroom Programmer (ACP), a tool for students to learn effective programming strategies with the guidance of their instructor. ACP aims to increase students skills in applying programming topics, by immediately engaging them with the newly introduced material. This is especially important in parallel programming, as the topics quickly progress onto the many parallelisation caveats (such as thread-safety, race conditions, and so on). While laboratory or homework exercises provide students with valuable hands-on experience (to apply newly taught concepts), this opportunity generally arrives too late after the material is presented in the lesson. To address this, a collection of parallel programming exercises are being developed for the NSF/IEEE-TCPP Curriculum Initiative on parallel and Distributed Computing (as an Early Adopter award), with the help of ACP. Instructors are welcome to utilise any of the developed exercises, or even request a private ACP account for their own courses to program with their students.
The authors report their design and implementation of a new self-scheduling parallel programming language, SELSYN-C. Their approach to the challenge of parallel programming language design and implementation is two-fo...
详细信息
The authors report their design and implementation of a new self-scheduling parallel programming language, SELSYN-C. Their approach to the challenge of parallel programming language design and implementation is two-fold: (1) the design of simple extensions to C that are both easy to use, and useful for effective compilation, and (2) the design of efficient and effective scheduling strategies that can be automatically supported by a compiler and associated run-time environment.< >
This talk will present a design space based on these dimensions using concrete examples of several systems/frameworks including Gradescope, Web-CAT, the JUnit testing framework, diff-based systems, and a system we hav...
详细信息
ISBN:
(数字)9781728148946
ISBN:
(纸本)9781728148953
This talk will present a design space based on these dimensions using concrete examples of several systems/frameworks including Gradescope, Web-CAT, the JUnit testing framework, diff-based systems, and a system we have developed at UNC. It will point out future directions that can be pursued to develop a software framework for assessing concurrent programs written in multiple programming languages that improves the productivity and learning, respectively, of trainers and trainees.
Design patterns make it easier to reuse successful designs and architectures. Expressing proven techniques as design patterns makes them more accessible to developers of new systems and helps a designer get a design f...
详细信息
Design patterns make it easier to reuse successful designs and architectures. Expressing proven techniques as design patterns makes them more accessible to developers of new systems and helps a designer get a design faster. In sequential and object-oriented programming domain design patterns have played a very important role but in parallel programming the application of design patterns is very few. We propose a design-pattern based parallel programming model and implement a parallel programming environment in the SMP platform to help the developers to build their parallel application system efficiently. The experiment results show our system is effective and competent.
Concurrent programming tools strive to exploit hardware resources as much as possible. Nonetheless, the lack of high level abstraction of such tools often require from the user a reasonable amount of knowledge in orde...
详细信息
Concurrent programming tools strive to exploit hardware resources as much as possible. Nonetheless, the lack of high level abstraction of such tools often require from the user a reasonable amount of knowledge in order to achieve satisfactory performance requirements as well as they do not prevent error prone situations. In this paper we present Kanga, a framework based on the abstractions of skeletons to provide a generic tool that encapsulate many common parallel patterns. Through two case studies we validate the framework implementation.
parallel programming can be extremely challenging. programming models have been proposed to simplify this task, but wide acceptance of these remains elusive for many reasons, including the demand for greater accessibi...
详细信息
parallel programming can be extremely challenging. programming models have been proposed to simplify this task, but wide acceptance of these remains elusive for many reasons, including the demand for greater accessibility and productivity. In this paper, we introduce a parallel programming model and framework called CharmPy, based on the Python language. CharmPy builds on Charm++, and runs on top of its C++ runtime. It presents several unique features in the form of a simplified model and API, increased flexibility, and the ability to write everything in Python. CharmPy is a high-level model based on the paradigm of distributed migratable objects. It retains the benefits of the Charm++ runtime, including dynamic load balancing, asynchronous execution model with automatic overlap of communication and computation, high performance, and scalability from laptops to supercomputers. By being Python-based, CharmPy also benefits from modern language features, access to popular scientific computing and data science software, and interoperability with existing technologies like C, Fortran and OpenMP. To illustrate the simplicity of the model, we will show how to implement a distributed parallel map function based on the Master-Worker pattern using CharmPy, with support for asynchronous concurrent jobs. We also present performance results running stencil code and molecular dynamics mini-apps fully written in Python, on Blue Waters and Cori supercomputers. For stencil3d, we show performance similar to an equivalent MPI-based program, and significantly improved performance for imbalanced computations. Using Numba to JIT-compile the critical parts of the code, we show performance for both mini-apps similar to the equivalent C++ code.
This article presents the P-RIO environment, which offers high-level but straightforward, concepts for parallel and distributed programming. A simple object-based software-construction methodology facilitates modulari...
详细信息
This article presents the P-RIO environment, which offers high-level but straightforward, concepts for parallel and distributed programming. A simple object-based software-construction methodology facilitates modularity and code reuse. This methodology promotes a clear separation of the individual sequential computation components from the interconnection structure used for their interaction. P-RIO provides immediate mapping of concepts associated with the software-construction methodology to their graphical representations. P-RIO offers a graphical programming tool, modular construction, high portability, and runtime support mechanisms for parallel programs, in architectures composed of heterogeneous computing nodes.
This paper presents experience using a research-infused teaching approach towards an undergraduate parallel programming course. The research-teaching nexus is applied at various levels, first by using research-led tea...
详细信息
ISBN:
(纸本)9781479941155
This paper presents experience using a research-infused teaching approach towards an undergraduate parallel programming course. The research-teaching nexus is applied at various levels, first by using research-led teaching of core parallel programming concepts, as well as teaching the latest developments from the affiliated research group. The bulk of the course, however, focuses more on the student-driven research-based and research-tutored teaching approaches, where students actively participate in groups on research projects, students are fully immersed in the learning activity of their respective project, while at the same time participating in discussions of wider parallel programming topics across other groups. This intimate affiliation between the undergraduate course and the research group results in a wide range of benefits for all those involved.
暂无评论