| K. Traub. Sequential implementation of lenient programming languages. Ph.D. thesis, MIT Lab for Computer Science, 1988. |
....synchronization waits in the same manner, and further reduces the impact of transient load imbalance, since a processor remains busy as long as aty local work is available. Dynamic scheduling supports powerful parallel languages with synchronizing data access[3] or non strict order of evaluation[27, 7]. Dataflow processors operate greedily, grabbing hold of any available useful work, rather than sitting idle. The general belief in the dataflow research community is that if such an eager processor can be built with a reasonable cost performance ratio, the remaining systems issues involved in ....
K. R. Traub. Sequential Implementation of Lenient Programming Languages. Technical Report TR-417, MIT Lab for Comp. Sci., 545 Tech. Square, Cambridge, MA, September 1988. (PhD Thesis, Dept. of EECS, MIT).
....execution is waiting for a result from elsewhere, other instructions whose data dependencies are satisfied will be executed. A fuller justification of hybrid architectures can be found in [8] We did not devise our own methods to partition instructions into threads but relied on Traub s methods [16]. We built a new back end for Iannucci s hybrid Id compiler and, in many cases, imitated mechanisms from his hybrid architecture [8] empty) 5 true (empty) 0: 1: 2: 3: 4: 5: Frame of Caller Frame of Callee Continuation List Codeblock Figure 1: Run Time Data Structures Run Time ....
.... by basing our new system directly on the Id compiler used by the MIT Computation Structures Group instead of using Iannucci s machine language as an intermediate step, only making use of his routines to parallelize loops and Traub s routines to partition a dataflow graph into scheduling quanta [16]. With Traub s SQs, we expect the new system to be several times faster than our ETS system. The system we plan to build is based on the observation that each SQ has a fixed number of tokens used as inputs, where the number of input tokens is known at compiletime. Instead of performing a single ....
Kenneth R. Traub, Sequential Implementation of Lenient Programming Languages, MIT Laboratory for Computer Science Technical Report 417, Cambridge, MA, 1988. (PhD Thesis, Department of EECS, MIT.)
....optimizations that might reduce the cost of thread switching or improve scheduling based on analysis of the program. Inherently parallel languages, such as Id90[Nik90] and Multilisp[Hal85] require that small execution threads be scheduled dynamically, even if executed on a single processor[Tra88] Traub s theoretical work demonstrates how to minimize thread switching for these languages on sequential machines. However, in compiling this class of languages for parallel machines, the goal is not simply to minimize the number of thread switches, but to minimize the total cost of ....
....scheduling, is discussed in Chapter 4. Finally, preliminary results are presented in Chapter 5. 1.2 Language Issues We are using the parallel functional language Id90[Nik90] as a starting point. Id90 is a nonstrict but eager language. Traub uses the term lenient for this class of languages[Tra88] A language is called non strict, if it may be necessary to start computation of a function body before all (or even any) arguments have been provided. Conversely, it is called strict if all arguments can be evaluated before calling a function. Non strictness gives the programmer much more ....
[Article contains additional citation context not shown here]
K. R. Traub. Sequential Implementation of Lenient Programming Languages. Technical Report TR-417, MIT Lab for Comp. Sci., 545 Tech. Square, Cambridge, MA, September 1988. (PhD Thesis, Dept. of EECS, MIT).
....correct partition, it is therefore the compiler s responsibility to identify splitphase operations and respect the constraint by placing the related operations into two different threads. Some research work on thread partitioning has been carried out within the functional language community [36, 11, 31, 26]. Comparatively, there is little attention to the issues of partitioning threads for procedural languages. With the coming of MTA TERA machines into the market [3] we believe that there will be more and more demand for including the automatic thread partitioner within the multithreaded compiler ....
K. R. Traub. Sequential implementation of lenient programming languages. Tech. Rep. MIT/LCS/TR-417, MIT Lab. for Comp. Sci., Oct. 1988. PhD thesis, Sep. 1988.
....rather than partially. In summary, thread partitioning decisions imply trade offs between parallelism, synchronization costs, and sequential efficiency [30] With our cost model, we add another dimension, the placement of local nodes so that they can be fully used to hide latencies. Traub [33] shows that the thread partitioning problem for lenient languages is NP complete. To our knowledge, we are the first to prove that thread partitioning for strict languages with minimum execution time as an optimization goal is NP hard, see appendix for details. 4 List Scheduling Based Heuristic ....
Kenneth R. Traub. Sequential implementation of lenient programming languages. Technical Report MIT/LCS/TR-417, MIT Laboratory for Computer Science, Cambridge, Massachusetts, October 1988. PhD thesis, September 1988.
....they can be consolidated into a single loop. Not only is the loop overhead for the second loop removed, but data locality can be improved. Figure 42 displays an example of this transformation. Most overhead reduction work for parallel programs focuses on increasing the grain size of computations [138]. When tasks are very small, a disproportionate amount of time is spent switching between tasks rather than performing the program s computations. Increasing the size of each thread decreases the overhead and so the program s running time. Since the data parallel programming model has no concept ....
Kenneth R. Traub. Sequential implementation of lenient programming languages. Technical Report LCS-TR-417, MIT Laboratory for Computer Science, Cambridge, Massachusetts, October 1988.
....(section 4.1) 2. The run length of any list scheduling based heuristic algorithm is no more than twice the length of an optimal solution (section 4.2) 4. 1 Thread Partition Problem is NP hard Partitioning threads to satisfy non strict constraints for lenient languages is an NP Complete problem [132]. For strict languages, data dependence relation can be determined at compile time, and thus the constraints among nodes are predetermined. However, if we set minimizing total execution time as an optimization goal, the thread partitioning problem becomes hard . We will prove that this problem is ....
Kenneth R. Traub. Sequential implementation of lenient programming languages. Technical Report MIT/LCS/TR-417, MIT Laboratory for Computer Science, Cambridge, Massachusetts, October 1988. PhD thesis, September 1988.
....stack memory AMS subject classifications. 68Q22, 68Q25, 68M20 1. Introduction. In the course of investigating schemes for general purpose MIMD style parallel computation, many diverse research groups have converged on multithreading as a dominant paradigm. As an example, modern dataflow systems [16, 19, 25, 33, 34, 35, 40, 41] partition the dataflow instructions into fixed groups called threads and arrange the instructions of each thread into a fixed sequential order at compile time. At run time, a scheduler dynamically orders execution of the threads. Other systems employ schedulers that dynamically order threads ....
K. R. Traub, Sequential Implementation of Lenient Programming Languages, PhD thesis, Department of Electrical Engineering and Computer Science, Massachusetts Institute of Technology, 1988. Also: MIT Laboratory for Computer Science Technical Report MIT/LCS/TR-417.
....based multithreaded architectures usually can tolerate latency and synchronization naturally by applying dataflow computing rule over inter thread while they can exploit the locality of computation by applying von Neumann computing rule over intra thread. While several compilation techniques[11, 21, 25, 26, 8] have been developed to produce multithreaded codes from programs written in implicitly parallel functional languages such as Id[16] we can hardly find effective loop implementation for the multithreaded environment. In this paper, we will consider the loop implementation suitable for dataflow ....
K. R. Traub, Sequential Implementation of Lenient Programming Languages, Technical Report TR417, MIT Lab. for Comp. Sci., 1988.
....languages such as Id, and the other for strict languages such as Sisal. Thread partitioning for non strict languages is more constrained than thread partitioning for strict languages. For instance when targeting a non strict language, the thread partitioning algorithm must prevent deadlock. Traub [30] has proved that satisfying nonstrict constraints is, on itself, an NP Complete problem. In contrast, we focus on the thread partition problem for explicitly procedural (strict) languages and choose the minimization of execution time as our optimization goal. Many heuristic algorithms for thread ....
.... A j3 (b 1)n b A 1 A 2 A 3n 1 (a 1 ,0) A 3n (a 2 ,0) a 3n 1 ,0) a 3n ,0) a) v n Figure 5: Linear chain of DDG and the schedule of the partitioned threads 5 Thread Partition Problem is NP hard Partitioning threads to satisfy non strict constraints for lenient languages is an NP Complete problem [30]. For strict languages, data dependence relation can be determined at compiler time, and thus the constraints among nodes are predetermined. However, if we set minimizing total execution time as an optimization goal, the thread partitioning problem becomes hard . We will prove that this problem ....
Kenneth R. Traub. Sequential implementation of lenient programming languages. Tech. Rep. MIT/LCS/TR-417, MIT Lab. for Comp. Sci., Oct. 1988. PhD thesis, Sep. 1988.
....an infiniteprocessor simulation [NFH88] The GITA interpreter produced critical path lengths, but no guarantees were made for speedups or space bounds, partly because the dataflow programs being simulated were nonstrict. Traub showed that nonstrict programs can be quite difficult to compile [Tra88]. Blumofe and Leiserson [BL93] showed that some nonstrict programs have no schedule with good time and space bounds. Other work in the chess literature has focused mostly on the work efficiency, rather than the critical path of the search. One exception is Fishburn [Fis84] who analyzes the ....
Kenneth R. Traub. Sequential Implementation of Lenient Programming Languages. Technical report MIT/LCS/TR-417, Massachusetts Institute of Technology, Laboratory for Computer Science, September 1988. (Ph.D. thesis.)
....dataflow graph and that may cause deadlock. Safe partitioning algorithms perform only deadlock free transformations, thereby generating deadlock free partitions from deadlock free programs. The creation of a graph partition that is optimal relative to a realistic weight function is NP complete [24]. In general, only approximate solutions are determined using iterative methods. The advantages of such algorithms are their simplicity, run time efficiency, and prove of the safety of the solution by using only safe transformations in each iteration step. Existing partitioning algorithms can be ....
K. Traub. Sequential implementation of lenient programming languages. TR-417, MIT LCS, 545 Tech. Square, Cambridge, MA, 1988.
....that some form of object oriented approach is required. The tag is then a pointer to a table of addresses. Each entry in the table corresponds to an operation to be performed. For example the first entry might evaluate the object, the second might print it, and so on. Augustsson and Johnsson [1989] contend that one should test the least significant bit of the tag, which indicates whether a node is already evaluated. They claim that some 70 per cent of the time that this bit is tested, the nodes are evaluated. An alternative view is that of Peyton Jones and Salkild [1989] They claim that it ....
....and Johnsson [1989] contend that one should test the least significant bit of the tag, which indicates whether a node is already evaluated. They claim that some 70 per cent of the time that this bit is tested, the nodes are evaluated. An alternative view is that of Peyton Jones and Salkild [1989]. They claim that it is easier to always jump through the tag, in a similar way to the traditional G machine. In theory Augustsson and Johnsson are right. Their scheme results in at most one pipe line break and, with the right sort of hardware, it is possible that an intelligent prefetch could ....
K.R. Traub. Sequential Implementation of Lenient Programming Languages. Doctoral thesis, Laboratory of Computer Science, MIT, September 1989. MIT/LCS/TR-417.
....Cambridge, Massachusetts Robert D. Blumofe September 8, Chapter 1 Introduction In the course of investigating schemes for general purpose MIMD parallel computation, many diverse research groups have converged on multithreading as a dominant paradigm. As an example, modern dataflow systems [9, 11, 16, 24, 25, 26, 31, 32] partition the dataflow instructions into fixed groups called threads and arrange the instructions of each thread into a fixed sequential order at compile time. At run time, a scheduler employs dataflow concepts to dynamically order execution of the threads. Other systems have schedulers that ....
Kenneth R. Traub. Sequential Implementation of Lenient Programming Languages. PhD thesis, Department of Electrical Engineering and Computer Science, Massachusetts Institute of Technology, 1988. Available as MIT Laboratory for Computer Science Technical Report MIT/LCS/TR-417.
....among threads[9,10] according to execution model. A lenient parallel language Id[11] supports nonstrict control constructs or data structures for synchronization, thus allowing massively fine grain parallelism. There are several approaches to generate multithreaded codes from Id programs[1,4,5,6,7,12,13]. It is an important issue how to partition the dataflow program graph, which is an intermediate form of Id programs, to satisfy the following criteria: maximization of parallelism and run length, and minimization of synchronization costs. Nikhil[14] doesn t aggregate nodes in dataflow graphs. ....
.... Gamma may make it impossible to determine the execution order of a function statically since results of the functions may be fed back in as its arguments. This order may depend on the dynamic context in which the function appears. We consider an example for non strict conditionals presented in [12] as following. conditional example = f fun x = f a = if x 0 then bb else 3; b = if x 0 then aa else 4; aa = a 5; bb = b 6; c = a b; in cgg; We can see that the cycles arise in the corresponding graph, i.e. for negative value of x, a and aa must be evaluated before b and bb, while for ....
K.R. Traub, "Sequential Implementation of Lenient Programming Languages", Technical Report, MIT/LCS/TR-417, Sept. 1988.
....proceeded sequentially within each sequence, but the order of the sequences was determined at run time. The second approach, motivated by a desire to lessen run time scheduling overhead, made use of Iannucci s work on hybrid architectures [10] and Traub s work on dataflow graph sequentialization [21] to produce a single sequence of code for several dataflow graph nodes, allowing some scheduling to be done at compile time. Both systems used dataflow graphs produced from the dataflow language Id [11] This paper describes our experience and results with these systems. 1.1 Background 1.1.1 Id ....
....waiting for a result from elsewhere, other instructions whose data dependencies are satisfied will be executed. A fuller justification of hybrid architectures can be found in [10, Chapters 1 2] We did not devise our own methods to partition instructions into threads but relied on Traub s methods [21]. We built our compiler on top of Iannucci s hybrid Id compiler and, in many cases, imitated mechanisms from his hybrid architecture [10] empty) 5 true (empty) 0: 1: 2: 3: 4: 5: Frame of Caller Frame of Callee Continuation List Codeblock Figure 3: Run Time Data Structures. The data for slot 5 ....
[Article contains additional citation context not shown here]
Traub, Kenneth R., Sequential Implementation of Lenient Programming Languages. Technical Report MIT/LCS/TR-417. MIT Laboratory for Computer Science, Cambridge, MA, September 1988. (PhD Thesis, Department of EECS, MIT.)
....system can be retrieved at http: www.csg.lcs.mit.edu shaw shaw phd id.tar.gz. Year System Researchers and References 1987 Id TTDA Arvind, Nikhil, Iannucci, Traub, etc. 9] 10] 1989 Id Monsoon Papadopoulos and Culler [62] Hicks, Chiou, Ang, Arvind [43] 1988 1995 Id partitioning Traub [81] [82] Schauser [72] Coorg [22] 1991 Id TAM Culler, Goldstein, Schauser, von Eiken [25] 32] 1992 Id P RISC Nikhil [56] 1992 EM C EM 4 Sato, Sakai, etc. 66] 68] 1993 Id StarT 88110MP Carnevali, Shaw [55] 1994 Cilk CM 5 Zhou, Halbherr, Joerg, etc. 37] 1994 Id pHluid Chiou, Nikhil ....
....boards. Monsoon [62] was the direct successor of TTDA, and was realized in hardware. Monsoon had a explicit token matching store, and introduced the notion of activation frames as a synchronization namespace and temporary storage. Monsoon also had direct support for I structures. Ken Traub [81] developed the early theory of compiling the non strict Id language into sequential threads to be executed on more conventional von Neumann architectures. The TAM compiler [25] 32] actually implemented some simple partitioning algorithms, and compiled Id for conventional microprocessors. Over the ....
[Article contains additional citation context not shown here]
Kenneth R. Traub. Sequential Implementation of Lenient Programming Languages. MIT Press, 1988.
....; In b = x ; b = 4 ; y In In y y This is perhaps an artificial example, but the cyclic binding establishes the point that this is a non strict language even though we do not use lazy evaluation. To emphasize this further, we invite the reader to trace the evaluation of the function (due to Traub [18]) def f b x y = xx = if b then x else yy ; yy = if b then xx else y ; In xx yy ; under the calls (f True 10 20) and (f False 10 20) These expressions are undefined under strict semantics, but are perfectly meaningful in Id and other non strict languages. 2.3 Non strictness, yes, but why ....
K. R. Traub. Sequential Implementation of Lenient Programming Languages. Technical Report TR-417, MIT Laboratory for Computer Science, 545 Technology Square, Cambridge, MA 02139, May 1988. Ph.D. thesis.
....Until fairly recently, implementations of lazy functional languages have been described using abstract machines, see [Joh83, Aug87a, Joh87, FW86, FW87] for example. Now people have begun explaining implementations in terms of more conventional compiler technology, as can be seen in [BHY88, PS89, Tra89] This shift has taken place because of an increased understanding of how implementations should work. Nevertheless, we have chosen to describe the use of evaluation transformer information in terms of a parallel abstract machine. Not only does this provide a suitable level of abstraction, but it ....
K.R. Traub. Sequential Implementation of Lenient Programming Languages. PhD thesis, Laboratory of Computer Science, MIT, September 1989. MIT/LCS/TR-417.
.... instruction level may provide the key to general purpose parallel computing[26] because it allows the processor to tolerate long, unpredictable communication latency [2, 4, 17, 24, 29] In addition, this level of multithreading is required to support certain modern parallel programming languages[28], such as Id[20] and Multilisp[18] and extensions of more conventional languages with synchronizing data structures, e.g. I structures[6] On the other hand, asynchronous transfer of control (context switching) is notoriously expensive on current machines, leading many researchers to examine ....
....34.1 92.3 8,860 I T 4.7 7.6 4.3 3.9 2.7 4.4 Table 3: TL0 Instruction and Scheduling Measurements for Large Programs and the net cost of synchronization under various degrees of hardware support. Thread Partitioning: Although the partitioner is primitive compared to the theoretical state ofthe art[28], thread sizes (I=T ) are close to typical branch distances, which provides an upper bound given that fork is the only form of control transfer. The observed thread sizes are comparable to run lengths reported for hybrid dataflow machines, where conditionals were treated as strict[16] ....
K. R. Traub. Sequential Implementation of Lenient Programming Languages. Technical Report TR-417, MIT Lab for Comp. Sci., 545 Tech. Square, Cambridge, MA, September 1988. (PhD Thesis, Dept. of EECS, MIT).
....applying optimizations that might reduce the cost of thread switching or improve scheduling based on analysis of the program. Inherently parallel languages, such as Id[Nik90] and Multilisp[Hal85] require that small execution threads be scheduled dynamically, even if executed on a uniprocessor[Tra88] Traub s theoretical work demonstrates how to minimize thread switching for these languages on sequential machines. However, in compiling this class of languages for parallel machines, the goal is not simply to minimize the number of thread switches, but to minimize the total cost of ....
....its first argument and the product of its two arguments. It can compute and return x x before y is available, which enhances parallelism. In fact, it must be able to do so, since the first result can be used as the second argument, as in the unusual function cube. The final example, due to Traub[Tra88] has three mutually recursive bindings, where the cyclic dependence through the conditional must be resolved dynamically. def lookup array A T = al,ah) bounds A; tl,th) bounds T in array (al,ah) of [i] lookup A[i] T tl th) i al to ah ; def lookup v T l h = while l h do m = ....
[Article contains additional citation context not shown here]
K. R. Traub. Sequential Implementation of Lenient Programming Languages. Technical Report TR-417, MIT Lab for Comp. Sci., 545 Tech. Square, Cambridge, MA, September 1988. (PhD Thesis, Dept. of EECS, MIT).
No context found.
K. Traub. Sequential implementation of lenient programming languages. Ph.D. thesis, MIT Lab for Computer Science, 1988.
No context found.
Traub, Kenneth R., Sequential Implementation of Lenient Programming Languages. Technical Report MIT/LCS/TR-417. MIT Laboratory for Computer Science, Cam- bridge, MA, September 1988. (PhD Thesis, Department of EECS, MIT.)
No context found.
Traub, Kenneth R., Sequential Implementation of Lenient Programming Languages. Technical Report MIT/LCS/TR-417. MIT Laboratory for Computer Science, Cambridge, MA, September 1988. (PhD Thesis, Department of EECS, MIT.)
No context found.
K. R. Traub, Sequential Implementation of Lenient Programming Languages, Technical Report LCS/TR-417, Dept. of Electrical Engineering and Computer Science, Massachusetts Institute of Technology, Cambridge MA, September 1988.
First 50 documents
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