Bradley C. Kuszmaul chess programs (StarTech and *Socrates.) I participated at MIT in the cilk developmentproject, which provides an algorithmic multithreaded programming system. http://bradley.lcs.mit.edu/~bradley/
Extractions: I am a Research Scientist at in the Supercomputing Technologies Group at the MIT Laboratory for Computer Science. Before that I was Akamai Technologies . I am also affiliated with the the Computer Architecture and Engineering Group at the Yale University Department of Computer Science and the Yale University Department of Electrical Engineering (Note: Many of the following links are not yet working, as I have not transfered them all form Yale yet.) My research applies algorithm design to solve systems problems in high-performance computing. I was one of the principal architects of the Connection Machine CM-5, and am the co-author of two world-class computer chess programs (StarTech and *Socrates .) I participated at MIT in the Cilk development project, which provides an algorithmic multithreaded programming system. As an assistant professor at Yale I worked on the Ultrascalar Project , in which we improved the theoretical bounds for how fast a superscalar processor's clock can run, as a function of the window size or the issue width. We also had an 8-issue out-of-order processor fabricated in a 0.18 micron copper/low-K VLSI process. Recently we have been working on developing the mechanisms for a speculative dataflow processor. I am co-teaching Theory of Parallel Hardware in Spring 2004.
ICFP Functional Programming Contest -- The Winners We have no hesitation in recommending cilk as the programming language of choicefor discriminating hackers, especially if your application needs support for http://www.ai.mit.edu/extra/icfp-contest/winners.html
Extractions: Reid Barton Chris Joerg Dan Adkins Martin Rinard Harald Prokop Don Dailey Matteo Frigo Charles Leiserson The judges felt the Cilk team made such a strong showing for several reasons: Expertise: The Cilk project has a lot of experience in game tournaments, having competed strongly in chess tournaments before. Parallelism: Cilk is a language designed for parallelism, and was able to exploit the tournament machine's four processors quite efficiently. The Cilk entry was the only entry that employed a really sophisticated parallel search algorithm. What the Cilk Pousse team delivered was a brutal search engine, that pumped out immense numbers of moves per second, similar to the strategies that produce championship chess programs. Organisation: At eight people, the Cilk Pousse team was the largest single team to enter, being comprised of two professors, one research engineer, one sysadmin, and four students (some graduate, some undergraduate, and even one local high-school student). ...and of course, general excellence and superior hacking.
I Am Pleased To Announce The Availability Of Cilk-5.3.2. Cilk Is A I am pleased to announce the availability of cilk5.3.2. cilk is a language for multithreadedparallel programming based on ANSI C. cilk is designed for general http://cvs.sourceforge.net/viewcvs.py/cilk/cilk/ANNOUNCE?rev=1.3
I Am Pleased To Announce The Availability Of Cilk-5.3.1. Cilk Is A I am pleased to announce the availability of cilk5.3.1. cilk is a language for multithreadedparallel programming based on ANSI C. cilk is designed for general http://cvs.sourceforge.net/viewcvs.py/cilk/cilk/ANNOUNCE?rev=1.2
From Mharder@lcs.mit.edu Sun Oct 21 025138 2001 Date Sun, 21 paper describes a tool, called the Nondeterminator, for dynamically detecting determinacyraces in programs written in the cilk parallel programming language. http://pag.lcs.mit.edu/6.893/critiques/20011022
Cilk Papers Notice that if you elide the three cilk keywords (shown in red, you obtainaC program, called the serial elision or C elision of the cilk program. http://supertech.lcs.mit.edu/cilk/home/intro.html
Extractions: The Cilk Project Download Introduction Online Manual ... Papers Cilk is an algorithmic multithreaded language. The philosophy behind Cilk is that a programmer should concentrate on structuring the program to expose parallelism and exploit locality, leaving Cilk's runtime system with the responsibility of scheduling the computation to run efficiently on a given platform. Thus, the Cilk runtime system takes care of details like load balancing, paging, and communication protocols. Unlike other multithreaded languages, however, Cilk is algorithmic in that the runtime system guarantees efficient and predictable performance. To give you an idea of how simple it is to write parallel programs in Cilk, here is a Cilk implementation of the familiar recursive Fibonacci program in which the recursive calls are executed in parallel: cilk spawn fib (n-1); y = spawn fib (n-2); sync Notice that if you elide the three Cilk keywords (shown in red , you obtain a C program, called the serial elision or C elision of the Cilk program. Cilk is a
Keith Randall The cilk compiler and runtime system cooperate to automatically schedulea cilk program efficiently on a parallel machine. cilk s http://www.cs.ucsb.edu/research/colloquia/abstracts/randall98.shtml
Extractions: MIT Multiprocessor shared-memory machines (SMP's) are rapidly becoming commodity items in the computer industry. Despite the prevalence of such machines, exploiting their computing power remains difficult because programming environments are cumbersome or inefficient. A language called Cilk is proposed to overcome these difficulties. Cilk is a language that is convenient to program and provides good performance on these machines. Cilk is a simple extension to C which provides constructs for easily expressing parallelism in a computation. The Cilk compiler and runtime system cooperate to automatically schedule a Cilk program efficiently on a parallel machine. Cilk's scheduler obtains good speedup on applications with sufficient parallelism and imposes little overhead relative to the equivalent serial program. I will describe our implementation of Cilk on SMP's, and outline the principles and mechanisms used to achieve the above results.
Tasks As Objects cilk !Blumofe95! is a Cbased multithreaded parallel programmingsystem. A cilk programs is composed of threads, which the run http://charm.cs.uiuc.edu/papers/RobertThesis.www/node14.html
Extractions: Next: Data as Objects Up: Related Work Previous: Process Scheduling and Migration Contents Several distributed multi-threaded systems allow objects or threads representing tasks to migrate to different address spaces of a distributed-memory machine. Although not all of these systems are based on traditional object-oriented languages such as C++, the tasks in these systems are related to objects in that they have private state ( e.g. a thread stack) and code. UPVM [#!Konuru:1997:MUL!#] presents a lightweight process model with a PVM-like message-passing library, which supports thread migration independent of an object-oriented framework. PM2 [#!PM2-96!#] is another migratable-thread system, which treats threads as remote procedure calls, that return some data on completion. These systems simplify the migration of threads by reserving thread stack space in the virtual memory space of every processor, so that pointers to stack items remain valid after migration. An early object-based parallel programming system is Sloop [#!Lucco87!#]. Sloop distributed objects are collections of component objects, managed by system-defined container types called domains . Applications can use a variety of alignment calls to advise the run-time system on object placement, but the run-time system has the freedom to redistribute objects. Object interactions are monitored so that the run-time system can relocate objects to improve locality. Although a simple load balancing system is mentioned, no detailed description is provided.
OpenMP cilk manual Portable HP programs M. Frigo Cache Oblivious Algorithms H. Prokop Thesenotes contain two lectures that teach multithreaded algorithms using a cilk http://nereida.deioc.ull.es/html/openmpindex.html
DBLP: Charles E. Leiserson Theory Comput. Syst. 31(2) 135167 (1998). 1997. 41, Charles E. LeisersonProgramming Irregular Parallel Applications in cilk. IRREGULAR 1997 61-71. http://www.informatik.uni-trier.de/~ley/db/indices/a-tree/l/Leiserson:Charles_E=
Extractions: List of publications from the DBLP Bibliography Server FAQ Coauthor Index - Ask others: ACM DL ACM Guide CiteSeer CSB ... EE Charles E. Leiserson: Cache-Oblivious Algorithms. CIAC 2003 Thomas H. Cormen , Charles E. Leiserson, Ronald L. Rivest Clifford Stein : Introduction to Algorithms, Second Edition The MIT Press and McGraw-Hill Book Company 2001 EE Ching Law , Charles E. Leiserson: A New Competitive Analysis of Randomized Caching. ISAAC 2000 EE Matteo Frigo , Charles E. Leiserson, Harald Prokop Sridhar Ramachandran : Cache-Oblivious Algorithms. FOCS 1999 EE Charles E. Leiserson: Design and Analysis of Algorithms for Shared-Memory Multiprocessors (Abstract). WADS 1999 EE Robert D. Blumofe , Charles E. Leiserson: Scheduling Multithreaded Computations by Work Stealing. J. ACM 46 EE Mingdong Feng , Charles E. Leiserson: Efficient Detection of Determinacy Races in Cilk Programs. Theory Comput. Syst. 32 Matteo Frigo , Charles E. Leiserson, Keith H. Randall : The Implementation of the Cilk-5 Multithreaded Language. PLDI 1998 EE Guang-Ien Cheng Mingdong Feng , Charles E. Leiserson
DBLP: Mingdong Feng 1999. 3, EE, Mingdong Feng, Charles E. Leiserson Efficient Detection of DeterminacyRaces in cilk Programs. Theory Comput. Syst. 32(3) 301326 (1999). 1998. http://www.informatik.uni-trier.de/~ley/db/indices/a-tree/f/Feng:Mingdong.html
Extractions: List of publications from the DBLP Bibliography Server FAQ Coauthor Index - Ask others: ACM DL ACM Guide CiteSeer CSB ... EE Mingdong Feng, Charles E. Leiserson : Efficient Detection of Determinacy Races in Cilk Programs. Theory Comput. Syst. 32 EE Guang-Ien Cheng , Mingdong Feng, Charles E. Leiserson Keith H. Randall Andrew F. Stark : Detecting Data Rase in Cilk Programs That use Locks. SPAA 1998 EE Mingdong Feng, Charles E. Leiserson : Efficient Detection of Determinacy Races in Cilk Programs. SPAA 1997 Guang-Ien Cheng Charles E. Leiserson Keith H. Randall Andrew F. Stark DBLP: [ Home Author Title Conferences ... Michael Ley (ley@uni-trier.de) Mon Jun 7 17:01:35 2004
Beowulf certain pieces of code. 8 cilk. cilk a package that contains the cilkprogramming language which is a C extension. Simple commands like http://www.symbio.jst.go.jp/~tino/Html/beowulf.html
Extractions: Beowulf was the legendary sixth-century hero from a distant realm who freed the Danes of Heorot by destroying the oppressive monster Grendel. As a metaphor, ``Beowulf'' has been applied to a new strategy in high performance computing that exploits mass-market technologies to overcome the oppressive costs in time and money of super-computing [ Beowulf consists of a set of N Using a combination of switches, much larger configurations can be achieved on the order of a thousand nodes by connecting several routers in a tree structure. The total latency increase of such a big system is of less than a factor three. The most popular operating system on Beowulfs is Linux. A specific package based on Redhat called Extreme Linux is often used. A parallel software package is needed to use a Beowulf effectively. Examples are PVM (parallel virtual machine), MPI (message passing for interprocessor communication). Sterling et. al. [ ] use MPI. Since many groups already use a Beowulf new software appears, an example is CILK.
Analysis And Optimization Of Divide And Conquer Programs Presents a symbolic analysis that characterizes the regions of memoryaccessed by procedures in multithreaded cilk programs. In http://www.cag.lcs.mit.edu/~rinard/paper/analysisAndOptimizationOfDivideAndConqu
Extractions: Presents an approach in which the programmer provides additional information to guide the analysis of the program and applies this approach to divide and conquer programs. The programmer provides points-to and symbolic accessed region information at procedure boundaries. The analysis verifies that the information is correct and uses the information to automatically parallelize the program. This approach offers a range of benefits, including guaranteed fidelity to the programmer's expectations of the code, early and automatic detection of bugs, and support for local analysis, separate compilation, and libraries. It can also simplify the compiler and improve its efficiency. Recursion Unrolling for Divide and Conquer Programs
Testing 1406 GuangIen Cheng, Mingdong Feng, Charles E. Leiserson, Keith H. Randall, andAndrew F. Stark Detecting Data Races in cilk Programs that Uses Locks In the http://user.it.uu.se/~hessel/testing/
Extractions: hessel paupet bengt (Subject to change). Thursday Introduction and Basic concepts (to the meeting) Wednesday Test case generation (to the meeting) Thursday Data Flow Analysis (to the meeting) Thursday Object-Oriented Testing (to the meeting) Monday Joint venture with VnV at Scientific Computing (to the meeting) Thursday Test Oracles (to the meeting) Monday Seminar by Yves Ledru info here Thursday Regression Testing (to the meeting) Thursday FME02 papers (to the meeting) Thursday Timing (to the meeting) Thursday Testing timed automata (to the meeting) Wednesday Distributed systems / Race Conditions (to the meeting) Thursday Model generation (to the meeting) Friday Testing of configurable systems, Mats Grindal (ENEA) (to the meeting) Thursday Software testing in a small company environment, Carl Ericksson (to the meeting) Articles should have been read before the meeting, the articles are listed in decreasing importance.
FDA125 MPIForum; cilk; Sergei Gorlatch s excellent tutorial on Parallel programmingwith skeletons, 1999. (temporary access only); Bacci, Gorlatch http://www.ida.liu.se/~chrke/courses/APP/
Extractions: The course emphasizes fundamental aspects of parallel programming such as parallel architectures and programming models, performance models, parallel complexity classes, parallel algorithmic paradigms, parallelization strategies, and the design and implementation of parallel programming languages. Practical exercises help to apply the theoretical concepts of the course to solve concrete problems in different parallel programming models. Prerequisites Data structures and algorithms (e.g. TDDB57) are absolutely required; knowledge in complexity theory and compiler construction is useful. Processprogramming (e.g. TDDB63/68/72) and Parallel Programming (e.g. TDDB78 or TANA77) are useful but not required. Most of the contents of FDA101, i.e. TDDB78, will be summarized during this course. Programming in C is necessary for the practical exercises.
References: Stark. Detecting data races in cilk programs that use locks. In Proceedingsof the Tenth Annual ACM Symposium on Parallel Algorithms. http://dsl.cs.technion.ac.il/projects/multirace/references.htm
Extractions: References: [1] S. V. Adve and M. D. Hill. Weak orderinga new definition. In Proceedings of the 17th Annual International Symposium on Computer Architecture , pages 214, May 1990. [2] S. V. Adve and M. D. Hill. A unified formalization of four shared-memory models. Technical report, University of Wisconsin , Sept. 1992. [3] S. V. Adve , M. D. Hill, B. P. Miller, and R. H. B. Netzer Detecting data races on weak memory systems. In Proceedings of the 18th Annual International Symposium on Computer Architecture (ISCA91) , pages 234243, May 1991. [4] D. Bailey, J. Barton, T. Lasinski , and H. Simon. The NAS parallel benchmark. Technical report, NASA Ames , Aug. 1991. [5] V. Balasundaram and K. Kennedy. Compile-time detection of race conditions in a parallel program. In Proceedings of the 3rd International Conference on Supercomputing , pages 175185, June 1989. [6] T. Brecht and H. Sandhu The Region Trap Library: Handling traps on application-defined regions of memory. In USENIX Annual Technical Conference, Monterey CA , June 1999. [7] G. Cheng, M.
Introduction cilk is a multithreaded language developed at MIT. It is built on top of C. Ithas been used to write the *Socrates chess program, which placed 2nd in the http://http.cs.berkeley.edu/~dgay/cs267/assignment1.html
Extractions: My interest in parallel programming stems from my interest in programming languages. For this assignment I have thus chosen to look at both a parallel programming language and an application developed with it. My comments will address not only the application, but also the language. Cilk is a multi-threaded language developed at MIT. It is built on top of C. It has been used to write the *Socrates chess program, which placed 2nd in the 1995 ICCA 8th World Computer Chess Championship . Its latest incarnation, Cilkchess, won the Dutch Open Computer Chess Championship in November 1996. The Cilk language [2] essentially provides low-overhead threads, and one synchronization mechanism: waiting for all threads spawned in this procedure to terminate. Version 4.0 of Cilk is targeted at SMPs (earlier versions also ran on distributed memory machines). The *Socrates [1] program plays chess, which should need no further explanation ;-) It employs a parallel search called "Jamboree Search", based on the usual alpha-beta search technique used in chess. The basic idea is to quickly test all moves possible from a given position in parallel, and then evaluate those which were not eliminated by this quick test more fully, but sequentially (but probably in parallel with similar full searches from other positions). This yields average levels of parallelism above 1000. The strengths of Cilk are:
6.893 Readings Anderson. SOSP 97. Efficient Detection of Determinacy Races in CilkPrograms by Mingdong Feng and Charles E. Leiserson. SPAA 97. http://pag.lcs.mit.edu/6.893/readings.html