Task scheduling is an important aspect of parallel programming. Most of the heuristics for this NP-hard problem are based on a very simple system model of the target parallel system. Experiments revealed the inappropr...
详细信息
Task scheduling is an important aspect of parallel programming. Most of the heuristics for this NP-hard problem are based on a very simple system model of the target parallel system. Experiments revealed the inappropriateness of this classic model to obtain accurate and efficient schedules for real systems. In order to overcome this shortcoming, a new scheduling model was proposed that considers the contention for communication resources. Even though the accuracy and efficiency improved with the consideration of contention, the new contention model is still not good enough. The crucial aspect is the involvement of the processor in communication. This paper investigates the involvement of the processor in communication and its impact on task scheduling. A new system model is proposed based on the contention model that is aware of the processor involvement. The challenges for the scheduling techniques are analyzed and two scheduling algorithms are proposed. Experiments on real parallel systems show the significantly improved accuracy and efficiency of the new model and algorithms.
This paper defines a programming language for distributed processing called Joyce. Joyce is based on CSP and Pascal. A Joyce program defines concurrent agents which communicate through synchronous channels. The agents...
详细信息
This paper defines a programming language for distributed processing called Joyce. Joyce is based on CSP and Pascal. A Joyce program defines concurrent agents which communicate through synchronous channels. The agents may be recursive.
Difficult search and optimization problems, usually solved by metaheuristics, are very often implemented in concurrent and parallel environment, as many metaheuristics (e.g. population- or agent-based) are inherently ...
详细信息
Difficult search and optimization problems, usually solved by metaheuristics, are very often implemented in concurrent and parallel environment, as many metaheuristics (e.g. population- or agent-based) are inherently easy to parallelize. Therefore search for easy-to-use, robust and efficient frameworks dedicated for such computing methods, especially in the era of ubiquitous many and multi-core systems, is very desirable. Indeed, the development of multi-core architectures is incredibly fast and multicore CPUs can be found nowadays not only in supercomputers, but also in ordinary laptops or even phones. Efficient use of multicore architectures requires applying suitable languages and technologies, like Erlang. Its concurrency model, based on lightweight processes and asynchronous message-passing, seems very well suited for running massively concurrent code on many cores. Most of existing Erlang industrial applications are deployed on computers with up to 24 CPU cores, and there are hardly any reports on using Erlang on architectures exceeding 32 physical cores. In this paper we present our experiences with developing a concurrent Erlang-based computing platform, scaling computationally-intensive and memory-intensive applications up to 64 cores, using as examples global optimization and urban traffic planning problems. (C) 2016 Elsevier B.V. All rights reserved.
A universal construction is a general mechanism for obtaining a concurrent implementation of an object from its sequential code. We show that there is no universal construction that is both disjoint-access parallel (g...
详细信息
A universal construction is a general mechanism for obtaining a concurrent implementation of an object from its sequential code. We show that there is no universal construction that is both disjoint-access parallel (guaranteeing the processes operating on different parts of an implemented object do not interfere with one another) and wait-free (guaranteeing progress for each nonfaulty process when accessing an object). In contrast, we present a universal construction which results in disjoint-access parallel, wait-free implementations of any object provided there is a bound on the number of data items accessed by each operation supported by the object.
Atomicity is a correctness condition for concurrent systems. Informally, atomicity is the property that every concurrent execution of a set of transactions is equivalent to some serial execution of the same transactio...
详细信息
Atomicity is a correctness condition for concurrent systems. Informally, atomicity is the property that every concurrent execution of a set of transactions is equivalent to some serial execution of the same transactions. In multithreaded programs, executions of procedures ( or methods) can be regarded as transactions. Correctness in the presence of concurrency typically requires atomicity of these transactions. Tools that automatically detect atomicity violations can uncover subtle errors that are hard to find with traditional debugging and testing techniques. This paper describes two algorithms for runtime detection of atomicity violations and compares their cost and effectiveness. The reduction-based algorithm checks atomicity based on commutativity properties of events in a trace;the block-based algorithm efficiently represents the relevant information about a trace as a set of blocks (i.e., pairs of events plus associated synchronizations) and checks atomicity by comparing each block with other blocks. To improve the efficiency and accuracy of both algorithms, we incorporate a multilockset algorithm for checking data races, dynamic escape analysis, and happen-before analysis. Experiments show that both algorithms are effective in finding atomicity violations. The block-based algorithm is more accurate but more expensive than the reduction-based algorithm.
A new parallel normalized optimized approximate inverse algorithm, based on the concept of the "fish bone" computational approach satisfying an antidiagonal data dependency, for computing classes of explicit...
详细信息
A new parallel normalized optimized approximate inverse algorithm, based on the concept of the "fish bone" computational approach satisfying an antidiagonal data dependency, for computing classes of explicit approximate inverses, is introduced for symmetric multiprocessor systems. The parallel normalized explicit approximate inverses are used in conjunction with parallel normalized explicit preconditioned conjugate gradient square schemes, for the efficient solution of finite element sparse linear systems. The parallel design and implementation issues of the new proposed algorithms are discussed and the parallel performance is presented, using OpenMP. (c) 2007 Elsevier Inc. All rights reserved.
The Eden project is a 5-year experiment in designing, constructing, and using an ''integrated distributed'' computing system. The goal is to combine the benefits of integration and distribution by sup...
详细信息
The Eden project is a 5-year experiment in designing, constructing, and using an ''integrated distributed'' computing system. The goal is to combine the benefits of integration and distribution by supporting an object-based style of programming on top of a node machine/local network hardware base. The experimental hypothesis is that such an architecture will offer an environment conducive to building distributed applications. In evaluating the benefits (in terms of programmability) and the costs (in terms of necessary support) of the system architecture 3 years into the project, attention is focused on: 1. the concept, history, status, and context of the Eden system, 2. the way in which the task of supporting the Eden architecture is divided among the kernel, the programming language, and user-level (library) code, and 3. the experiences with paper designs and prototype implementations that led to this division of labor. It is shown how distributed applications make use of various aspects of the Eden architecture, and some preliminary evaluations are presented based on experiences to date.
The rely-guarantee technique allows one to reason compositionally about concurrent programs. To handle interference the technique makes use of rely and guarantee conditions, both of which are binary relations on state...
详细信息
The rely-guarantee technique allows one to reason compositionally about concurrent programs. To handle interference the technique makes use of rely and guarantee conditions, both of which are binary relations on states. A rely condition is an assumption that the environment performs only atomic steps satisfying the rely relation and a guarantee is a commitment that every atomic step the program makes satisfies the guarantee relation. In order to investigate rely-guarantee reasoning more generally, in this paper we allow interference to be represented by a process rather than a relation and hence derive more general rely-guarantee laws. The paper makes use of a weak conjunction operator between processes, which generalises a guarantee relation to a guarantee process, and introduces a rely quotient operator, which generalises a rely relation to a process. The paper focuses on the algebraic properties of the general rely-guarantee theory. The Jones-style rely-guarantee theory can be interpreted as a model of the general algebraic theory and hence the general laws presented here hold for that theory.
Dijkstra et al. (1978) have presented an algorithm for on-the-fly garbage collection. Ben-Ari (1984) presented a new algorithm that, though it is not much simpler, has a much simpler correctness proof. Each step in...
详细信息
Dijkstra et al. (1978) have presented an algorithm for on-the-fly garbage collection. Ben-Ari (1984) presented a new algorithm that, though it is not much simpler, has a much simpler correctness proof. Each step in verifying the invariants is almost trivial and could be checked mechanically. Since the proof found in Ben-Ari (1984) is less trivial than the introduction would lead one to suspect, another proof is designed. It is shown how both a parallel program and its invariant are derived from a sequential program and its invariant, and a short, simple proof of the invariance is presented. The reasoning with invariants more clearly captures the quintessence and more clearly exposes the ''beauty'' of the algorithm than does the original offering.
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.
暂无评论