Once started, existing hash tables cannot change their pre-defined hash functions, even if the incoming data cannot be evenly distributed to the hash table buckets. In this paper, we present DHash, a type of hash tabl...
详细信息
Once started, existing hash tables cannot change their pre-defined hash functions, even if the incoming data cannot be evenly distributed to the hash table buckets. In this paper, we present DHash, a type of hash table for shared memory systems, that can change its hash function and rebuild the hash table on the fly, without noticeably degrading its service. The major technical novelty of DHash stems from an efficient distributing mechanism that can atomically distribute every node when rebuilding, without locking the corresponding hash table buckets. This not only enables non-blocking lookup, insert, and delete operations, but more importantly, makes DHash independent of the implementation of hash table buckets, such that DHash allows programmers to select the set algorithms that meet their requirements best from a variety of existing lock-free and wait-free set algorithms. Evaluations show that DHash can efficiently change its hash function on the fly. Moreover, when rebuilding, DHash consistently outperforms the state-of-the-art hash tables in terms of throughput and response time of concurrent operations, at different concurrency levels, and with different operation mixes and average load factors.
The paper considers a development of the conversation scheme version proposed by A. Clematis and V. Gianuzzi in Microprocessing and Microprogramming (Vol. 32, No, 1-5, 1991) [5] and Computer Languages (Vol. 18, No. 3,...
详细信息
The paper considers a development of the conversation scheme version proposed by A. Clematis and V. Gianuzzi in Microprocessing and Microprogramming (Vol. 32, No, 1-5, 1991) [5] and Computer Languages (Vol. 18, No. 3, 1993) [6]. The authors discussed the methodology of using conversations within a conventional concurrent language (Ada), which makes the conversation scheme practical. In our paper we concentrate on the improvements for their scheme. We believe that it is important for the programmer to have more choice, and propose what could be called a library of schemes from which the appropriate scheme could be chosen depending on the application. We discuss ways of setting dynamically the number of processes participating in a conversation;of having different sets of servers involved in different alternates of the same conversation;of introducing a global acceptance test which would be more sophisticated;of increasing robustness of the conversation. All of these proposals are meant to be used within a conventional language.
One problem with debugging (committed choice) concurrent logic programs is that their behaviour may be non-deterministic, in that successive executions of the same program may produce different results. We describe a ...
详细信息
One problem with debugging (committed choice) concurrent logic programs is that their behaviour may be non-deterministic, in that successive executions of the same program may produce different results. We describe a scheme, based on the 'Instant Replay' scheme developed for more conventional parallel languages, that allows us to reproduce the execution behaviour of a concurrent logic program on subsequent executions, so that the execution may be examined for debugging purposes. The properties of concurrent logic programming languages allow us to simplify our scheme greatly. We have demonstrated our scheme with KLIC, and KL1 on the PIM multiprocessors, but it can also be applied to other committed choice concurrent logic programming languages.
Background: concurrent software testing is a costly and difficult task, especially due to the exponential increase in the test sequences caused by non-determinism. Such an issue has motivated researchers to develop te...
详细信息
Background: concurrent software testing is a costly and difficult task, especially due to the exponential increase in the test sequences caused by non-determinism. Such an issue has motivated researchers to develop testing techniques that select a subset of the input domain that has a high probability of revealing faults. Academics and industrial practitioners rarely use most concurrent software testing techniques because of the lack of data about their applicability. Empirical evidence can provide an important scientific basis for the strengths and weaknesses of each technique to help researchers and practitioners choose concurrent testing techniques appropriate for their environments. Aim: This paper gathers and synthesizes empirical research on concurrent software testing to characterize the field and the types of empirical studies performed. Method: We performed a systematic mapping study to identify and analyze empirical research on concurrent software testing techniques. We provide a detailed analysis of the studies and their design choices. Results: The primary findings are: (1) there is a general lack of empirical validation of concurrent software testing techniques, (2) the type of evaluation method varies with the type of technique, (3) there are some key challenges to empirical study design in concurrent software testing, and (4) there is a dearth of controlled experiments in concurrent software testing. Conclusions: There is little empirical evidence available about some specific concurrent testing techniques like model-based testing and formal testing. Overall, researchers need to perform more empirical work, especially real-world case studies and controlled experiments, to validate properties of concurrent software testing techniques. In addition, researchers need to perform more analyses and synthesis of the existing evidence. This paper is a first step in that direction.
Multi-robot systems consist of several robots, machines and processes with strong interrelationships. A multi-robot system is characterized by the dynamics of ifs transfers from one state to another. Because of limite...
详细信息
Multi-robot systems consist of several robots, machines and processes with strong interrelationships. A multi-robot system is characterized by the dynamics of ifs transfers from one state to another. Because of limited budgets for investment, multi-robot systems must be based on shared robots and machines. Conflicts occur when a shared robot or a shared machine must serve two or more processes or tasks concurrently. When a conflict occurs it must be resolved rapidly, to minimize its effects on manufacturing-floor efficiencies. This paper describes a system based on an expert system, concurrent programming and Petri nets, which resolves conflicts generated by shared robots and machines. This system is referred to as a ''concurrent'' system. Many computer runs were performed. The results lead to the conclusion that the system under consideration provides significant benefits in real-time operation. The system is defined in generic terms, and can be implemented for a large variety of multi-robot systems.
This paper presents a context-sensitive dynamic slicing technique for the concurrent and aspectized programs. To effectively represent the concurrent aspect-oriented programs, we propose an intermediate graph called t...
详细信息
This paper presents a context-sensitive dynamic slicing technique for the concurrent and aspectized programs. To effectively represent the concurrent aspect-oriented programs, we propose an intermediate graph called the multithreaded aspect-oriented dependence graph (MAODG). The MAODG is a dynamic graph generated from the execution trace of a given program with respect to a particular set of values given as an input. Interference dependencies between the statements are shown by a distinguished edge called the interference dependence edge in the MAODG. Based on this intermediate representation, we propose a precise and accurate dynamic slicing algorithm for the concurrent aspect-oriented programs implemented using AspectJ. The proposed dynamic slicing algorithm is implemented in a slicing tool developed using the ASM framework. Several open source programs are studied and evaluated using the proposed technique along with some existing techniques. The experimentation shows that our proposed slicing algorithm generates slices of the same or smaller size, as compared with the existing algorithms. Furthermore, we found that the slice computation time is significantly less in our proposed algorithm, as compared with the existing algorithms.
concurrent C/C++ is a superset of C and C++ that provides parallel programming facilities based on message passing. Upon porting concurrent C/C++ to a shared memory multiprocessor, we felt it would be appropriate to s...
详细信息
concurrent C/C++ is a superset of C and C++ that provides parallel programming facilities based on message passing. Upon porting concurrent C/C++ to a shared memory multiprocessor, we felt it would be appropriate to supplement concurrent C/C++ with explicit facilities for synchronizing accesses to shared data structures. The capsule is a shared memory access mechanism designed especially for concurrent C/C++ to match the C++ data abstraction facility called the class. Capsules are like monitors but they have significant advantages. Capsules satisfy Bloom's criteria for expressiveness of synchronization conditions, support inheritance, allow operations to execute in parallel, and permit them to time out. Although many concepts used in capsules have been suggested elsewhere, they are synthesized in a way which offers many advantages over classical shared memory mechanisms. In this paper, I will motivate the design of capsules, briefly review and evaluate existing shared memory mechanisms, describe capsules, give examples of capsules, compare capsules with monitors, and discuss how capsules are implemented by the concurrent C compiler.
Extreme-scale computing poses a number of challenges to application performance. Developers need to study application behavior by collecting detailed information with the help of tracing toolsets to determine shortcom...
详细信息
Extreme-scale computing poses a number of challenges to application performance. Developers need to study application behavior by collecting detailed information with the help of tracing toolsets to determine shortcomings. But not only applications are "scalability challenged", current tracing toolsets also fall short of exascale requirements for low background overhead since trace collection for each execution entity is becoming infeasible. One effective solution is to cluster processes with the same behavior into groups. Instead of collecting performance information from each individual node, this information can be collected from just a set of representative nodes. This work contributes a fast, scalable, signature-based clustering algorithm that clusters processes exhibiting similar execution behavior. Instead of prior work based on statistical clustering, our approach produces precise results nearly without loss of events or accuracy. The proposed algorithm combines low overhead at the clustering level with log(P) time complexity, and it splits the merge process to make tracing suitable for extreme-scale computing. Overall, this multi-level precise clustering based on signatures further generalizes to a novel multi-metric clustering technique with unprecedented low overhead. (C) 2016 Elsevier Inc. All rights reserved.
In a distributed shared memory system, sequential consistency is often assumed as the model for the memory, because it is a natural extension from multitasking in uniprocessor systems. Weaker consistency models allow ...
详细信息
In a distributed shared memory system, sequential consistency is often assumed as the model for the memory, because it is a natural extension from multitasking in uniprocessor systems. Weaker consistency models allow greater concurrency, but programming is harder, because programs may produce unexpected results. Data-race-free (DRF) and concurrent-write-free (CWF) programs have the same set of possible executions both under a sequentially consistent memory and under some other, weaker model, memories. They can be written for a sequential memory and run unchanged under such a weaker-model memory. Since the sets of possible executions are the same, the run will only produce results that are possible under sequential consistency. This article proves the undecidability of both classes of concurrent programs in a language with if statements, loops, barriers, dynamic process creation, dynamic storage, and recursive data structures, under many models weaker than sequential consistency. Moreover, the article also proves that methods that only add synchronization statements to programs written for sequential consistency must produce some conservatively DRF or CWF programs. (C) 2003 Elsevier Ltd. All rights reserved.
During the last three academic years, the Basic ENvironment for DEveloping Robotic software (BENDER robotic platform) has been used ill concurrent programming, (a subject lectured during the second year in the syllabu...
详细信息
During the last three academic years, the Basic ENvironment for DEveloping Robotic software (BENDER robotic platform) has been used ill concurrent programming, (a subject lectured during the second year in the syllabus of the Computer Science Degree). From the first version to the third, several improvements have been made. This paper analyses these changes and shows low the robotic platform provides a new method to carry Out the practical work in a real environment. A project for extending the capabilities of the system is also presented in order to get a better remote access method. Copyright (C) 2010 CEA.
暂无评论