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...
详细信息
ISBN:
(纸本)9781467386210
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.
Nowadays many fields of science and engineering are evolving by the joint contribution of complementary fields. Computer science, and especially high performance computing, has become a key factor in the development o...
详细信息
ISBN:
(纸本)9783319273082;9783319273075
Nowadays many fields of science and engineering are evolving by the joint contribution of complementary fields. Computer science, and especially high performance computing, has become a key factor in the development of many research fields, establishing a new paradigm called computational science. Researchers and professionals from many different fields require a knowledge of high performance computing, including parallel programming, to develop a fruitful work in their particular field. So, at Universitat Autonoma of Barcelona, an interdisciplinary master on Modeling for science and engineering was started 5 years ago to provide a deep knowledge on the application of modeling and simulation to graduate students on different fields (Mathematics, Physics, Chemistry, Engineering, Geology, etc.). In this master, parallel programming appears as a compulsory subject, because it is a key topic for them. The concepts learnt in parallel programming must be applied to real applications. Therefore, a subject on Applied Modelling and Simulation has also been included. In this paper, the experience on teaching parallel programming in such interdisciplinary master is shown.
Since the appearance of parallel processors and their rapid diversification across a broad spectrum, developers must phrase algorithms in a parallel manner using originally imperative and thus inappropriate high-level...
详细信息
ISBN:
(纸本)9781479986705
Since the appearance of parallel processors and their rapid diversification across a broad spectrum, developers must phrase algorithms in a parallel manner using originally imperative and thus inappropriate high-level languages. Language extensions as well as highly complex debugging methods (e.g., profilers) to handle concurrent and non-deterministic execution are therefore continuously developed. Most tools, however, suffer from inflexibility and platform dependencies. Moreover, binary-instrumenting profilers involve high overhead, influencing and thus deforming the runtime behavior. This may even hide critical behavior, thus developers still rely on their experience and often manually include measures in their software-code (in-line profiling). In this work, we propose a platform independent abstraction layer enabling a unified parallelization and runtime-flexible choice of the actual parallelization framework (e.g., OpenMP, TBB). Based on a source-code aware point of view, we further introduce an automated in-line profiling methodology in order to allow an objective rating of the parallelization success. Moreover, we automatically extract runtime influencing aspects and exemplarily apply these methodologies to implementations of two different video-based driver-assistance algorithms considering two different processor types.
Despite the fact that we are firmly in the multicore era, the use of parallel programming is not as widespread as it could be - in the software industry or in education. There have been many calls to incorporate more ...
详细信息
ISBN:
(纸本)9781467376846
Despite the fact that we are firmly in the multicore era, the use of parallel programming is not as widespread as it could be - in the software industry or in education. There have been many calls to incorporate more parallel programming content into undergraduate computer science education. One obstacle to doing this is that the programming languages most commonly used for parallel programming are detailed, low-level languages such as C, C++, Fortran (with OpenMP or MPI), OpenCL and CUDA. These languages allow programmers to write very efficient code, but that is not so important for those whose goal is to learn the concepts of parallel computing. This paper introduces a parallel programming language called Tetra which provides parallel programming features as first class language features, and also provides garbage collection and is designed to be as simple as possible. Tetra also includes an integrated development environment which is specifically geared for debugging parallel programs and visualizing program execution across multiple threads.
This paper presents CHAOS-MCAPI (Communication Header and Operating Support-Multicore Communication API), an IPC mechanism targeting parallel programming based on message passing on multicore platforms. The proposed m...
详细信息
ISBN:
(纸本)9781467386210
This paper presents CHAOS-MCAPI (Communication Header and Operating Support-Multicore Communication API), an IPC mechanism targeting parallel programming based on message passing on multicore platforms. The proposed mechanism is built on top of the D-Bus protocol for message transmission, which allows a higher abstraction level and control when compared to lower-level mechanisms such as UNIX Pipes. Optimizations adopted by the implementation of CHAOS-MCAPI resulted in significant performance gains in relation to the original D-Bus implementation, which should be further improved by the adoption of KDBus, a 'zero-copy' mechanism recently made available natively in the Linux Kernel. That should make CHAOS-MCAPI a viable alternative for the design and implementation of parallel programs targeting multicore platforms, both in terms of scalability and programmer's productivity.
An effective teaching and learning in concurrent and parallel programming needs the presentation of short excerpts of code to students in a selected programming language during lectures. This is sometimes necessary to...
详细信息
ISBN:
(纸本)9783319273082;9783319273075
An effective teaching and learning in concurrent and parallel programming needs the presentation of short excerpts of code to students in a selected programming language during lectures. This is sometimes necessary to make understandable complicate syntactical constructs. Traditionally, these codes have been presented by the teacher to the students on a blackboard, with slides or by means any projection facilities, together with an oral description of their operation and significance. Teachers try to explain those syntactical constructs with more or less success and students do not usually test program code during lectures, nor can do any modifications to the programs, which are helpful in order to master difficult concepts of parallel programming and Concurrency. In the best possible scenario, students will carry out any tests on the real code of an example presented in lectures during practical lessons at the lab. Nevertheless, without a clear illustration of their actual behavior in a real computer program, any new concepts of concurrent constructs taught in lectures will remain fuzzy and prone to be forgotten. The presented approach consists of changing the traditional teaching and learning model of parallel programming into another where students will be equipped with multicore processors inside their laptops, which in addition to Virtual Campus services will serve to put into practice any programming code that illustrates a programming concept the minute it is presented during any lecture by the teacher to the class.
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:
(纸本)9781467376846
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.
Spiking neural P systems with synapses states characterize the movement of spikes among the neurons. The number of the spikes in neurons can be represented by integers, which provide a way to represent increment, decr...
详细信息
Recent advances in digital components provided faster and more powerful computing devices that open new challenges to the programming tools. Classical programming tools require quite a programming effort in all those ...
详细信息
Recent advances in digital components provided faster and more powerful computing devices that open new challenges to the programming tools. Classical programming tools require quite a programming effort in all those cases where the advanced features of these new components must be exploited. In this work, we discuss some recent advances in the field of the structured parallel programming models that support the rapid development of efficient parallel applications suitable to exploit all the new features available.
Ever since the end of the era of single processor performance improvement, we observe proliferation of multi and many-core architectures in almost all spheres of computing. Tablets, desktop PCs, workstation clusters, ...
详细信息
ISBN:
(纸本)9781450333160
Ever since the end of the era of single processor performance improvement, we observe proliferation of multi and many-core architectures in almost all spheres of computing. Tablets, desktop PCs, workstation clusters, and supercomputers are ripe with multi-core CPUs and/or accelerators. Although there are considerable architectural heterogeneity and scale differences present among these machine architectures, there is also significant commonality in their multicore building blocks. This situation revives the interest for possibility of parallel programming paradigms that are both efficient and portable across environments. We have been investigating such a programming paradigm for over a year and half now. Two key aspects of our work are development of a common machine abstraction for diverse hardware platforms and a clear separation of different concerns embodied in parallel programming. This is our first paper describing the philosophy, abstraction mechanism, programming model, and early results of our ongoing project. Copyright is held by the owner/author(s).
暂无评论