Serveur d'exploration sur SGML

Attention, ce site est en cours de développement !
Attention, site généré par des moyens informatiques à partir de corpus bruts.
Les informations ne sont donc pas validées.

Algorithm + strategy = parallelism

Identifieur interne : 002193 ( Main/Exploration ); précédent : 002192; suivant : 002194

Algorithm + strategy = parallelism

Auteurs : P. W. Trinder [Royaume-Uni] ; K. Hammond [Royaume-Uni] ; H.-W. Loidl [Royaume-Uni] ; S. L. Peyton Jones [Royaume-Uni]

Source :

RBID : ISTEX:4181BEEFBCEB26C9AF44FF58A876F6AC0AA747A7

Abstract

The process of writing large parallel programs is complicated by the need to specify both the parallel behaviour of the program and the algorithm that is to be used to compute its result. This paper introduces evaluation strategies: lazy higher-order functions that control the parallel evaluation of non-strict functional languages. Using evaluation strategies, it is possible to achieve a clean separation between algorithmic and behavioural code. The result is enhanced clarity and shorter parallel programs. Evaluation strategies are a very general concept: this paper shows how they can be used to model a wide range of commonly used programming paradigms, including divide-and-conquer parallelism, pipeline parallelism, producer/consumer parallelism, and data-oriented parallelism. Because they are based on unrestricted higher-order functions, they can also capture irregular parallel structures. Evaluation strategies are not just of theoretical interest: they have evolved out of our experience in parallelising several large-scale parallel applications, where they have proved invaluable in helping to manage the complexities of parallel behaviour. Some of these applications are described in detail here. The largest application we have studied to date, Lolita, is a 40,000 line natural language engineering system. Initial results show that for these programs we can achieve acceptable parallel performance, for relatively little programming effort.

Url:


Affiliations:


Links toward previous steps (curation, corpus...)


Le document en format XML

<record>
<TEI wicri:istexFullTextTei="biblStruct">
<teiHeader>
<fileDesc>
<titleStmt>
<title>Algorithm + strategy = parallelism</title>
<author>
<name sortKey="Trinder, P W" sort="Trinder, P W" uniqKey="Trinder P" first="P. W." last="Trinder">P. W. Trinder</name>
</author>
<author>
<name sortKey="Hammond, K" sort="Hammond, K" uniqKey="Hammond K" first="K." last="Hammond">K. Hammond</name>
</author>
<author>
<name sortKey="Loidl, H W" sort="Loidl, H W" uniqKey="Loidl H" first="H.-W." last="Loidl">H.-W. Loidl</name>
</author>
<author>
<name sortKey="Peyton Jones, S L" sort="Peyton Jones, S L" uniqKey="Peyton Jones S" first="S. L." last="Peyton Jones">S. L. Peyton Jones</name>
</author>
</titleStmt>
<publicationStmt>
<idno type="wicri:source">ISTEX</idno>
<idno type="RBID">ISTEX:4181BEEFBCEB26C9AF44FF58A876F6AC0AA747A7</idno>
<date when="1998" year="1998">1998</date>
<idno type="url">https://api.istex.fr/ark:/67375/6GQ-Q6LMTXR1-S/fulltext.pdf</idno>
<idno type="wicri:Area/Istex/Corpus">001099</idno>
<idno type="wicri:explorRef" wicri:stream="Istex" wicri:step="Corpus" wicri:corpus="ISTEX">001099</idno>
<idno type="wicri:Area/Istex/Curation">000D46</idno>
<idno type="wicri:Area/Istex/Checkpoint">001E81</idno>
<idno type="wicri:explorRef" wicri:stream="Istex" wicri:step="Checkpoint">001E81</idno>
<idno type="wicri:doubleKey">0956-7968:1998:Trinder P:algorithm:strategy:parallelism</idno>
<idno type="wicri:Area/Main/Merge">002279</idno>
<idno type="wicri:Area/Main/Curation">002193</idno>
<idno type="wicri:Area/Main/Exploration">002193</idno>
</publicationStmt>
<sourceDesc>
<biblStruct>
<analytic>
<title level="a">Algorithm + strategy = parallelism</title>
<author>
<name sortKey="Trinder, P W" sort="Trinder, P W" uniqKey="Trinder P" first="P. W." last="Trinder">P. W. Trinder</name>
<affiliation wicri:level="4">
<country xml:lang="fr">Royaume-Uni</country>
<wicri:regionArea>Department of Computing Science, University of Glasgow, Glasgow</wicri:regionArea>
<orgName type="university">Université de Glasgow</orgName>
<placeName>
<settlement type="city">Glasgow</settlement>
<region type="country">Écosse</region>
</placeName>
</affiliation>
</author>
<author>
<name sortKey="Hammond, K" sort="Hammond, K" uniqKey="Hammond K" first="K." last="Hammond">K. Hammond</name>
<affiliation wicri:level="1">
<country xml:lang="fr">Royaume-Uni</country>
<wicri:regionArea>Division of Computing Science, University of St Andrews, St Andrews</wicri:regionArea>
<wicri:noRegion>St Andrews</wicri:noRegion>
</affiliation>
</author>
<author>
<name sortKey="Loidl, H W" sort="Loidl, H W" uniqKey="Loidl H" first="H.-W." last="Loidl">H.-W. Loidl</name>
<affiliation wicri:level="4">
<country xml:lang="fr">Royaume-Uni</country>
<wicri:regionArea>Department of Computing Science, University of Glasgow, Glasgow</wicri:regionArea>
<orgName type="university">Université de Glasgow</orgName>
<placeName>
<settlement type="city">Glasgow</settlement>
<region type="country">Écosse</region>
</placeName>
</affiliation>
</author>
<author>
<name sortKey="Peyton Jones, S L" sort="Peyton Jones, S L" uniqKey="Peyton Jones S" first="S. L." last="Peyton Jones">S. L. Peyton Jones</name>
<affiliation wicri:level="4">
<country xml:lang="fr">Royaume-Uni</country>
<wicri:regionArea>Department of Computing Science, University of Glasgow, Glasgow</wicri:regionArea>
<orgName type="university">Université de Glasgow</orgName>
<placeName>
<settlement type="city">Glasgow</settlement>
<region type="country">Écosse</region>
</placeName>
</affiliation>
</author>
</analytic>
<monogr></monogr>
<series>
<title level="j">Journal of Functional Programming</title>
<idno type="ISSN">0956-7968</idno>
<idno type="eISSN">1469-7653</idno>
<imprint>
<publisher>Cambridge University Press</publisher>
<date type="published" when="1998-01">1998-01</date>
<biblScope unit="volume">8</biblScope>
<biblScope unit="issue">1</biblScope>
<biblScope unit="page" from="23">23</biblScope>
<biblScope unit="page" to="60">60</biblScope>
</imprint>
<idno type="ISSN">0956-7968</idno>
</series>
</biblStruct>
</sourceDesc>
<seriesStmt>
<idno type="ISSN">0956-7968</idno>
</seriesStmt>
</fileDesc>
<profileDesc>
<textClass></textClass>
<langUsage>
<language ident="en">en</language>
</langUsage>
</profileDesc>
</teiHeader>
<front>
<div type="abstract">The process of writing large parallel programs is complicated by the need to specify both the parallel behaviour of the program and the algorithm that is to be used to compute its result. This paper introduces evaluation strategies: lazy higher-order functions that control the parallel evaluation of non-strict functional languages. Using evaluation strategies, it is possible to achieve a clean separation between algorithmic and behavioural code. The result is enhanced clarity and shorter parallel programs. Evaluation strategies are a very general concept: this paper shows how they can be used to model a wide range of commonly used programming paradigms, including divide-and-conquer parallelism, pipeline parallelism, producer/consumer parallelism, and data-oriented parallelism. Because they are based on unrestricted higher-order functions, they can also capture irregular parallel structures. Evaluation strategies are not just of theoretical interest: they have evolved out of our experience in parallelising several large-scale parallel applications, where they have proved invaluable in helping to manage the complexities of parallel behaviour. Some of these applications are described in detail here. The largest application we have studied to date, Lolita, is a 40,000 line natural language engineering system. Initial results show that for these programs we can achieve acceptable parallel performance, for relatively little programming effort.</div>
</front>
</TEI>
<affiliations>
<list>
<country>
<li>Royaume-Uni</li>
</country>
<region>
<li>Écosse</li>
</region>
<settlement>
<li>Glasgow</li>
</settlement>
<orgName>
<li>Université de Glasgow</li>
</orgName>
</list>
<tree>
<country name="Royaume-Uni">
<region name="Écosse">
<name sortKey="Trinder, P W" sort="Trinder, P W" uniqKey="Trinder P" first="P. W." last="Trinder">P. W. Trinder</name>
</region>
<name sortKey="Hammond, K" sort="Hammond, K" uniqKey="Hammond K" first="K." last="Hammond">K. Hammond</name>
<name sortKey="Loidl, H W" sort="Loidl, H W" uniqKey="Loidl H" first="H.-W." last="Loidl">H.-W. Loidl</name>
<name sortKey="Peyton Jones, S L" sort="Peyton Jones, S L" uniqKey="Peyton Jones S" first="S. L." last="Peyton Jones">S. L. Peyton Jones</name>
</country>
</tree>
</affiliations>
</record>

Pour manipuler ce document sous Unix (Dilib)

EXPLOR_STEP=$WICRI_ROOT/Wicri/Informatique/explor/SgmlV1/Data/Main/Exploration
HfdSelect -h $EXPLOR_STEP/biblio.hfd -nk 002193 | SxmlIndent | more

Ou

HfdSelect -h $EXPLOR_AREA/Data/Main/Exploration/biblio.hfd -nk 002193 | SxmlIndent | more

Pour mettre un lien sur cette page dans le réseau Wicri

{{Explor lien
   |wiki=    Wicri/Informatique
   |area=    SgmlV1
   |flux=    Main
   |étape=   Exploration
   |type=    RBID
   |clé=     ISTEX:4181BEEFBCEB26C9AF44FF58A876F6AC0AA747A7
   |texte=   Algorithm + strategy = parallelism
}}

Wicri

This area was generated with Dilib version V0.6.33.
Data generation: Mon Jul 1 14:26:08 2019. Site generation: Wed Apr 28 21:40:44 2021