<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:community="http://www.bibsonomy.org/ontologies/2008/05/community#" xmlns:foaf="http://xmlns.com/foaf/0.1/" xmlns:owl="http://www.w3.org/2002/07/owl#" xmlns:admin="http://webns.net/mvcb/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:cc="http://web.resource.org/cc/" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" xmlns:swrc="http://swrc.ontoware.org/ontology#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns="http://purl.org/rss/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xml:base="https://puma.ub.uni-stuttgart.de/tag/Task-based"><owl:Ontology rdf:about=""><rdfs:comment>PUMA publications for /tag/Task-based</rdfs:comment><owl:imports rdf:resource="http://swrc.ontoware.org/ontology/portal"/></owl:Ontology><rdf:Description rdf:about="https://puma.ub.uni-stuttgart.de/bibtex/2cb291e05a1a3bbb91a404b35dfb148a0/tpollinger"><owl:sameAs rdf:resource="/uri/bibtex/2cb291e05a1a3bbb91a404b35dfb148a0/tpollinger"/><rdf:type rdf:resource="http://swrc.ontoware.org/ontology#InProceedings"/><swrc:date>Thu Mar 24 16:12:08 CET 2022</swrc:date><swrc:booktitle>2021 {IEEE} International Parallel and Distributed Processing Symposium Workshops ({IPDPSW})</swrc:booktitle><swrc:pages>377--386</swrc:pages><swrc:title>Beyond Fork-Join: Integration of Performance Portable Kokkos Kernels with HPX</swrc:title><swrc:year>2021</swrc:year><swrc:keywords>Kokkos Performance Portability Task-based hpc myown {CUDA} {GPU} {HPX} </swrc:keywords><swrc:abstract>Between a widening range of {GPU} vendors and the trend of having more {GPUs} per compute node in supercomputers such as Summit, Perlmutter, Frontier and Aurora, developing performant yet portable distributed {HPC} applications becomes ever more challenging. Leveraging existing solutions like Kokkos for platform-independent code and {HPX} for distributing the application in a task-based fashion can alleviate these challenges. However, using such frameworks in the same application requires them to work together seamlessly. In this work we present an {HPX} Kokkos integration that works both ways: we can integrate {CPU} and {GPU} Kokkos kernels as {HPX} tasks and inversely use {HPX} worker threads to work on Kokkos kernels. Using {HPX} futures makes launching and synchronizing Kokkos kernels from multiple threads easy, allowing us to move away from the more traditional fork-join model. To evaluate our integrations we ported existing Vc and {CUDA} kernels within an existing {HPX} application, Octo-Tiger, to use Kokkos instead. We achieve comparable, or better, performance than with previous Vc and {CUDA} kernels, showing both the viability of our {HPX} Kokkos integration, as well as future-proofing Octo-Tiger for a wider range of potential machines. Furthermore, we introduce event polling for synchronizing {CUDA} kernels (or Kokkos kernels on the respective backend) achieving speedups over the previous solution using callbacks.</swrc:abstract><swrc:hasExtraField><swrc:Field swrc:value="2021 {IEEE} International Parallel and Distributed Processing Symposium Workshops ({IPDPSW})" swrc:key="eventtitle"/></swrc:hasExtraField><swrc:hasExtraField><swrc:Field swrc:value="Beyond Fork-Join" swrc:key="shorttitle"/></swrc:hasExtraField><swrc:hasExtraField><swrc:Field swrc:value="10.1109/IPDPSW52791.2021.00066" swrc:key="doi"/></swrc:hasExtraField><swrc:author><rdf:Seq><rdf:_1><swrc:Person swrc:name="Gregor Daiß"/></rdf:_1><rdf:_2><swrc:Person swrc:name="Mikael Simberg"/></rdf:_2><rdf:_3><swrc:Person swrc:name="Auriane Reverdell"/></rdf:_3><rdf:_4><swrc:Person swrc:name="John Biddiscombe"/></rdf:_4><rdf:_5><swrc:Person swrc:name="Theresa Pollinger"/></rdf:_5><rdf:_6><swrc:Person swrc:name="Hartmut Kaiser"/></rdf:_6><rdf:_7><swrc:Person swrc:name="Dirk Pflüger"/></rdf:_7></rdf:Seq></swrc:author></rdf:Description><foaf:Group rdf:about="https://puma.ub.uni-stuttgart.de/tag/Task-based"><foaf:name>Task-based</foaf:name><description>Community for tag(s) Task-based</description></foaf:Group></rdf:RDF>