## LinSolv: a Case Study in Strategic Parallelism (1997)

Venue: | In Glasgow Workshop on Functional Programming, Ullapool |

Citations: | 4 - 3 self |

### BibTeX

@INPROCEEDINGS{Loidl97linsolv:a,

author = {Hans-wolfgang Loidl},

title = {LinSolv: a Case Study in Strategic Parallelism},

booktitle = {In Glasgow Workshop on Functional Programming, Ullapool},

year = {1997},

pages = {15--17}

}

### OpenURL

### Abstract

. This paper discusses the parallelisation and performance tuning of a typical computer algebra algorithm, LinSolv, using evaluation strategies. We present three steps in the parallelisation process starting with a naive parallel version. As this algorithm uses infinite data structures as intermediate values it is necessary to define very sophisticated strategies in order to improve parallel performance. We also compare the strategic parallel code with pre-strategy code. This comparison shows how evaluation strategies help to localise changes needed for parallelisation. In particular, the separation between algorithmic and parallel code makes the structure of the parallelism much clearer. 1 Introduction Tuning the performance of a parallel algorithm can be a long, tiresome process. A parallel programming model should aid the programmer especially in this stage, allowing him to experiment with different patterns of parallel behaviour. Based on our experiences with developing p...

### Citations

228 | Lazy task creation: a technique for increasing the granularity of parallel programs
- Mohr, Kranz, et al.
- 1990
(Show Context)
Citation Context ...n of e. We say that p has been sparked, and a thread may subsequently be created to evaluate it if a processor becomes idle. Since the thread is not necessarily created, p is similar to a lazy future =-=[MKH91]-=-. Since control of sequencing can be important in a parallel language [Roe91], we introduce a sequential composition operator, seq. If e1 is not ?, the expression e1 `seq` e2 has the value of e2; othe... |

55 | S.L.: Algorithms + strategy = parallelism
- Trinder, Hammond, et al.
- 1998
(Show Context)
Citation Context ... in this stage, allowing him to experiment with different patterns of parallel behaviour. Based on our experiences with developing parallel functional programs we have developed evaluation strategies =-=[THLP98]-=-, which separate algorithmic from behavioural code. This separation has played a crucial role in the performance tuning stage of parallelising several medium- to large-scale functional programs [LT97]... |

48 | Parallel Programming using Functional Languages (Report CSC 91/R3
- Roe
- 1991
(Show Context)
Citation Context ...ted to evaluate it if a processor becomes idle. Since the thread is not necessarily created, p is similar to a lazy future [MKH91]. Since control of sequencing can be important in a parallel language =-=[Roe91]-=-, we introduce a sequential composition operator, seq. If e1 is not ?, the expression e1 `seq` e2 has the value of e2; otherwise it is ?. The corresponding dynamic behaviour is to evaluate e1 to weak ... |

30 | Jones: Formally based profiling for higherorder functional languages
- Sansom
- 1997
(Show Context)
Citation Context ...luation strategies [LT97]. The outlined methodology makes use of several components of our parallel engineering environment such as a sequential profiler to detect expensive components in the program =-=[SP97]-=-, a simulator, which allows both idealised and realistic simulation of the target architecture [HLP95], a set of visualisation tools for examining the behaviour of the program on several levels of det... |

21 | Visualising Granularity in Parallel Programs: A Graphical Winnowing System for Haskell. Pages 208–221
- Hammond, Loidl, et al.
- 1995
(Show Context)
Citation Context ... several performance bottlenecks. Therefore, we refine the naive parallel algorithm and discuss three stages in the performance tuning process. For the parallel program development we use the GranSim =-=[HLP95]-=- simulator for the parallel execution of GpH programs. GpH is a parallel extension of Haskell, which requires the programmer only to expose parallelism. Other aspects of the parallel program execution... |

15 |
Parallel computation of modular multivariate polynomial resultants on a shared memory machine
- Hong, Loidl
- 1994
(Show Context)
Citation Context ...ithm is common to a class of computer algebra algorithms, which makes the results of this case study applicable to algorithms like parallel p-adic arithmetic [LL93] and parallel resultant computation =-=[HL94]-=-. Although the parallel versions of these two algorithms are implemented in an imperative language the top level strategy we have developed in parallelising LinSolv could be reused for these algorithm... |

12 |
Chinese remainder and interpolation algorithms
- LIPSON
- 1971
(Show Context)
Citation Context ...egers has to be paid. Only in the combination phase will the big numbers appear again. In the case of Z as original domain the well-studied Chinese Remainder Algorithm can be used in the combine step =-=[Lip71]-=-. The linear system solver (LinSolv) we discuss in this section uses such a multiple homomorphic images approach. Thus, it must be emphasised that this algorithm is not meant to represent a highly-tun... |

10 |
Engineering Large Parallel Functional Programs
- Loidl, Trinder
- 1997
(Show Context)
Citation Context ...HLP98], which separate algorithmic from behavioural code. This separation has played a crucial role in the performance tuning stage of parallelising several medium- to large-scale functional programs =-=[LT97]-=-. In this paper we use evaluation strategies to parallelise a linear system solver, LinSolv. A short description of the final parallel version has been presented in [LT97] already. This paper focuses ... |

4 |
W.: Rational number arithmetic by parallel p-adic algorithms
- Limongelli, Loidl
- 1993
(Show Context)
Citation Context ...homomorphic images structure of this algorithm is common to a class of computer algebra algorithms, which makes the results of this case study applicable to algorithms like parallel p-adic arithmetic =-=[LL93]-=- and parallel resultant computation [HL94]. Although the parallel versions of these two algorithms are implemented in an imperative language the top level strategy we have developed in parallelising L... |

1 | The Art of Computer Programming, volume Vol. II: Seminumerical Algorithms. Addison-Wesley, 2nd edition edition - Knuth - 1981 |