Executing multithreaded programs efficiently
نویسنده
چکیده
This thesis presents the theory, design, and implementation of Cilk (pronounced “silk”) and Cilk-NOW. Cilk is a C-based language and portable runtime system for programming and executing multithreaded parallel programs. Cilk-NOW is an implementation of the Cilk runtime system that transparently manages resources for parallel programs running on a network of workstations. Cilk is built around a provably efficient algorithm for scheduling the execution of fully strict multithreaded computations. Based on the technique of work stealing, this algorithm achieves time, space, and communication bounds that are all within a small constant factor of optimal. Using these performance guarantees, Cilk provides a simple abstraction of performance that allows programmers to predict accurately how program changes will affect execution time. Cilk-NOW provides high-level resource management services so that Cilk programs can run efficiently on a network of workstations. These services include adaptive parallelism and fault tolerance. With adaptive parallelism, programs execute on a pool of workstations that dynamically grows and shrinks in response to both the availability of “idle” machines and the availability of parallelism within the program. Cilk-NOW also provides transparent fault tolerance with a fully distributed checkpointing mechanism.
منابع مشابه
The Effect of Executing Mispredicted Load Instructions in a Speculative Multithreaded Architecture
Concurrent multithreaded architectures exploit both instructionlevel and thread-level parallelism in application programs. A single-threaded sequencing mechanism needs speculative execution beyond conditional branches in order to exploit more instruction-level parallelism. In addition, an aggressive multithreaded architecture should also use thread-level control speculation in order to exploit ...
متن کاملAnalyzing Conflict Freedom For Multi-threaded Programs With Time AnnotationsThis work has been supported by a grant from the Airbus Corporate Foundation and complementary funding by Région Lorraine, and this grant has funded a post-doctoral contrat for Jingshu Chen.
Avoiding access conflicts is a major challenge in the design of multithreaded programs. In the context of real-time systems, the absence of conflicts can be guaranteed by ensuring that no two potentially conflicting accesses are ever scheduled concurrently. In this paper, we analyze programs that carry time annotations specifying the time for executing each statement. We propose a technique for...
متن کاملThreads on the Cheap: Multithreaded Execution in a WaveCache Processor
Executing multiple threads on a single processor will play a key role the future scaling of computer performance, and while many new architectures propose novel uses for threads, few address the complexity required to support multiple threads in a single processor core. This paper describes extensions to WaveScalar, a recently proposed dataflow instruction set, and the WaveCache, a WaveScalar p...
متن کاملThe Case for Region Serializability
It is difficult to write correct multithreaded code. This difficulty is compounded by the weak memory model [1] provided to multithreaded applications running on commodity multicore hardware, where there is not an easily understood semantics for applications containing data races. For example, the DRF0 memory model only guarantees sequential consistency to data-race free programs [2], and while...
متن کاملProgram Execution on Reconfigurable Multicore Architectures
Based on the two observations that diverse applications perform better on different multicore architectures, and that different phases of an application may have vastly different resource requirements, Pal et al. proposed a novel reconfigurable hardware approach for executing multithreaded programs. Instead of mapping a concurrent program to a fixed architecture, the architecture adaptively rec...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 1995