9,928 research outputs found

    A compiler approach to scalable concurrent program design

    Get PDF
    The programmer's most powerful tool for controlling complexity in program design is abstraction. We seek to use abstraction in the design of concurrent programs, so as to separate design decisions concerned with decomposition, communication, synchronization, mapping, granularity, and load balancing. This paper describes programming and compiler techniques intended to facilitate this design strategy. The programming techniques are based on a core programming notation with two important properties: the ability to separate concurrent programming concerns, and extensibility with reusable programmer-defined abstractions. The compiler techniques are based on a simple transformation system together with a set of compilation transformations and portable run-time support. The transformation system allows programmer-defined abstractions to be defined as source-to-source transformations that convert abstractions into the core notation. The same transformation system is used to apply compilation transformations that incrementally transform the core notation toward an abstract concurrent machine. This machine can be implemented on a variety of concurrent architectures using simple run-time support. The transformation, compilation, and run-time system techniques have been implemented and are incorporated in a public-domain program development toolkit. This toolkit operates on a wide variety of networked workstations, multicomputers, and shared-memory multiprocessors. It includes a program transformer, concurrent compiler, syntax checker, debugger, performance analyzer, and execution animator. A variety of substantial applications have been developed using the toolkit, in areas such as climate modeling and fluid dynamics

    Simplifying proofs of linearisability using layers of abstraction

    Get PDF
    Linearisability has become the standard correctness criterion for concurrent data structures, ensuring that every history of invocations and responses of concurrent operations has a matching sequential history. Existing proofs of linearisability require one to identify so-called linearisation points within the operations under consideration, which are atomic statements whose execution causes the effect of an operation to be felt. However, identification of linearisation points is a non-trivial task, requiring a high degree of expertise. For sophisticated algorithms such as Heller et al's lazy set, it even is possible for an operation to be linearised by the concurrent execution of a statement outside the operation being verified. This paper proposes an alternative method for verifying linearisability that does not require identification of linearisation points. Instead, using an interval-based logic, we show that every behaviour of each concrete operation over any interval is a possible behaviour of a corresponding abstraction that executes with coarse-grained atomicity. This approach is applied to Heller et al's lazy set to show that verification of linearisability is possible without having to consider linearisation points within the program code

    Local stability in a transient Markov chain

    Full text link
    We prove two propositions with conditions that a system, which is described by a transient Markov chain, will display local stability. Examples of such systems include partly overloaded Jackson networks, partly overloaded polling systems, and overloaded multi-server queues with skill based service, under first come first served policy.Comment: 6 page

    Measuring Economic Insecurity

    Get PDF
    We provide a systematic treatment of the notion of economic insecurity, assuming that an individual’s sentiment of insecurity depends on the current wealth level and its variations experienced in the past. We think of wealth as a comprehensive variable encompassing anything that may help in coping with adverse occurrences. The current wealth level could also be interpreted as incorporating the individual’s evaluation of future prospects. Variations in wealth experienced in the recent past are given higher weight than experiences that occurred in the more distant past. Two classes of measures are characterized with sets of plausible and intuitive axioms.Insecurity, Wealth Distribution, Social Index Numbers

    On the Measurement of Poverty Dynamics

    Get PDF
    This paper introduces a family of multi-period poverty measures derived from commonly used static poverty measures. Our measures trade-off poverty levels and changes (gains and losses) over time, and are consistent with loss aversion. We characterize the partial ranking over income dynamics induced by these measures and use it in two empirical applications with longitudinal household level data. Comparing two decades of income dynamics in the United States we find that the income dynamics of the 1990s -post Welfare reform- dominates the income dynamics of the 1980s -pre Welfare reform. Next, we compare the contemporary income dynamics of three industrialized countries and conclude that United Kingdom dominates Germany and United States, and Germany dominates the United States if poverty stocks are given more importance than poverty flows. The differences between our ranking and those obtained using other welfare criteria such as social mobility suggest that our measures capture critical information about the evolution of poverty.
    corecore