Matches in SemOpenAlex for { <https://semopenalex.org/work/W950024042> ?p ?o ?g. }
- W950024042 abstract "This thesis considers how to speed up the execution of functional programs using parallel execution, load distribution, and speculative evaluation. This is an important challenge given the increasing complexity of software systems, the decreasing cost of individual processors, and the appropriateness of the functional paradigm for parallelisation.Processor speeds are continuing to climb � but the magnitudes of increase are overridden by both the increasing complexity of software and the escalating expectation of users. Future gains in speed are likely to occur through the combination of today�s conventional uni-processors to form loosely-coupled multicomputers. Parallel program execution can theoretically provide linear speed-ups, but for this theoretical benefit to be realised two main hurdles must be overcome. The first of these is the identification and extraction of parallelism within the program to be executed. The second hurdle is the runtime management and scheduling of the parallel components to achieve the speed-up without slowing the execution of the program.Clearly a lot of work can be done by the programmer to �parallelise� the algorithm. There is often, however, much parallelism available without significant effort on the part of the programmer. Functional programming languages and compilers have received much attention in the last decade for the contributions possible in parallel executions. Since the semantics of languages from the functional programming paradigm manifest the Church-Rosser property (that the order of evaluation of sub-expressions does not affect the result), sub-expressions may be executed in parallel. The absence of side-effects and the lack of state facilitate the availability of expressions suitable for concurrent evaluation. Unfortunately, such expressions may involve varying amounts of computation or require high amounts of data � both of which complicate the management of parallel execution.If the future of computation is through the formation of multicomputers, we are faced with the high probability that the number of available processing units will quickly outweigh the known parallelism of an algorithm at any given moment during execution. Intuitively this spare processing power should be utilised if possible. The premise of speculative evaluation is that it employs otherwise idle tasks on work that may prove beneficial. The more program components available for execution the greater the opportunity for speculation and potentially the quicker the program�s result may be obtained.The second impediment for the parallel execution of programs is the scheduling of program components for evaluation. Multicomputer execution of a program involves the allocation of program components among the available tasks to maximise throughput. We present a decentralised, speculation-cognate, load distribution algorithm that allocates and manages the distribution of program components among the tasks with the co-aim of minimising the impact on tasks executing program components known to be required.In this dissertation we present our implementation of minimal-impact speculative evaluation in the context of the functional programming language Haskell augmented with a number of primitives for the indication of useful parallelism. We expound four (two quantitative and two qualitative) novel schemes for expressing the initial speculative contribution of program components and provide a translation mechanism to illustrate the equivalence of the four.The implementation is based on the Glasgow Haskell Compiler (GHC) version 0�29 � the de facto standard for parallel functional programming research � and strives to minimise the runtime overhead of managing speculative evaluation. We have augmented the Graph reduction for a Unified Machine model (GUM) runtime system with our load distribution algorithm and speculative evaluation sub-system. Both are motivated by the need to facilitate speculative evaluation without adversely impacting on program components directly influencing the program�s result.Experiments have been undertaken using common benchmark programs. These programs have been executed under sequential, conservative parallel, and speculative parallel evaluation to study the overheads of the runtime system and to show the benefits of speculation. The results of the experiments conducted using an emulated multicomputer add evidence of the usefulness of speculative evaluation in general and effective speculative evaluation in particular." @default.
- W950024042 created "2016-06-24" @default.
- W950024042 creator A5004966943 @default.
- W950024042 date "2002-01-01" @default.
- W950024042 modified "2023-09-27" @default.
- W950024042 title "Effective run-time management of parallelism in a functional programming context" @default.
- W950024042 cites W1130579747 @default.
- W950024042 cites W1132755205 @default.
- W950024042 cites W122849616 @default.
- W950024042 cites W127309881 @default.
- W950024042 cites W1483474820 @default.
- W950024042 cites W1495397611 @default.
- W950024042 cites W1502523938 @default.
- W950024042 cites W1502870228 @default.
- W950024042 cites W1507693023 @default.
- W950024042 cites W1509443229 @default.
- W950024042 cites W1511118345 @default.
- W950024042 cites W1512076061 @default.
- W950024042 cites W1513525691 @default.
- W950024042 cites W1514190405 @default.
- W950024042 cites W1515866851 @default.
- W950024042 cites W1518956066 @default.
- W950024042 cites W1520096901 @default.
- W950024042 cites W1520700348 @default.
- W950024042 cites W1521607917 @default.
- W950024042 cites W1523094859 @default.
- W950024042 cites W1524719403 @default.
- W950024042 cites W1524744826 @default.
- W950024042 cites W1525847653 @default.
- W950024042 cites W1527809250 @default.
- W950024042 cites W1528894538 @default.
- W950024042 cites W1531379672 @default.
- W950024042 cites W1532930908 @default.
- W950024042 cites W1533109738 @default.
- W950024042 cites W1534969854 @default.
- W950024042 cites W1540620843 @default.
- W950024042 cites W1547515631 @default.
- W950024042 cites W1548837038 @default.
- W950024042 cites W1567828704 @default.
- W950024042 cites W1571097638 @default.
- W950024042 cites W1575350781 @default.
- W950024042 cites W1582786773 @default.
- W950024042 cites W1583540736 @default.
- W950024042 cites W1584507524 @default.
- W950024042 cites W1584944335 @default.
- W950024042 cites W1593994472 @default.
- W950024042 cites W1598940488 @default.
- W950024042 cites W1599485164 @default.
- W950024042 cites W1602274351 @default.
- W950024042 cites W1602618175 @default.
- W950024042 cites W1607424833 @default.
- W950024042 cites W1607447456 @default.
- W950024042 cites W1608410599 @default.
- W950024042 cites W1633290757 @default.
- W950024042 cites W1647001983 @default.
- W950024042 cites W1776591722 @default.
- W950024042 cites W182043139 @default.
- W950024042 cites W1830663245 @default.
- W950024042 cites W1843718812 @default.
- W950024042 cites W185660715 @default.
- W950024042 cites W1886722922 @default.
- W950024042 cites W1894266997 @default.
- W950024042 cites W192332515 @default.
- W950024042 cites W1973294114 @default.
- W950024042 cites W1974146675 @default.
- W950024042 cites W1974616093 @default.
- W950024042 cites W1978718408 @default.
- W950024042 cites W1980249022 @default.
- W950024042 cites W1983587116 @default.
- W950024042 cites W1984781831 @default.
- W950024042 cites W1990195720 @default.
- W950024042 cites W1991325443 @default.
- W950024042 cites W1993282845 @default.
- W950024042 cites W1993503482 @default.
- W950024042 cites W1998875295 @default.
- W950024042 cites W2004628971 @default.
- W950024042 cites W2009953498 @default.
- W950024042 cites W2022049964 @default.
- W950024042 cites W2022584436 @default.
- W950024042 cites W2022906437 @default.
- W950024042 cites W2030463561 @default.
- W950024042 cites W2031944823 @default.
- W950024042 cites W2038105487 @default.
- W950024042 cites W2041402579 @default.
- W950024042 cites W2042566745 @default.
- W950024042 cites W2045821994 @default.
- W950024042 cites W2048867801 @default.
- W950024042 cites W2053993447 @default.
- W950024042 cites W2054409398 @default.
- W950024042 cites W2056592324 @default.
- W950024042 cites W2063068243 @default.
- W950024042 cites W206397652 @default.
- W950024042 cites W2065431951 @default.
- W950024042 cites W2070912453 @default.
- W950024042 cites W2071077931 @default.
- W950024042 cites W2071166391 @default.
- W950024042 cites W2071457257 @default.
- W950024042 cites W2073545579 @default.
- W950024042 cites W2074579477 @default.
- W950024042 cites W2080912525 @default.