Pattern-Based Programming Abstractions for Heterogeneous Parallel Computing.

Saved in:
Bibliographic Details
Superior document:Linköping Studies in Science and Technology. Dissertations Series ; v.2205
:
Place / Publishing House:Linköping : : Linkopings Universitet,, 2021.
{copy}2022.
Year of Publication:2021
Edition:1st ed.
Language:English
Series:Linköping Studies in Science and Technology. Dissertations Series
Online Access:
Physical Description:1 online resource (292 pages)
Tags: Add Tag
No Tags, Be the first to tag this record!
id 5006887234
ctrlnum (MiAaPQ)5006887234
(Au-PeEL)EBL6887234
(OCoLC)1298391047
collection bib_alma
record_format marc
spelling Ernstsson, August.
Pattern-Based Programming Abstractions for Heterogeneous Parallel Computing.
1st ed.
Linköping : Linkopings Universitet, 2021.
{copy}2022.
1 online resource (292 pages)
text txt rdacontent
computer c rdamedia
online resource cr rdacarrier
Linköping Studies in Science and Technology. Dissertations Series ; v.2205
Intro -- Populärvetenskaplig sammanfattning -- Abstract -- Acknowledgments -- Contents -- Introduction -- Aims and research questions -- Published work behind this thesis -- Other work behind this thesis -- Structure -- Background and related work -- Motivation -- High-level parallel programming -- Skeleton programming -- Related work -- GrPPI -- Musket -- Kokkos -- SYCL -- MLIR -- StarPU -- C++ AMP, and other industry efforts -- Other related frameworks, libraries, and toolchains -- Independent surveys -- Earlier related work on SkePU -- SkePU overview -- Basic constructs -- Backend architecture -- History -- SkePU 2 design principles -- SkePU 3 design principles -- Skeleton set -- Skeleton set -- Map skeleton -- Freely accessible containers inside user functions -- Variadic type signatures -- Multi-valued return -- Index-dependent computations -- MapPairs skeleton -- MapOverlap skeleton -- Edge handling modes -- Update modes -- Reduce skeleton -- One-dimensional reductions -- Two-dimensional reductions -- Scan skeleton -- MapReduce skeleton -- MapPairsReduce skeleton -- Call skeleton -- User functions -- User functions as lambda expressions -- User types -- User constants -- Strided skeletons -- Strides Map, MapPairs, and their reduce variants -- Strides in MapOverlap -- Data representation with smart data-containers -- Smart data-containers -- Container indexing -- Container proxies -- MatRow proxy -- MatCol proxy -- Region proxy -- Memory consistency model -- External scope -- Standard library -- Deterministic random number generation -- Complex numbers -- Linear algebra -- Image filtering and visualization -- Benchmark utilities -- High-level consistent input and output -- General utilities -- Implementation -- Implementation overview -- Language embedding and type safety -- Improved type safety from SkePU 1 -- Source-to-source compiler.
Backends -- Sequential CPU backend -- Multi-core CPU backend: OpenMP -- GPU backends: OpenCL and CUDA -- C and Fortran language bindings -- Continuous integration and testing -- Dependencies -- Availability -- Hybrid CPU-GPU skeleton execution -- Introduction -- Workload partitioning and implementation -- StarPU backend implementation -- Auto-tuning -- Skeleton programming on large-scale cluster systems -- Background -- StarPU-MPI backend -- GPI backend -- GASPI and GPI -- Implementation -- Design -- Synchonization and state tracking -- Consistency model and double buffering -- Communication pattern -- Data representation -- Data transfers and caching -- Conclusions -- Extending smart data-containers for data locality awareness -- Introduction -- Large-scale data processing with MapReduce and Spark -- MapReduce -- Spark -- Lazily evaluated skeletons with tiling -- Basic approach and benefits -- Backend selection -- Loop optimization -- Evaluation points -- Further application areas -- Implementation -- Lazy tiling for stencil computations -- Applications and comparison to kernel fusion -- Polynomial evaluation using Horner's method -- Exponentiation by repeated squaring -- Heat propagation -- Related work -- High-level skeleton fusion -- Comparison to lineages -- Kernel fusion -- Types of fusions -- Example: N-body simulation -- Future work -- Multi-variant user functions -- Introduction -- Idea and implementation -- Use cases -- Vectorization example -- Generalized multi-variant components with the Call skeleton -- Other use cases -- Related work -- A deterministic portable parallel pseudo-random number generator -- Introduction -- Determinism in heterogeneous parallel computing -- Parallel pseudo-random number generation -- Previous manual parallelization of PRNG in SkePU programs -- Monte Carlo pi calculation-index-based scrambling.
Markov Chain Monte Carlo methods in LQCD-PRNG with explicit state -- Designing a deterministic PRNG for SkePU -- Global synchronization -- Stream splitting -- State forwarding -- Optimizing long or iterated skeleton chains by pre-forwarding -- API extension design -- Related work -- Towards a modernized auto-tuner -- Background -- SkePU variadic tuner design -- Implementation -- Multi-dimensional argument sequences -- Sampler -- Execution plan and persistence -- Future work -- Evaluation results -- SkePU usability evaluation -- SkePU 2 prototype survey -- SkePU 3 survey -- Initial SkePU 2 performance evaluation -- Performance evaluation of lineages -- Sequences of Maps -- Heat propagation -- Hybrid backend -- Single skeleton evaluation -- Generic application evaluation -- Comparison to dynamic hybrid scheduling using StarPU -- Evaluation of multi-variant user functions -- Vectorization -- Median filtering -- Application benchmarks of SkePU 3 -- Libsolve ODE solver -- N-body -- Blackscholes and Streamcluster -- Brain simulation -- CO2 capture -- Supercapacitor simulation -- Conjugate gradient -- Experimental evaluation of deterministic PRNG -- Monte-Carlo Pi approximation -- LQCD Mini-Application -- Miller-Rabin primality testing -- Natural noise generation -- Programmability evaluation -- SkePU-GPI cluster backend -- Microbenchmarks of SkePU 3 -- OpenMP scheduling modes -- SkePU memory consistency model -- Variadic tuner prototype -- High-level skeleton fusion -- Limitations and future work -- Limitations -- Applicability of data-parallel patterns -- Dynamic data structures -- Limitations of language embedding -- Future work -- Further backend targets: reconfigurable accelerators -- Extending the parallel pattern set: stream parallelization -- Testing, debugging, and visualization -- Higher-level language interface -- Conclusions -- Bibliography.
Additions and changes from the licentiate thesis -- New contributions -- Other changes -- Definitions -- Abbreviations -- Domain-specific terminology -- SkePU-specific terminology -- SkePU-BLAS API -- Application source code samples -- N-body simulation -- Game of life -- Conjugate gradient -- CO2 capture -- Dr-sammanst.
Description based on publisher supplied metadata and other sources.
Electronic reproduction. Ann Arbor, Michigan : ProQuest Ebook Central, 2024. Available via World Wide Web. Access may be limited to ProQuest Ebook Central affiliated libraries.
Electronic books.
Print version: Ernstsson, August Pattern-Based Programming Abstractions for Heterogeneous Parallel Computing Linköping : Linkopings Universitet,c2021 9789179291952
ProQuest (Firm)
Linköping Studies in Science and Technology. Dissertations Series
https://ebookcentral.proquest.com/lib/oeawat/detail.action?docID=6887234 Click to View
language English
format eBook
author Ernstsson, August.
spellingShingle Ernstsson, August.
Pattern-Based Programming Abstractions for Heterogeneous Parallel Computing.
Linköping Studies in Science and Technology. Dissertations Series ;
Intro -- Populärvetenskaplig sammanfattning -- Abstract -- Acknowledgments -- Contents -- Introduction -- Aims and research questions -- Published work behind this thesis -- Other work behind this thesis -- Structure -- Background and related work -- Motivation -- High-level parallel programming -- Skeleton programming -- Related work -- GrPPI -- Musket -- Kokkos -- SYCL -- MLIR -- StarPU -- C++ AMP, and other industry efforts -- Other related frameworks, libraries, and toolchains -- Independent surveys -- Earlier related work on SkePU -- SkePU overview -- Basic constructs -- Backend architecture -- History -- SkePU 2 design principles -- SkePU 3 design principles -- Skeleton set -- Skeleton set -- Map skeleton -- Freely accessible containers inside user functions -- Variadic type signatures -- Multi-valued return -- Index-dependent computations -- MapPairs skeleton -- MapOverlap skeleton -- Edge handling modes -- Update modes -- Reduce skeleton -- One-dimensional reductions -- Two-dimensional reductions -- Scan skeleton -- MapReduce skeleton -- MapPairsReduce skeleton -- Call skeleton -- User functions -- User functions as lambda expressions -- User types -- User constants -- Strided skeletons -- Strides Map, MapPairs, and their reduce variants -- Strides in MapOverlap -- Data representation with smart data-containers -- Smart data-containers -- Container indexing -- Container proxies -- MatRow proxy -- MatCol proxy -- Region proxy -- Memory consistency model -- External scope -- Standard library -- Deterministic random number generation -- Complex numbers -- Linear algebra -- Image filtering and visualization -- Benchmark utilities -- High-level consistent input and output -- General utilities -- Implementation -- Implementation overview -- Language embedding and type safety -- Improved type safety from SkePU 1 -- Source-to-source compiler.
Backends -- Sequential CPU backend -- Multi-core CPU backend: OpenMP -- GPU backends: OpenCL and CUDA -- C and Fortran language bindings -- Continuous integration and testing -- Dependencies -- Availability -- Hybrid CPU-GPU skeleton execution -- Introduction -- Workload partitioning and implementation -- StarPU backend implementation -- Auto-tuning -- Skeleton programming on large-scale cluster systems -- Background -- StarPU-MPI backend -- GPI backend -- GASPI and GPI -- Implementation -- Design -- Synchonization and state tracking -- Consistency model and double buffering -- Communication pattern -- Data representation -- Data transfers and caching -- Conclusions -- Extending smart data-containers for data locality awareness -- Introduction -- Large-scale data processing with MapReduce and Spark -- MapReduce -- Spark -- Lazily evaluated skeletons with tiling -- Basic approach and benefits -- Backend selection -- Loop optimization -- Evaluation points -- Further application areas -- Implementation -- Lazy tiling for stencil computations -- Applications and comparison to kernel fusion -- Polynomial evaluation using Horner's method -- Exponentiation by repeated squaring -- Heat propagation -- Related work -- High-level skeleton fusion -- Comparison to lineages -- Kernel fusion -- Types of fusions -- Example: N-body simulation -- Future work -- Multi-variant user functions -- Introduction -- Idea and implementation -- Use cases -- Vectorization example -- Generalized multi-variant components with the Call skeleton -- Other use cases -- Related work -- A deterministic portable parallel pseudo-random number generator -- Introduction -- Determinism in heterogeneous parallel computing -- Parallel pseudo-random number generation -- Previous manual parallelization of PRNG in SkePU programs -- Monte Carlo pi calculation-index-based scrambling.
Markov Chain Monte Carlo methods in LQCD-PRNG with explicit state -- Designing a deterministic PRNG for SkePU -- Global synchronization -- Stream splitting -- State forwarding -- Optimizing long or iterated skeleton chains by pre-forwarding -- API extension design -- Related work -- Towards a modernized auto-tuner -- Background -- SkePU variadic tuner design -- Implementation -- Multi-dimensional argument sequences -- Sampler -- Execution plan and persistence -- Future work -- Evaluation results -- SkePU usability evaluation -- SkePU 2 prototype survey -- SkePU 3 survey -- Initial SkePU 2 performance evaluation -- Performance evaluation of lineages -- Sequences of Maps -- Heat propagation -- Hybrid backend -- Single skeleton evaluation -- Generic application evaluation -- Comparison to dynamic hybrid scheduling using StarPU -- Evaluation of multi-variant user functions -- Vectorization -- Median filtering -- Application benchmarks of SkePU 3 -- Libsolve ODE solver -- N-body -- Blackscholes and Streamcluster -- Brain simulation -- CO2 capture -- Supercapacitor simulation -- Conjugate gradient -- Experimental evaluation of deterministic PRNG -- Monte-Carlo Pi approximation -- LQCD Mini-Application -- Miller-Rabin primality testing -- Natural noise generation -- Programmability evaluation -- SkePU-GPI cluster backend -- Microbenchmarks of SkePU 3 -- OpenMP scheduling modes -- SkePU memory consistency model -- Variadic tuner prototype -- High-level skeleton fusion -- Limitations and future work -- Limitations -- Applicability of data-parallel patterns -- Dynamic data structures -- Limitations of language embedding -- Future work -- Further backend targets: reconfigurable accelerators -- Extending the parallel pattern set: stream parallelization -- Testing, debugging, and visualization -- Higher-level language interface -- Conclusions -- Bibliography.
Additions and changes from the licentiate thesis -- New contributions -- Other changes -- Definitions -- Abbreviations -- Domain-specific terminology -- SkePU-specific terminology -- SkePU-BLAS API -- Application source code samples -- N-body simulation -- Game of life -- Conjugate gradient -- CO2 capture -- Dr-sammanst.
author_facet Ernstsson, August.
author_variant a e ae
author_sort Ernstsson, August.
title Pattern-Based Programming Abstractions for Heterogeneous Parallel Computing.
title_full Pattern-Based Programming Abstractions for Heterogeneous Parallel Computing.
title_fullStr Pattern-Based Programming Abstractions for Heterogeneous Parallel Computing.
title_full_unstemmed Pattern-Based Programming Abstractions for Heterogeneous Parallel Computing.
title_auth Pattern-Based Programming Abstractions for Heterogeneous Parallel Computing.
title_new Pattern-Based Programming Abstractions for Heterogeneous Parallel Computing.
title_sort pattern-based programming abstractions for heterogeneous parallel computing.
series Linköping Studies in Science and Technology. Dissertations Series ;
series2 Linköping Studies in Science and Technology. Dissertations Series ;
publisher Linkopings Universitet,
publishDate 2021
physical 1 online resource (292 pages)
edition 1st ed.
contents Intro -- Populärvetenskaplig sammanfattning -- Abstract -- Acknowledgments -- Contents -- Introduction -- Aims and research questions -- Published work behind this thesis -- Other work behind this thesis -- Structure -- Background and related work -- Motivation -- High-level parallel programming -- Skeleton programming -- Related work -- GrPPI -- Musket -- Kokkos -- SYCL -- MLIR -- StarPU -- C++ AMP, and other industry efforts -- Other related frameworks, libraries, and toolchains -- Independent surveys -- Earlier related work on SkePU -- SkePU overview -- Basic constructs -- Backend architecture -- History -- SkePU 2 design principles -- SkePU 3 design principles -- Skeleton set -- Skeleton set -- Map skeleton -- Freely accessible containers inside user functions -- Variadic type signatures -- Multi-valued return -- Index-dependent computations -- MapPairs skeleton -- MapOverlap skeleton -- Edge handling modes -- Update modes -- Reduce skeleton -- One-dimensional reductions -- Two-dimensional reductions -- Scan skeleton -- MapReduce skeleton -- MapPairsReduce skeleton -- Call skeleton -- User functions -- User functions as lambda expressions -- User types -- User constants -- Strided skeletons -- Strides Map, MapPairs, and their reduce variants -- Strides in MapOverlap -- Data representation with smart data-containers -- Smart data-containers -- Container indexing -- Container proxies -- MatRow proxy -- MatCol proxy -- Region proxy -- Memory consistency model -- External scope -- Standard library -- Deterministic random number generation -- Complex numbers -- Linear algebra -- Image filtering and visualization -- Benchmark utilities -- High-level consistent input and output -- General utilities -- Implementation -- Implementation overview -- Language embedding and type safety -- Improved type safety from SkePU 1 -- Source-to-source compiler.
Backends -- Sequential CPU backend -- Multi-core CPU backend: OpenMP -- GPU backends: OpenCL and CUDA -- C and Fortran language bindings -- Continuous integration and testing -- Dependencies -- Availability -- Hybrid CPU-GPU skeleton execution -- Introduction -- Workload partitioning and implementation -- StarPU backend implementation -- Auto-tuning -- Skeleton programming on large-scale cluster systems -- Background -- StarPU-MPI backend -- GPI backend -- GASPI and GPI -- Implementation -- Design -- Synchonization and state tracking -- Consistency model and double buffering -- Communication pattern -- Data representation -- Data transfers and caching -- Conclusions -- Extending smart data-containers for data locality awareness -- Introduction -- Large-scale data processing with MapReduce and Spark -- MapReduce -- Spark -- Lazily evaluated skeletons with tiling -- Basic approach and benefits -- Backend selection -- Loop optimization -- Evaluation points -- Further application areas -- Implementation -- Lazy tiling for stencil computations -- Applications and comparison to kernel fusion -- Polynomial evaluation using Horner's method -- Exponentiation by repeated squaring -- Heat propagation -- Related work -- High-level skeleton fusion -- Comparison to lineages -- Kernel fusion -- Types of fusions -- Example: N-body simulation -- Future work -- Multi-variant user functions -- Introduction -- Idea and implementation -- Use cases -- Vectorization example -- Generalized multi-variant components with the Call skeleton -- Other use cases -- Related work -- A deterministic portable parallel pseudo-random number generator -- Introduction -- Determinism in heterogeneous parallel computing -- Parallel pseudo-random number generation -- Previous manual parallelization of PRNG in SkePU programs -- Monte Carlo pi calculation-index-based scrambling.
Markov Chain Monte Carlo methods in LQCD-PRNG with explicit state -- Designing a deterministic PRNG for SkePU -- Global synchronization -- Stream splitting -- State forwarding -- Optimizing long or iterated skeleton chains by pre-forwarding -- API extension design -- Related work -- Towards a modernized auto-tuner -- Background -- SkePU variadic tuner design -- Implementation -- Multi-dimensional argument sequences -- Sampler -- Execution plan and persistence -- Future work -- Evaluation results -- SkePU usability evaluation -- SkePU 2 prototype survey -- SkePU 3 survey -- Initial SkePU 2 performance evaluation -- Performance evaluation of lineages -- Sequences of Maps -- Heat propagation -- Hybrid backend -- Single skeleton evaluation -- Generic application evaluation -- Comparison to dynamic hybrid scheduling using StarPU -- Evaluation of multi-variant user functions -- Vectorization -- Median filtering -- Application benchmarks of SkePU 3 -- Libsolve ODE solver -- N-body -- Blackscholes and Streamcluster -- Brain simulation -- CO2 capture -- Supercapacitor simulation -- Conjugate gradient -- Experimental evaluation of deterministic PRNG -- Monte-Carlo Pi approximation -- LQCD Mini-Application -- Miller-Rabin primality testing -- Natural noise generation -- Programmability evaluation -- SkePU-GPI cluster backend -- Microbenchmarks of SkePU 3 -- OpenMP scheduling modes -- SkePU memory consistency model -- Variadic tuner prototype -- High-level skeleton fusion -- Limitations and future work -- Limitations -- Applicability of data-parallel patterns -- Dynamic data structures -- Limitations of language embedding -- Future work -- Further backend targets: reconfigurable accelerators -- Extending the parallel pattern set: stream parallelization -- Testing, debugging, and visualization -- Higher-level language interface -- Conclusions -- Bibliography.
Additions and changes from the licentiate thesis -- New contributions -- Other changes -- Definitions -- Abbreviations -- Domain-specific terminology -- SkePU-specific terminology -- SkePU-BLAS API -- Application source code samples -- N-body simulation -- Game of life -- Conjugate gradient -- CO2 capture -- Dr-sammanst.
isbn 9789179291952
genre Electronic books.
genre_facet Electronic books.
url https://ebookcentral.proquest.com/lib/oeawat/detail.action?docID=6887234
illustrated Not Illustrated
oclc_num 1298391047
work_keys_str_mv AT ernstssonaugust patternbasedprogrammingabstractionsforheterogeneousparallelcomputing
status_str n
ids_txt_mv (MiAaPQ)5006887234
(Au-PeEL)EBL6887234
(OCoLC)1298391047
carrierType_str_mv cr
hierarchy_parent_title Linköping Studies in Science and Technology. Dissertations Series ; v.2205
is_hierarchy_title Pattern-Based Programming Abstractions for Heterogeneous Parallel Computing.
container_title Linköping Studies in Science and Technology. Dissertations Series ; v.2205
marc_error Info : MARC8 translation shorter than ISO-8859-1, choosing MARC8. --- [ 856 : z ]
_version_ 1792331062163013632
fullrecord <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>07674nam a22004213i 4500</leader><controlfield tag="001">5006887234</controlfield><controlfield tag="003">MiAaPQ</controlfield><controlfield tag="005">20240229073845.0</controlfield><controlfield tag="006">m o d | </controlfield><controlfield tag="007">cr cnu||||||||</controlfield><controlfield tag="008">240229s2021 xx o ||||0 eng d</controlfield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9789179291952</subfield><subfield code="q">(electronic bk.)</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="z">9789179291952</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(MiAaPQ)5006887234</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(Au-PeEL)EBL6887234</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)1298391047</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">MiAaPQ</subfield><subfield code="b">eng</subfield><subfield code="e">rda</subfield><subfield code="e">pn</subfield><subfield code="c">MiAaPQ</subfield><subfield code="d">MiAaPQ</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Ernstsson, August.</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Pattern-Based Programming Abstractions for Heterogeneous Parallel Computing.</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">1st ed.</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Linköping :</subfield><subfield code="b">Linkopings Universitet,</subfield><subfield code="c">2021.</subfield></datafield><datafield tag="264" ind1=" " ind2="4"><subfield code="c">{copy}2022.</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">1 online resource (292 pages)</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="a">text</subfield><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="a">computer</subfield><subfield code="b">c</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="a">online resource</subfield><subfield code="b">cr</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="490" ind1="1" ind2=" "><subfield code="a">Linköping Studies in Science and Technology. Dissertations Series ;</subfield><subfield code="v">v.2205</subfield></datafield><datafield tag="505" ind1="0" ind2=" "><subfield code="a">Intro -- Populärvetenskaplig sammanfattning -- Abstract -- Acknowledgments -- Contents -- Introduction -- Aims and research questions -- Published work behind this thesis -- Other work behind this thesis -- Structure -- Background and related work -- Motivation -- High-level parallel programming -- Skeleton programming -- Related work -- GrPPI -- Musket -- Kokkos -- SYCL -- MLIR -- StarPU -- C++ AMP, and other industry efforts -- Other related frameworks, libraries, and toolchains -- Independent surveys -- Earlier related work on SkePU -- SkePU overview -- Basic constructs -- Backend architecture -- History -- SkePU 2 design principles -- SkePU 3 design principles -- Skeleton set -- Skeleton set -- Map skeleton -- Freely accessible containers inside user functions -- Variadic type signatures -- Multi-valued return -- Index-dependent computations -- MapPairs skeleton -- MapOverlap skeleton -- Edge handling modes -- Update modes -- Reduce skeleton -- One-dimensional reductions -- Two-dimensional reductions -- Scan skeleton -- MapReduce skeleton -- MapPairsReduce skeleton -- Call skeleton -- User functions -- User functions as lambda expressions -- User types -- User constants -- Strided skeletons -- Strides Map, MapPairs, and their reduce variants -- Strides in MapOverlap -- Data representation with smart data-containers -- Smart data-containers -- Container indexing -- Container proxies -- MatRow proxy -- MatCol proxy -- Region proxy -- Memory consistency model -- External scope -- Standard library -- Deterministic random number generation -- Complex numbers -- Linear algebra -- Image filtering and visualization -- Benchmark utilities -- High-level consistent input and output -- General utilities -- Implementation -- Implementation overview -- Language embedding and type safety -- Improved type safety from SkePU 1 -- Source-to-source compiler.</subfield></datafield><datafield tag="505" ind1="8" ind2=" "><subfield code="a">Backends -- Sequential CPU backend -- Multi-core CPU backend: OpenMP -- GPU backends: OpenCL and CUDA -- C and Fortran language bindings -- Continuous integration and testing -- Dependencies -- Availability -- Hybrid CPU-GPU skeleton execution -- Introduction -- Workload partitioning and implementation -- StarPU backend implementation -- Auto-tuning -- Skeleton programming on large-scale cluster systems -- Background -- StarPU-MPI backend -- GPI backend -- GASPI and GPI -- Implementation -- Design -- Synchonization and state tracking -- Consistency model and double buffering -- Communication pattern -- Data representation -- Data transfers and caching -- Conclusions -- Extending smart data-containers for data locality awareness -- Introduction -- Large-scale data processing with MapReduce and Spark -- MapReduce -- Spark -- Lazily evaluated skeletons with tiling -- Basic approach and benefits -- Backend selection -- Loop optimization -- Evaluation points -- Further application areas -- Implementation -- Lazy tiling for stencil computations -- Applications and comparison to kernel fusion -- Polynomial evaluation using Horner's method -- Exponentiation by repeated squaring -- Heat propagation -- Related work -- High-level skeleton fusion -- Comparison to lineages -- Kernel fusion -- Types of fusions -- Example: N-body simulation -- Future work -- Multi-variant user functions -- Introduction -- Idea and implementation -- Use cases -- Vectorization example -- Generalized multi-variant components with the Call skeleton -- Other use cases -- Related work -- A deterministic portable parallel pseudo-random number generator -- Introduction -- Determinism in heterogeneous parallel computing -- Parallel pseudo-random number generation -- Previous manual parallelization of PRNG in SkePU programs -- Monte Carlo pi calculation-index-based scrambling.</subfield></datafield><datafield tag="505" ind1="8" ind2=" "><subfield code="a">Markov Chain Monte Carlo methods in LQCD-PRNG with explicit state -- Designing a deterministic PRNG for SkePU -- Global synchronization -- Stream splitting -- State forwarding -- Optimizing long or iterated skeleton chains by pre-forwarding -- API extension design -- Related work -- Towards a modernized auto-tuner -- Background -- SkePU variadic tuner design -- Implementation -- Multi-dimensional argument sequences -- Sampler -- Execution plan and persistence -- Future work -- Evaluation results -- SkePU usability evaluation -- SkePU 2 prototype survey -- SkePU 3 survey -- Initial SkePU 2 performance evaluation -- Performance evaluation of lineages -- Sequences of Maps -- Heat propagation -- Hybrid backend -- Single skeleton evaluation -- Generic application evaluation -- Comparison to dynamic hybrid scheduling using StarPU -- Evaluation of multi-variant user functions -- Vectorization -- Median filtering -- Application benchmarks of SkePU 3 -- Libsolve ODE solver -- N-body -- Blackscholes and Streamcluster -- Brain simulation -- CO2 capture -- Supercapacitor simulation -- Conjugate gradient -- Experimental evaluation of deterministic PRNG -- Monte-Carlo Pi approximation -- LQCD Mini-Application -- Miller-Rabin primality testing -- Natural noise generation -- Programmability evaluation -- SkePU-GPI cluster backend -- Microbenchmarks of SkePU 3 -- OpenMP scheduling modes -- SkePU memory consistency model -- Variadic tuner prototype -- High-level skeleton fusion -- Limitations and future work -- Limitations -- Applicability of data-parallel patterns -- Dynamic data structures -- Limitations of language embedding -- Future work -- Further backend targets: reconfigurable accelerators -- Extending the parallel pattern set: stream parallelization -- Testing, debugging, and visualization -- Higher-level language interface -- Conclusions -- Bibliography.</subfield></datafield><datafield tag="505" ind1="8" ind2=" "><subfield code="a">Additions and changes from the licentiate thesis -- New contributions -- Other changes -- Definitions -- Abbreviations -- Domain-specific terminology -- SkePU-specific terminology -- SkePU-BLAS API -- Application source code samples -- N-body simulation -- Game of life -- Conjugate gradient -- CO2 capture -- Dr-sammanst.</subfield></datafield><datafield tag="588" ind1=" " ind2=" "><subfield code="a">Description based on publisher supplied metadata and other sources.</subfield></datafield><datafield tag="590" ind1=" " ind2=" "><subfield code="a">Electronic reproduction. Ann Arbor, Michigan : ProQuest Ebook Central, 2024. Available via World Wide Web. Access may be limited to ProQuest Ebook Central affiliated libraries. </subfield></datafield><datafield tag="655" ind1=" " ind2="4"><subfield code="a">Electronic books.</subfield></datafield><datafield tag="776" ind1="0" ind2="8"><subfield code="i">Print version:</subfield><subfield code="a">Ernstsson, August</subfield><subfield code="t">Pattern-Based Programming Abstractions for Heterogeneous Parallel Computing</subfield><subfield code="d">Linköping : Linkopings Universitet,c2021</subfield><subfield code="z">9789179291952</subfield></datafield><datafield tag="797" ind1="2" ind2=" "><subfield code="a">ProQuest (Firm)</subfield></datafield><datafield tag="830" ind1=" " ind2="0"><subfield code="a">Linköping Studies in Science and Technology. Dissertations Series</subfield></datafield><datafield tag="856" ind1="4" ind2="0"><subfield code="u">https://ebookcentral.proquest.com/lib/oeawat/detail.action?docID=6887234</subfield><subfield code="z">Click to View</subfield></datafield></record></collection>