This paper presents an event-driven framework for inter-user communication applications, such as Internet gaming or chatting, that require frequent communication among users. This paper addresses two major blocking pr...
详细信息
This paper presents an event-driven framework for inter-user communication applications, such as Internet gaming or chatting, that require frequent communication among users. This paper addresses two major blocking problems for event-driven programming for inter-user communication applications, namely output blocking and request blocking. For the former, an output buffering mechanism is presented to solve this problem. For the latter, a service requesting mechanism with helper processes is presented to solve this problem. The above two mechanisms are incorporated into the framework presented in this paper to facilitate application development. In practice, this framework has been applied to online game development. (C) 2005 Elsevier B.V. All rights reserved.
Many concurrent programming languages provide selection statements, which allow a task to select one of several entries to service. The choice as to which entry will be selected, if more than one has pending invocatio...
详细信息
Many concurrent programming languages provide selection statements, which allow a task to select one of several entries to service. The choice as to which entry will be selected, if more than one has pending invocations, is generally defined to be non-deterministic. However, such non-deterministic inter-entry selection can result in undesirable program behavior. This paper examines the problems arising from such behavior and the existing approaches to remedy those problems. It indicates the inherent shortcomings of these approaches and purposes a new, more expressive extension of these approaches that remedies these shortcomings. This paper also considers how the different approaches can be implemented.
Several current and proposed experiments at the Fermi National Accelerator Laboratory, Batavia, IL, USA, have novel data acquisition needs. These include 1) continuous digitization, using commercial high-speed digitiz...
详细信息
Several current and proposed experiments at the Fermi National Accelerator Laboratory, Batavia, IL, USA, have novel data acquisition needs. These include 1) continuous digitization, using commercial high-speed digitizers, of signals from the detectors, 2) the transfer of all of the digitized waveform data to commercial off-the-shelf (COTS) processors, 3) the filtering or compression of the waveform data, or both, and 4) the writing of the resultant data to disk for later, more complete, analysis. To address these needs, members of the Accelerator and Detector Simulation and Support Department within the Scientific Computing Division at Fermilab are using parallel processing technologies in the development of artdaq, a generic data acquisition toolkit. The artdaq toolkit uses Message Passing Interface (MPI) and art, an established event-processing framework shared by new experiments at Fermilab. In an artdaq program, the digitized data are transferred into computing nodes using commodity Peripheral Component Interconnect Express (PCIe) cards, and event fragments are transferred between distributed processes using MPI and assembled into complete events. These events are then processed by a configurable selection of user-specified algorithms, commonly including filtering and compression algorithms, using the art event-processing framework. This paper describes the architecture and implementation of the first phase of the artdaq toolkit and shows early performance results with configurations that match upcoming experiments both at Fermilab and elsewhere.
One approach to testing concurrent programs, called reachability testing, generates synchronization sequences automatically and on-the-fly, without constructing any static models. In this paper, we present a general e...
详细信息
One approach to testing concurrent programs, called reachability testing, generates synchronization sequences automatically and on-the-fly, without constructing any static models. In this paper, we present a general execution model for concurrent programs that allows reachability testing to be applied to several commonly used synchronization constructs. We also present a new method for performing reachability testing. This new method guarantees that every partially ordered synchronization sequence will be exercised exactly once without having to save any sequences that have already been exercised. We describe a prototype reachability testing tool called Rich Test and report some empirical results, including a comparison between Rich Test and a partial order reduction-based tool called VeriSoft. Rich Test performed significantly better for the programs in our study.
Communication traces help developers of high-performance computing (HPC) applications understand and improve their codes. When run on large-scale HPC facilities, the scalability of tracing tools becomes a challenge. T...
详细信息
Communication traces help developers of high-performance computing (HPC) applications understand and improve their codes. When run on large-scale HPC facilities, the scalability of tracing tools becomes a challenge. To address this problem, traces can be clustered into groups of processes that exhibit similar behavior. Instead of collecting trace information of each individual node, it then suffices to collect a trace of a small set of representative nodes, namely one per cluster. However, clustering algorithms themselves need to have low overhead, be scalable, and adapt to application characteristics. We devised an adaptive clustering algorithm for large-scale applications called ACURDION that traces the MPI communication of code with O(log P) time complexity. First, ACURDION identifies the parameters that differ across processes by using a logarithmic algorithm called Adaptive Signature Building. Second, it clusters the processes based on those parameters. Experiments show that collecting traces of just nine nodes/clusters suffices to capture the communication behavior of all nodes for a wide set of HPC benchmarks codes while retaining sufficient accuracy of trace events and parameters. In summary, ACURDION improves trace scalability and automation over prior approaches. (C) 2017 Elsevier Inc. All rights reserved.
The transactional memory programming paradigm could become the coordination methodology of choice for actual and future multicore and many-core architectures. The transactional memory support spans a complete software...
详细信息
The transactional memory programming paradigm could become the coordination methodology of choice for actual and future multicore and many-core architectures. The transactional memory support spans a complete software and hardware stack, including programming language and hardware support, runtime and libraries, compilers, and application environments. The VELOX project has developed such a comprehensive transactional memory stack.
The main goal of this paper is to apply rewriting termination technology-enjoying a quite mature set of termination results and tools-to the problem of proving automatically the termination of concurrent systems under...
详细信息
The main goal of this paper is to apply rewriting termination technology-enjoying a quite mature set of termination results and tools-to the problem of proving automatically the termination of concurrent systems under fairness assumptions. We adopt the thesis that a concurrent system can be naturally modeled as a rewrite system, and develop a theoretical approach to systematically transform, under reasonable assumptions, fair-termination problems into ordinary termination problems of associated relations, to which standard rewriting termination techniques and tools can be applied. Our theoretical results are combined into a practical proof method for proving fair-termination that can be automated and can be supported by current termination tools. We illustrate this proof method with some concrete examples and briefly comment on future extensions. (c) 2008 Published by Elsevier Inc.
The temporal logic of actions (TLA) is a logic for specifying and reasoning about concurrent systems. Systems and their properties are represented in the same logic, so the assertion that a system meets its specificat...
详细信息
The temporal logic of actions (TLA) is a logic for specifying and reasoning about concurrent systems. Systems and their properties are represented in the same logic, so the assertion that a system meets its specification and the assertion that one system implements another are both expressed by logical implication. TLA is very simple;its syntax and complete formal semantics are summarized in about a page. Yet, TLA is not just a logician's toy;it is extremely powerful, both in principle and in practice. This report introduces TLA and describes how it is used to specify and verify concurrent algorithms. The use of TLA to specify and reason about open systems will be described elsewhere.
A functional language based on the FP-model is presented. The language combines occam processes and is used as a command level language for occam systems. It is well suited as a graphical language for concurrent progr...
详细信息
A functional language based on the FP-model is presented. The language combines occam processes and is used as a command level language for occam systems. It is well suited as a graphical language for concurrent programming. An algebra, based on the functional properties of the language, makes process-and communication structures accessible to (semi-) automatical transformations.
Cooperative applications are expected to become commonplace in the future. We are concerned hen with a special case of cooperation called indirect cooperation. The idea of the paper is that a Concurrency Control appro...
详细信息
Cooperative applications are expected to become commonplace in the future. We are concerned hen with a special case of cooperation called indirect cooperation. The idea of the paper is that a Concurrency Control approach better fits to indirect cooperation than a concurrent programming one. In other words, there do exist syntactic correctness criteria which define a large sphere of security in which application programmers are released from the burden of interaction explicit programming. This paper argues this point of view and describes such a criterion: the COO-serializability. It applies for a class of applications which cooperate indirectly. (C) 1998 Elsevier Science Inc. All rights reserved.
暂无评论