13,926 research outputs found

    Efficiently Implementing a Large Number of LL/SC Objects

    Get PDF
    Over the past decade, a pair of instructions called load-linked (LL) and store-conditional (SC) have emerged as the most suitable synchronization instructions for the design of lock-free algorithms. However, current architectures do not support these instructions; instead, they support either CAS (e.g., UltraSPARC, Itanium) or restricted versions of LL/SC (e.g., POWER4, MIPS, Alpha). Thus, there is a gap between what algorithm designers want (namely, LL/SC) and what multiprocessors actually support (namely, CAS or RLL/RSC). To bridge this gap, a flurry of algorithms that implement LL/SC from CAS have appeared in the literature. The two most recent algorithms are due to Doherty, Herlihy, Luchangco, and Moir (2004) and Michael (2004). To implement M LL/SC objects shared by N processes, Doherty et al.\u27s algorithm uses only O(N + M) space, but is only non-blocking and not wait-free. Michael\u27s algorithm, on the other hand, is wait-free, but uses O(N^2 + M) space. The main drawback of his algorithm is the time complexity of the SC operation: although the expected amortized running time of SC is only O(1), the worst-case running time of SC is O(N^2). The algorithm in this paper overcomes this drawback. Specifically, we design a wait-free algorithm that achieves a space complexity of O(N^2 + M), while still maintaining the O(1) worst-case running time for LL and SC operations

    Lock-free Concurrent Data Structures

    Full text link
    Concurrent data structures are the data sharing side of parallel programming. Data structures give the means to the program to store data, but also provide operations to the program to access and manipulate these data. These operations are implemented through algorithms that have to be efficient. In the sequential setting, data structures are crucially important for the performance of the respective computation. In the parallel programming setting, their importance becomes more crucial because of the increased use of data and resource sharing for utilizing parallelism. The first and main goal of this chapter is to provide a sufficient background and intuition to help the interested reader to navigate in the complex research area of lock-free data structures. The second goal is to offer the programmer familiarity to the subject that will allow her to use truly concurrent methods.Comment: To appear in "Programming Multi-core and Many-core Computing Systems", eds. S. Pllana and F. Xhafa, Wiley Series on Parallel and Distributed Computin

    LL/SC and Atomic Copy: Constant Time, Space Efficient Implementations Using Only Pointer-Width CAS

    Get PDF
    When designing concurrent algorithms, Load-Link/Store-Conditional (LL/SC) is often the ideal primitive to have because unlike Compare and Swap (CAS), LL/SC is immune to the ABA problem. However, the full semantics of LL/SC are not supported by any modern machine, so there has been a significant amount of work on simulations of LL/SC using Compare and Swap (CAS), a synchronization primitive that enjoys widespread hardware support. All of the algorithms so far that are constant time either use unbounded sequence numbers (and thus base objects of unbounded size), or require Ω(MP)\Omega(MP) space for MM LL/SC object (where PP is the number of processes). We present a constant time implementation of MM LL/SC objects using Θ(M+kP2)\Theta(M+kP^2) space, where kk is the maximum number of overlapping LL/SC operations per process (usually a constant), and requiring only pointer-sized CAS objects. Our implementation can also be used to implement LL-word LL/SCLL/SC objects in Θ(L)\Theta(L) time (for both LLLL and SCSC) and Θ((M+kP2)L)\Theta((M+kP^2)L) space. To achieve these bounds, we begin by implementing a new primitive called Single-Writer Copy which takes a pointer to a word sized memory location and atomically copies its contents into another object. The restriction is that only one process is allowed to write/copy into the destination object at a time. We believe this primitive will be very useful in designing other concurrent algorithms as well

    Path-tracing Monte Carlo Library for 3D Radiative Transfer in Highly Resolved Cloudy Atmospheres

    Full text link
    Interactions between clouds and radiation are at the root of many difficulties in numerically predicting future weather and climate and in retrieving the state of the atmosphere from remote sensing observations. The large range of issues related to these interactions, and in particular to three-dimensional interactions, motivated the development of accurate radiative tools able to compute all types of radiative metrics, from monochromatic, local and directional observables, to integrated energetic quantities. In the continuity of this community effort, we propose here an open-source library for general use in Monte Carlo algorithms. This library is devoted to the acceleration of path-tracing in complex data, typically high-resolution large-domain grounds and clouds. The main algorithmic advances embedded in the library are those related to the construction and traversal of hierarchical grids accelerating the tracing of paths through heterogeneous fields in null-collision (maximum cross-section) algorithms. We show that with these hierarchical grids, the computing time is only weakly sensitivive to the refinement of the volumetric data. The library is tested with a rendering algorithm that produces synthetic images of cloud radiances. Two other examples are given as illustrations, that are respectively used to analyse the transmission of solar radiation under a cloud together with its sensitivity to an optical parameter, and to assess a parametrization of 3D radiative effects of clouds.Comment: Submitted to JAMES, revised and submitted again (this is v2

    DeepMatching: Hierarchical Deformable Dense Matching

    Get PDF
    We introduce a novel matching algorithm, called DeepMatching, to compute dense correspondences between images. DeepMatching relies on a hierarchical, multi-layer, correlational architecture designed for matching images and was inspired by deep convolutional approaches. The proposed matching algorithm can handle non-rigid deformations and repetitive textures and efficiently determines dense correspondences in the presence of significant changes between images. We evaluate the performance of DeepMatching, in comparison with state-of-the-art matching algorithms, on the Mikolajczyk (Mikolajczyk et al 2005), the MPI-Sintel (Butler et al 2012) and the Kitti (Geiger et al 2013) datasets. DeepMatching outperforms the state-of-the-art algorithms and shows excellent results in particular for repetitive textures.We also propose a method for estimating optical flow, called DeepFlow, by integrating DeepMatching in the large displacement optical flow (LDOF) approach of Brox and Malik (2011). Compared to existing matching algorithms, additional robustness to large displacements and complex motion is obtained thanks to our matching approach. DeepFlow obtains competitive performance on public benchmarks for optical flow estimation

    Efficient and Practical Constructions of LL/SC Variables

    Get PDF
    Over the past decade, LL/SC have emerged as the most suitable synchronization instructions for the design of lock-free algorithms. However, current architectures do not support these instructions; instead, they support either CAS or RLL/RSC (e.g. POWER4, MIPS, SPARC, IA-64). To bridge this gap, this paper presents two efficient wait-free algorithms for implementing 64-bit LL/SC objects from 64-bit CAS or RLL/RSC objects. Our first algorithm is practical: it has a small, constant time complexity (of 4 for LL and 5 for SC) and a space overhead of only 4 words per process. This algorithm uses unbounded sequence numbers. For theoretical interest, we also present a more complex bounded algorithm that still guarantees constant time complexity and O(1) space overhead per process. The LL/SC primitive is free of the well-known ABA problem that afflicts CAS. By efficiently implementing LL/SC words from CAS words, this work presents an efficient general solution to the ABA problem

    Teaching Construction in the Virtual University: the WINDS project

    No full text
    This paper introduces some of the Information Technology solutions adopted in Web based INtelligent Design Support (WINDS) to support education in A/E/C design. The WINDS project WINDS is an EC-funded project in the 5th Framework, Information Society Technologies programme, Flexible University key action. WINDS is divided into two actions: ·The research technology action is going to implement a learning environment integrating an intelligent tutoring system, a computer instruction management system and a set of co-operative supporting tools. ·The development action is going to build a large knowledge base supporting Architecture and Civil Engineering Design Courses and to experiment a comprehensive Virtual School of Architecture and Engineering Design. During the third year of the project, more than 400 students all over Europe will attend the Virtual School. During the next three years the WINDS project will span a total effort of about 150 man-years from 28 partners of 10 European countries. The missions of the WINDS project are: Advanced Methodologies in Design Education. WINDS drives a breakdown with conventional models in design education, i.e. classroom or distance education. WINDS implements a problem oriented knowledge transfer methodology following Roger Schank's Goal Based Scenario (GBS) pedagogical methodology. GBS encourages the learning of both skills and cases, and fosters creative problem solving. Multidisciplinary Design Education. Design requires creative synthesis and open-end problem definition at the intersection of several disciplines. WINDS experiments a valuable integration of multidisciplinary design knowledge and expertise to produce a high level standard of education. Innovative Representation, Delivery and Access to Construction Education. WINDS delivers individual education customisation by allowing the learner access through the Internet to a wide range of on-line courses and structured learning objects by means of personally tailored learning strategies. WINDS promotes the 3W paradigm: learn What you need, Where you want, When you require. Construction Practice. Construction industry is a repository of ""best practices"" and knowledge that the WINDS will profit. WINDS system benefits the ISO10303 and IFC standards to acquire knowledge of the construction process directly in digital format. On the other hand, WINDS reengineers the knowledge in up-to-date courses, educational services, which the industries can use to provide just-in-time rather than in-advance learning. WINDS IT Solutions The missions of the WINDS project state many challenging requirements both in knowledge and system architecture. Many of the solutions adopted in these fields are innovative; others are evolution of existing technologies. This paper focuses on the integration of this set of state-of-the-art technologies in an advanced and functionally sound Computer Aided Instruction system for A/E/C Design. In particular the paper deals with the following aspects: Standard Learning Technology Architecture The WINDS system relies on the in progress IEEE 1484.1 Learning Technology Standard Architecture. According to this standard the system consists of two data stores, the Knowledge Library and the Record Database, and four process: System Coach, Delivery, Evaluation and the Learner. WINDS implements the Knowledge Library into a three-tier architecture: 1.Learning Objects: ·Learning Units are collections of text and multimedia data. ·Models are represented in either IFC or STEP formats. ·Cases are sets of Learning Units and Models. Cases are noteworthy stories, which describes solutions, integrate technical detail, contain relevant design failures etc. 2.Indexes refer to the process in which the identification of relevant topics in design cases and learning units takes place. Indexing process creates structures of Learning Objects for course management, profile planning procedures and reasoning processes. 3.Courses are taxonomies of either Learning Units or a design task and Course Units. Knowledge Representation WINDS demonstrates that it is possible and valuable to integrate a widespread design expertise so that it can be effectively used to produce a high level standard of education. To this aim WINDS gathers area knowledge, design skills and expertise under the umbrellas of common knowledge representation structures and unambiguous semantics. Cases are one of the most valuable means for the representation of design expertise. A Case is a set of Learning Units and Product Models. Cases are noteworthy stories, which describe solutions, integrate technical details, contain relevant design failures, etc. Knowledge Integration Indexes are a medium among different kind of knowledge: they implement networks for navigation and access to disparate documents: HTML, video, images, CAD and product models (STEP or IFC). Concept indexes link learning topics to learning objects and group them into competencies. Index relationships are the base of the WINDS reasoning processes, and provide the foundation for system coaching functions, which proactively suggest strategies, solutions, examples and avoids students' design deadlock. Knowledge Distribution To support the data stores and the process among the partners in 10 countries efficiently, WINDS implements an object oriented client/server as COM objects. Behind the DCOM components there is the Dynamic Kernel, which dynamically embodies and maintains data stores and process. Components of the Knowledge Library can reside on several servers across the Internet. This provides for distributed transactions, e.g. a change in one Learning Object affects the Knowledge Library spread across several servers in different countries. Learning objects implemented as COM objects can wrap ownership data. Clear and univocal definition of ownerships rights enables Universities, in collaboration with telecommunication and publisher companies, to act as "education brokers". Brokerage in education and training is an innovative paradigm to provide just-in-time and personally customised value added learning knowledg
    corecore