A concurrent implementation of software transactional memory in concurrent Haskell using a call-by-need functional language with processes and futures is given. The description of the small-step operational semantics ...
详细信息
ISBN:
(纸本)9781450323260
A concurrent implementation of software transactional memory in concurrent Haskell using a call-by-need functional language with processes and futures is given. The description of the small-step operational semantics is precise and explicit, and employs an early abort of conflicting transactions. A proof of correctness of the implementation is given for a contextual semantics with may- and should-convergence. This implies that our implementation is a correct evaluator for an abstract specification equipped with a bigstep semantics.
Memory transactions, similar to database transactions, allow a programmer to focus on the logic of their program and let the system ensure that transactions are atomic and isolated. Thus, programs using transactions d...
详细信息
ISBN:
(纸本)9781605584829
Memory transactions, similar to database transactions, allow a programmer to focus on the logic of their program and let the system ensure that transactions are atomic and isolated. Thus, programs using transactions do not suffer from deadlock. However, when a transaction performs I/O or accesses kernel resources, the atomicity and isolation guarantees from the TM system do not apply to the kernel. The xCall interface is a new API that provides transactional semantics for system calls. With a combination of deferral and compensation, xCalls enable transactional memory programs to use common OS functionality within transactions. We implement xCalls for the Intel Software Transactional Memory compiler, and found it straightforward to convert programs to use transactions and xCalls. In tests on a 16-core NUMA machine, we show that xCalls enable concurrent I/O and system calls within transactions. Despite the overhead of implementing transactions in software, transactions with xCalls improved the performance of two applications with poor locking behavior by 16 and 70%.
The widespread use vision systems in robotics introduces a number of challenges related to management of image acquisition and image processing tasks, as well as their coupling to the robot control function. With the ...
详细信息
ISBN:
(纸本)9781538646519
The widespread use vision systems in robotics introduces a number of challenges related to management of image acquisition and image processing tasks, as well as their coupling to the robot control function. With the proliferation of more distributed setups and flexible robotic architectures, the workflow of image acquisition needs to support a wider variety of communication styles and application scenarios. This paper presents FxIS, a flexible image acquisition service targeting distributed robotic systems with event-based communication. The principal idea a FxIS is in composition of a number of execution threads with a set of concurrent data structures, supporting acquisition from multiple cameras that is closely synchronized in time, both between the cameras and with the request timestamp.
Nearest-neighbor communication is one of the most important communication patterns appearing in many scientific applications. In this paper, we discuss the results of applying UPC++, a library-based partitioned global...
详细信息
ISBN:
(纸本)9781509052141
Nearest-neighbor communication is one of the most important communication patterns appearing in many scientific applications. In this paper, we discuss the results of applying UPC++, a library-based partitioned global address space (PGAS) programming extension to C++, to an adaptive mesh framework (BoxLib), and a full scientific application GTC-P, whose communications are dominated by the nearest-neighbor communication. The results on a Cray XC40 system show that compared with the highly-tuned MPI two-sided implementations, UPC++ improves the communication performance up to 60% and 90% for BoxLib and GTC-P, respectively. We also implement the nearest-neighbor communication using MPI one-sided messages. The performance comparison demonstrates that the MPI one-sided implementation can also improve the communication performance over the two-sided version but not so significantly as UPC++ does.
Automatic generation of code from Petri-Nets is an important topic. This paper presents a new approach to automatically translate Petri nets into concurrent program. In the proposed approach, place in Petri net is vie...
详细信息
ISBN:
(纸本)9780769550602
Automatic generation of code from Petri-Nets is an important topic. This paper presents a new approach to automatically translate Petri nets into concurrent program. In the proposed approach, place in Petri net is viewed as variable and transition as operating statement which change place marking according to enable and firing semantics. In order to conveniently translate Petri net to CC++ program code, sequence block and independent transition is defined and a graph called virtual Petri net is constructed. The translation rules of sequence structure, concurrent structure, select structure and loop structure of Petri nets are developed. According to these presented translation rules, an algorithm of concurrent program code generated automatically for Petri net was proposed. Finally, through case study, the effectiveness of the developed approach is illustrated.
Pattern-based verification checks the correctness of the program executions that follow a given pattern, a regular expression over the alphabet of program transitions of the form w(1)* ... w(n)*. For multithreaded pro...
详细信息
ISBN:
(纸本)9781450304900
Pattern-based verification checks the correctness of the program executions that follow a given pattern, a regular expression over the alphabet of program transitions of the form w(1)* ... w(n)*. For multithreaded programs, the alphabet of the pattern is given by the synchronization operations be tween threads. We study the complexity of pattern-based verification for abstracted multithreaded programs in which, as usual in program analysis, conditions have been replaced by nondeterminism (the technique works also for boolean programs). While unrestricted verification is undecidable for abstracted multithreaded programs with recursive procedures and PSPACE-complete for abstracted multithreaded while-programs, we show that pattern-based verification is NP-complete for both classes. We then conduct a multiparameter analysis in which we study the complexity in the number of threads, the number of procedures per thread, the size of the procedures, and the size of the pattern. We first show that no algorithm for pattern-based verification can be polynomial in the number of threads, procedures per thread, or the size of the pattern (unless P=NP). Then, using recent results about Parikh images of regular languages and semilinear sets, we present an algorithm exponential in the number of threads, procedures per thread, and size of the pattern, but polynomial in the size of the procedures.
Multiparty Session Types (MPST) are a type formalism used to model communication protocols among components in distributed systems, by specifying type and direction of data transmitted. It is standard for multiparty s...
详细信息
ISBN:
(纸本)9783030349684;9783030349677
Multiparty Session Types (MPST) are a type formalism used to model communication protocols among components in distributed systems, by specifying type and direction of data transmitted. It is standard for multiparty session type systems to use access control based on linear or affine types. While useful in offering strong guarantees of communication safety and session fidelity, linearity and affinity run into the well-known problem of inflexible programming, excluding scenarios that make use of shared channels or need to store channels in shared data structures. In this paper, we develop capability-based resource sharing for multiparty session types. In this setting, channels are split into two entities, the channel itself and the capability of using it. This gives rise to a more flexible session type system, which allows channel references to be shared and stored in persistent data structures. We illustrate our type system through a producer-consumer case study. Finally, we prove that the resulting language satisfies type safety.
Software tools and apps are pervading educational technology in many areas, not least in the field of computer science education. However, many of these tools have a very narrow scope and lack context, or only work as...
详细信息
ISBN:
(纸本)9781450392013
Software tools and apps are pervading educational technology in many areas, not least in the field of computer science education. However, many of these tools have a very narrow scope and lack context, or only work as add-ons to textbooks and other course materials. This paper advocates an alternative: a truly interactive textbook experience where interactive demonstrations and exercises are interwoven with more classical textual elements. We present a framework that provides authors with the infrastructure for writing such books, and present pseuCo Book, an interactive book for teaching concurrent programming. The effectiveness of this approach is demonstrated by a user study encompassing a detailed empirical evaluation.
As an application of a system designed for concurrent program verification, we describe a formalisation and mechanical proof of the correctness of Ben-Ari's incremental garbage collection algorithm. The proof syst...
详细信息
作者:
Gérard, SLanusse, ATerrier, FCEA Saclay
Direct Technol Informat & Informat PSA Peugeot Citroen F-91191 Gif Sur Yvette France CEA Saclay
DEIN LETI CEA Technol Avancees F-91191 Gif Sur Yvette France
The train case study is tackled with the ACCORD method developed at the CEA-LETI. This approach aims to provide a framework for real-time development as close as possible to classic object oriented methods. Thanks to ...
详细信息
ISBN:
(纸本)3540654607
The train case study is tackled with the ACCORD method developed at the CEA-LETI. This approach aims to provide a framework for real-time development as close as possible to classic object oriented methods. Thanks to high level abstractions (namely the real-time active object concept) real-time modeling can be achieved without mixing up implementation issues with domain specific one. This approach maximizes reusability and designers may fully benefit from object oriented experience acquired in other domains. In the first part of this paper, we rapidly describe the ACCORD CASE tool, especially the method step and the underlying models. In this part, we will describe too the Framework itself and the automatic implementation aspect. Second we will go back through each stage of the method by illustrating them thanks to the train control example. [2] We focus on the real-time aspects and we will try to answer to both the main questions: Hour and where real-time may be specified?
暂无评论