| M. Frigo, C. Leiserson, and K. Randall. The implementation of the Cilk-5 multithreaded language. In Proceedings of the Conference on Programming Language Design and Implementation, pp. 212--223, 1998. |
....clients. For parallel applications, operating systems provide system calls for the creation and synchronization of multiple threads, and they provide high level multithreaded programming support with parallelizing compilers and threads libraries. In addition, programming languages, such as Cilk [7, 21] and Java [3] support multithreading with linguistic abstractions. A major factor in the performance of such multithreaded parallel applications is the operation of the thread scheduler. Prior work on thread scheduling [4, 5, 8, 13, 14] has dealt exclusively with non multiprogrammed environments ....
....it pushes the child thread on the bottom of its deque and continues executing the root thread at x 3 , or it pushes the root thread on the bottom of its deque and starts executing the child thread at x 4 . The bounds proven in this paper hold for either choice. The latter choice is often used [21, 22, 31], because it follows the natural depth first single processor execution order. It is possible that a thread may enable another thread and die simultaneously. An example is the join between the root thread and the child thread in Figure 1. If the root thread is blocked at x 10 , then when a ....
Matteo Frigo, Charles E. Leiserson, and Keith H. Randall. The implementation of the Cilk-5 multithreaded language. In Proceedings of the 1998.
....2 shows how tasks are fused in the program. Captions for the subfigures in Fig. 2 are given below. Although each thread has its own stack in Fig. 2, this is not essential. Our implementation scheme can also be applied to systems in which di#erent threads reside in the same stack (e.g. Cilk [6], StackThreads MP [19] and Schematic [14, 15, 17] fa (x) fa (y) thread X 2 fa (x) fa (y) thread Y thread Z S T T S 4 thread Y thread X S z T 5 fa(x y) thread X thread Y 6 z y S thread X T z thread Y Fig. 2. How two method invocations are fused. 1. Thread Z is executing ....
Matteo Frigo, Charles E. Leiserson, and Keith H. Randall. The Implementation of the Cilk-5 Multithreaded Language. In Proceedings of the ACM SIGPLAN 1998 Conference on Programming Language Design and Implementation (PLDI '98), pages 212--223, 1998.
....2 shows how tasks are fused in the program. Captions for the subfigures in Fig. 2 are given below. Although each thread has its own stack in Fig. 2, this is not essential. Our implementation scheme can also be applied to systems in which di#erent threads reside in the same stack (e.g. Cilk [6], StackThreads MP [19] and Schematic [14, 15, 17] fa (x) fa (y) thread X 2 fa (x) fa (y) thread Y thread Z ST TS 4 thread Y thread X S z T 5 fa(x y) thread X thread Y 6 z y S thread X T z thread Y Fig. 2. How two method invocations are fused. 1. Thread Z is executing ....
Matteo Frigo, Charles E. Leiserson, and Keith H. Randall. The Implementation of the Cilk-5 Multithreaded Language. In Proceedings of the ACM SIGPLAN 1998 Conference on Programming Language Design and Implementation (PLDI '98), pages 212--223, 1998.
....the code, that certain function calls can run concurrently with the caller. That is, the parallel implementation is based entirely on recursive calls that can be performed in parallel, and not on loop partitioning, explicit multithreading, or message passing. The parallel implementation uses Cilk [21, 39], a programming environment that supports a fairly minimal parallel extension of the C programming language and a specialized run time system. One of the most important aspects of using Cilk is the fact that it performs dynamic scheduling that leads to both load balancing and locality of ....
M. Frigo, C. E. Leiserson, and K. H. Randall. The implementation of the Cilk-5 multithreaded language. ACM SIGPLAN Notices, 33(5):212--223, 1998.
....and the result with an Instruction and achieves almost the same speedup. 9.4.5 Checkers Checkers is an implementation of the two player game of checkers played using alphabeta search. This implementation is a straightforward Java conversion of a C version from MIT s CILK distribution (see [16]) with CILK s spawn, sync and abort statements replaced by a multithreaded scheme with a job queue of spawned explicit invocationrecord objects. Object combining opportunities stem from combining the board s data (a one dimensional integer array marking the positions of the pieces) into the board ....
M. Frigo, C.E. Leiserson, and K.H. Randall. The implementation of the cilk-5 multithreaded language. In Proceedings of the ACM SIGPLAN '98 Conference on Programming Language Design and Implementation (PLDI), pages 212--223, Montreal, Quebec, Canada, 1998. ACM Press.
.... between instructions (the computation) from the way that instructions are mapped to the processors (the schedule) 8] One example of a computation centric memory model is the Dag Consistency or Location Consistency model[8, 4, 3] that was developed for Cilk like multithreaded computations[6, 7, 10, 14]. Cilk uses a randomized work stealing scheduler and achieves performance close to the lower bounds of fully strict multithreaded algorithms without using user level shared memory. In a fully strict multithreaded algorithms a thread may only synchronize with its children. In Cilk, a multithreaded ....
M. Frigo, K. H. Randall, and C. E. Leiserson. The implementation of the Cilk-5 multithreaded language. In Proceedings of the ACM SIGPLAN '98 Conference on Programming Language Design and Implementation (PLDI), Montreal, Canada, June 1998.
....evaluation of all cases on several platforms. Finally, in Section 7, we summarize our conclusions and present our future work. 2 RELATED WORK Only a few runtime systems implement an efficient and portable two level threads model for multiprocessors. The latest version of the Cilk runtime system [6] is intended to run on Unix like systems that support POSIX threads. As a programming language, Cilk does not use explicitly user level threads but Cilk frames, which are generated by its cilk2c compiler. IBM s State threads [7] is a very portable user level threads package based on the ....
....of memory allocation is avoided. This is an optimization possibly used internally by the two level threads library. The minimal overhead for creating and executing a single nanothread cached descriptor is just a few cycles. 6. 2 Applications Table 6 presents the execution time of Fibonnaci [6]. This application corresponds to the divide and conquer programming paradigm and requires the creation of a large number of nanothreads that remain active (blocked) There is no single level parallelism and consequently work descriptors cannot be used. Since, this program generates a tree of ....
M. Frigo, K. H. Randall, and C. E. Leiserson. The implementation of the Cilk-5 multithreaded language, In Proceedings of the ACM SIGPLAN '98 Conference on Programming Language Design and Implementation (PLDI), Montreal, Canada, June 1998.
....system (the subject of our research) Many other natural language parsers will not be able to benefit from this approach either. 6] Our approach provides a solution in case fine grained parallelism is required. On the scheduling side, our approach shows close resemblance to the Cilk 5 system. [16] It implements work stealing using similar techniques and also minimizes overhead according to principle of moving as much of the overhead as possible from the workers to the thieves. An important di#erence, though, is that our scheduler was designed with tabulation algorithms in mind (cf. ....
....incurs no extra overhead. The stealing stack also functions to let thieves perform the cheapest stealing operations possible. Synchronization between worker and thief has been optimized to move as much of the overhead as possible to the thief by using a Dijkstra like mutual exclusion protocol. [18, 16] The protocol is illustrated in figure 3. As long as no stealing is taking place, workers will not have to resort to an expensive lock. In addition, a worker will only need to lock if a thief is stealing at the same or higher stealing level (as defined by the stack) This prevents, for example, a ....
Matteo Frigo, Charles E. Leiserson, and Keigh H. Randall. The implementation of the Cilk-5 multithreaded language. ACM SIGPLAN Notices, 33(5):212--223, May 1998.
....implementations for Awari and Amazons. This does not include the time to tune the performance, for example, setting the best granularity for the target environment. There are several ways that games programmers may parallelize their sequential algorithms with a minimal amount of e ort. Cilk [17] is an extension of the C language, with some primitives to support parallelism. Given a sequential algorithm, Cilk is a choice for implementing synchronous parallel algorithms, such as YBWC. However, we note that the runtime system of Cilk is based on the work stealing framework, which ....
M. Frigo, C. E. Leiserson, and K. H. Randall. The Implementation of the Cilk-5 Multithreaded Language. In ACM SIGPLAN Conferences on Programming Language Design and Implementation (PLDI'98), pages 212{ 223, 1998.
No context found.
M. Frigo, C. E. Leiserson, and K. H. Randall. The implementation of the Cilk-5 multithreaded language. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 212--223, 1998.
....the Cilk language, illustrating how Cilk supports the programming of parallel game tree search and other chess mechanisms. 1 Introduction The Supercomputing Technologies (Supertech) Research Group in the MIT Laboratory for Computer Science began developing the Cilk multithreaded language [5, 8, 22, 27] in 1994. Development of Cilk has been intertwined with the development of a series of computer chess programs: StarTech, Socrates, and Cilkchess. Although the development of Cilk itself has been funded by the U.S. Defense Advanced Research Projects Agency (DARPA) all of our chess programs have ....
Matteo Frigo, Charles E. Leiserson, and Keith H. Randall. The implementation of the Cilk-5 multithreaded language. In ACM SIGPLAN '98 Conference on Programming Language Design and Implementation (PLDI), pages 212-223, Montreal, Canada, June 1998.
....can be written to use many concurrent execution streams and not su#er when running on a machine with fewer processors. Cilk has the further advantage of guaranteeing e#cient and predictable performance, despite running on such a variety of parallel platforms. Cilk is more fully described in [FLR98] and [Ran98] Despite Cilk s goal of simplifying parallel software development, it lacks a parallel file I O framework. Cilk programs must use the standard POSIX file I O library, and 12 they must explicitly arrange any necessary serialization or multiplexing. A programmer who wants to use ....
....serial append. A complete reference of Cheerio entry points follows, along with a list of caveats, and a discussion about porting applications to Cheerio. Chapter 3 presents the rationale for Cheerio s design decisions. It presents the crucial idea of a faithful extension, first introduced in [FLR98] along with four criteria for designing Cheerio: similar to POSIX when appropriate, high performance, hardware and platform independent, and minimal but complete. Chapter 3 also presents two other parallel APIs, compares them to Cheerio, and demonstrates why Cheerio is a better API in certain ....
[Article contains additional citation context not shown here]
Matteo Frigo, Charles E. Leiserson, and Keith H. Randall. The implementation of the Cilk-5 multithreaded language. In ACM SIGPLAN 70 '98 Conference on Programming Language Design and Implementation (PLDI), pages 212--223, Montreal, Canada, June 1998.
No context found.
M. Frigo, C. Leiserson, and K. Randall. The implementation of the Cilk-5 multithreaded language. In Proceedings of the Conference on Programming Language Design and Implementation, pp. 212--223, 1998.
No context found.
Matteo Frigo, Charles E. Leiserson, and Keith H. Randall. The implementation of the Cilk-5 multithreaded language. In Proceedings of the ACM SIGPLAN '98 Conference on Programming Language Design and Implementation, pages 212-223, 1998.
No context found.
M. Frigo, C. E. Leiserson, and K. H. Randall. The implementation of the Cilk-5 multithreaded language. In ACM PLDI, 1998.
No context found.
Matteo Frigo, Charles E. Leiserson, and Keith H. Randall. The implementation of the Cilk-5 multithreaded language. In PLDI, pages 212--223, 1998.
No context found.
M. Frigo, C. Leiserson, and K. Randall. The implementation of the Cilk-5 multithreaded language. In Proceedings of the SIGPLAN '98 Conference on Program Language Design and Implementation, Montreal, Canada, June 1998.
No context found.
M. Frigo, C. Leiserson, and K. Randall. The implementation of the Cilk-5 multithreaded language. In Proceedings of the SIGPLAN '98 Conference on Program Language Design and Implementation, Montreal, Canada, June 1998.
No context found.
Matteo Frigo, Charles E. Leiserson, and Keith H. Randall. The implementation of the Cilk-5 multithreaded language. In Proceedings of the ACM SIGPLAN '98 Conference on Programming Language Design and Implementation, pages 212--223, 1998.
No context found.
Matteo Frigo, Charles Leiserson, and Keith Randall. The Implementation of the Cilk-5 Multithreaded Language. Proceedings of the 1998 ACM SIGPLAN Conference on Programming Language Design and Implementation, 1998.
No context found.
M. Frigo, C. Leiserson, and K. Randall. The implementation of the Cilk-5 multithreaded language. In Language Design and Implementation, Montreal, Canada, June 1998.
No context found.
M. Frigo, C.E. Leiserson, and K.H. Randall. The implementation of the Cilk-5 multithreaded language. ACM SIGPLAN Notices, 33(5):212--223, May 1998.
No context found.
M. Frigo, C. E. Leiserson, and K. H. Randall. The implementation of the Cilk-5 multithreaded language. In ACM Conference on Programming Languages Design and Implementation (PLDI'98), volume 33, pages 212--223, Atlanta, May 1998. ACM.
No context found.
M. Frigo, C. Leiserson, and K. Randall. The implementation of the Cilk-5 multithreaded language. In Proceedings of the SIGPLAN '98 Conference on Program Language Design and Implementation, Montreal, Canada, June 1998.
No context found.
M. Frigo, C. E. Leiserson, and K. H. Randall. The implementation of the Cilk-5 multithreaded language. ACM SIGPLAN Notices, 33(5):212--223, 1998.
First 50 documents Next 50
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC