ForkLight : A control-synchronous parallel programming language
Identifieur interne : 000240 ( LNCS/Analysis ); précédent : 000239; suivant : 000241ForkLight : A control-synchronous parallel programming language
Auteurs : C. W. Kessler [Allemagne] ; H. Seidl [Allemagne]Source :
- Lecture notes in computer science [ 0302-9743 ] ; 1999.
Descripteurs français
- Pascal (Inist)
- Wicri :
- topic : Langage de programmation.
English descriptors
- KwdEn :
Abstract
ForkLight is an imperative, task-parallel programming language for massively parallel shared memory machines. It is based on ANSI C, follows the SPMD model of parallel program execution, provides a sequentially consistent shared memory, and supports dynamically nested parallelism. While no assumptions are made on uniformity of memory access time or instruction-level synchronicity of the underlying hardware, ForkLight offers a simple but powerful mechanism for coordination of parallel processes in the tradition and notation of PRAM algorithms: Beyond its asynchronous default execution mode, ForkLight offers a mode for control-synchronous execution that relates the program's block structure to parallel control flow. We give a scheme for compiling ForkLight to C with calls to a very small set of basic shared memory access operations like atomic fetch&add. This yields portability across parallel architectures and exploits the local optimizations of their native C compilers. Our implementation is publically available; performance results are reported. We also discuss translation to OpenMP.
Affiliations:
Links toward previous steps (curation, corpus...)
- to stream PascalFrancis, to step Corpus: 001026
- to stream PascalFrancis, to step Curation: 001768
- to stream PascalFrancis, to step Checkpoint: 000D92
- to stream Main, to step Merge: 002544
- to stream Main, to step Curation: 002177
- to stream Main, to step Exploration: 002177
- to stream LNCS, to step Extraction: 000240
Links to Exploration step
Pascal:99-0273968Le document en format XML
<record><TEI><teiHeader><fileDesc><titleStmt><title xml:lang="en" level="a">ForkLight : A control-synchronous parallel programming language</title>
<author><name sortKey="Kessler, C W" sort="Kessler, C W" uniqKey="Kessler C" first="C. W." last="Kessler">C. W. Kessler</name>
<affiliation wicri:level="1"><inist:fA14 i1="01"><s1>FB IV - Informatik, Universität Trier</s1>
<s2>54286 Trier</s2>
<s3>DEU</s3>
<sZ>1 aut.</sZ>
<sZ>2 aut.</sZ>
</inist:fA14>
<country>Allemagne</country>
<wicri:noRegion>54286 Trier</wicri:noRegion>
<wicri:noRegion>Universität Trier</wicri:noRegion>
<wicri:noRegion>54286 Trier</wicri:noRegion>
</affiliation>
</author>
<author><name sortKey="Seidl, H" sort="Seidl, H" uniqKey="Seidl H" first="H." last="Seidl">H. Seidl</name>
<affiliation wicri:level="1"><inist:fA14 i1="01"><s1>FB IV - Informatik, Universität Trier</s1>
<s2>54286 Trier</s2>
<s3>DEU</s3>
<sZ>1 aut.</sZ>
<sZ>2 aut.</sZ>
</inist:fA14>
<country>Allemagne</country>
<wicri:noRegion>54286 Trier</wicri:noRegion>
<wicri:noRegion>Universität Trier</wicri:noRegion>
<wicri:noRegion>54286 Trier</wicri:noRegion>
</affiliation>
</author>
</titleStmt>
<publicationStmt><idno type="wicri:source">INIST</idno>
<idno type="inist">99-0273968</idno>
<date when="1999">1999</date>
<idno type="stanalyst">PASCAL 99-0273968 INIST</idno>
<idno type="RBID">Pascal:99-0273968</idno>
<idno type="wicri:Area/PascalFrancis/Corpus">001026</idno>
<idno type="wicri:Area/PascalFrancis/Curation">001768</idno>
<idno type="wicri:Area/PascalFrancis/Checkpoint">000D92</idno>
<idno type="wicri:explorRef" wicri:stream="PascalFrancis" wicri:step="Checkpoint">000D92</idno>
<idno type="wicri:doubleKey">0302-9743:1999:Kessler C:forklight:a:control</idno>
<idno type="wicri:Area/Main/Merge">002544</idno>
<idno type="wicri:Area/Main/Curation">002177</idno>
<idno type="wicri:Area/Main/Exploration">002177</idno>
<idno type="wicri:Area/LNCS/Extraction">000240</idno>
</publicationStmt>
<sourceDesc><biblStruct><analytic><title xml:lang="en" level="a">ForkLight : A control-synchronous parallel programming language</title>
<author><name sortKey="Kessler, C W" sort="Kessler, C W" uniqKey="Kessler C" first="C. W." last="Kessler">C. W. Kessler</name>
<affiliation wicri:level="1"><inist:fA14 i1="01"><s1>FB IV - Informatik, Universität Trier</s1>
<s2>54286 Trier</s2>
<s3>DEU</s3>
<sZ>1 aut.</sZ>
<sZ>2 aut.</sZ>
</inist:fA14>
<country>Allemagne</country>
<wicri:noRegion>54286 Trier</wicri:noRegion>
<wicri:noRegion>Universität Trier</wicri:noRegion>
<wicri:noRegion>54286 Trier</wicri:noRegion>
</affiliation>
</author>
<author><name sortKey="Seidl, H" sort="Seidl, H" uniqKey="Seidl H" first="H." last="Seidl">H. Seidl</name>
<affiliation wicri:level="1"><inist:fA14 i1="01"><s1>FB IV - Informatik, Universität Trier</s1>
<s2>54286 Trier</s2>
<s3>DEU</s3>
<sZ>1 aut.</sZ>
<sZ>2 aut.</sZ>
</inist:fA14>
<country>Allemagne</country>
<wicri:noRegion>54286 Trier</wicri:noRegion>
<wicri:noRegion>Universität Trier</wicri:noRegion>
<wicri:noRegion>54286 Trier</wicri:noRegion>
</affiliation>
</author>
</analytic>
<series><title level="j" type="main">Lecture notes in computer science</title>
<idno type="ISSN">0302-9743</idno>
<imprint><date when="1999">1999</date>
</imprint>
</series>
</biblStruct>
</sourceDesc>
<seriesStmt><title level="j" type="main">Lecture notes in computer science</title>
<idno type="ISSN">0302-9743</idno>
</seriesStmt>
</fileDesc>
<profileDesc><textClass><keywords scheme="KwdEn" xml:lang="en"><term>Compiler optimization</term>
<term>Language processing</term>
<term>Parallel programming</term>
<term>Programming language</term>
<term>Shared memory systems</term>
</keywords>
<keywords scheme="Pascal" xml:lang="fr"><term>Traitement langage</term>
<term>Langage programmation</term>
<term>Programmation parallèle</term>
<term>Optimisation compilateur</term>
<term>Système mémoire partagée</term>
</keywords>
<keywords scheme="Wicri" type="topic" xml:lang="fr"><term>Langage de programmation</term>
</keywords>
</textClass>
</profileDesc>
</teiHeader>
<front><div type="abstract" xml:lang="en">ForkLight is an imperative, task-parallel programming language for massively parallel shared memory machines. It is based on ANSI C, follows the SPMD model of parallel program execution, provides a sequentially consistent shared memory, and supports dynamically nested parallelism. While no assumptions are made on uniformity of memory access time or instruction-level synchronicity of the underlying hardware, ForkLight offers a simple but powerful mechanism for coordination of parallel processes in the tradition and notation of PRAM algorithms: Beyond its asynchronous default execution mode, ForkLight offers a mode for control-synchronous execution that relates the program's block structure to parallel control flow. We give a scheme for compiling ForkLight to C with calls to a very small set of basic shared memory access operations like atomic fetch&add. This yields portability across parallel architectures and exploits the local optimizations of their native C compilers. Our implementation is publically available; performance results are reported. We also discuss translation to OpenMP.</div>
</front>
</TEI>
<affiliations><list><country><li>Allemagne</li>
</country>
</list>
<tree><country name="Allemagne"><noRegion><name sortKey="Kessler, C W" sort="Kessler, C W" uniqKey="Kessler C" first="C. W." last="Kessler">C. W. Kessler</name>
</noRegion>
<name sortKey="Seidl, H" sort="Seidl, H" uniqKey="Seidl H" first="H." last="Seidl">H. Seidl</name>
</country>
</tree>
</affiliations>
</record>
Pour manipuler ce document sous Unix (Dilib)
EXPLOR_STEP=$WICRI_ROOT/Wicri/Rhénanie/explor/UnivTrevesV1/Data/LNCS/Analysis
HfdSelect -h $EXPLOR_STEP/biblio.hfd -nk 000240 | SxmlIndent | more
Ou
HfdSelect -h $EXPLOR_AREA/Data/LNCS/Analysis/biblio.hfd -nk 000240 | SxmlIndent | more
Pour mettre un lien sur cette page dans le réseau Wicri
{{Explor lien |wiki= Wicri/Rhénanie |area= UnivTrevesV1 |flux= LNCS |étape= Analysis |type= RBID |clé= Pascal:99-0273968 |texte= ForkLight : A control-synchronous parallel programming language }}
This area was generated with Dilib version V0.6.31. |