{"id":"https://openalex.org/W3013350250","doi":"https://doi.org/10.1007/978-3-030-44728-1_7","title":"Role-Oriented Code Generation in an Engine for Solving Hyperbolic PDE Systems","display_name":"Role-Oriented Code Generation in an Engine for Solving Hyperbolic PDE Systems","publication_year":2020,"publication_date":"2020-10-19","ids":{"openalex":"https://openalex.org/W3013350250","doi":"https://doi.org/10.1007/978-3-030-44728-1_7","mag":"3013350250"},"language":"en","primary_location":{"id":"pmh:oai:mediatum.ub.tum.de:node/1524011","is_oa":true,"landing_page_url":"https://link.springer.com/chapter/10.1007/978-3-030-44728-1_7","pdf_url":null,"source":{"id":"https://openalex.org/S4377196330","display_name":"mediaTUM  (Technical University of Munich)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I62916508","host_organization_name":"Technical University of Munich","host_organization_lineage":["https://openalex.org/I62916508"],"host_organization_lineage_names":[],"type":"repository"},"license":"other-oa","license_id":"https://openalex.org/licenses/other-oa","version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"","raw_type":"article"},"type":"book-chapter","indexed_in":[],"open_access":{"is_oa":true,"oa_status":"green","oa_url":"https://link.springer.com/chapter/10.1007/978-3-030-44728-1_7","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5072847325","display_name":"Jean-Matthieu Gallard","orcid":null},"institutions":[{"id":"https://openalex.org/I62916508","display_name":"Technical University of Munich","ror":"https://ror.org/02kkvpp62","country_code":"DE","type":"education","lineage":["https://openalex.org/I62916508"]}],"countries":["DE"],"is_corresponding":true,"raw_author_name":"Jean-Matthieu Gallard; Lukas Krenz; Leonhard Rannabauer; Anne Reinarz; Michael Bader","raw_affiliation_strings":["Department of Informatics, Technical University of Munich, Munich, Germany"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Department of Informatics, Technical University of Munich, Munich, Germany","institution_ids":["https://openalex.org/I62916508"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":1,"corresponding_author_ids":["https://openalex.org/A5072847325"],"corresponding_institution_ids":["https://openalex.org/I62916508"],"apc_list":null,"apc_paid":null,"fwci":0.0,"has_fulltext":false,"cited_by_count":3,"citation_normalized_percentile":{"value":0.04436424,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":90,"max":96},"biblio":{"volume":null,"issue":null,"first_page":null,"last_page":null},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10715","display_name":"Distributed and Parallel Computing Systems","score":0.992900013923645,"subfield":{"id":"https://openalex.org/subfields/1705","display_name":"Computer Networks and Communications"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},"topics":[{"id":"https://openalex.org/T10715","display_name":"Distributed and Parallel Computing Systems","score":0.992900013923645,"subfield":{"id":"https://openalex.org/subfields/1705","display_name":"Computer Networks and Communications"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10173","display_name":"Computational Fluid Dynamics and Aerodynamics","score":0.9904000163078308,"subfield":{"id":"https://openalex.org/subfields/2206","display_name":"Computational Mechanics"},"field":{"id":"https://openalex.org/fields/22","display_name":"Engineering"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.9868000149726868,"subfield":{"id":"https://openalex.org/subfields/1708","display_name":"Hardware and Architecture"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/code-generation","display_name":"Code generation","score":0.8023207187652588},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.7943108081817627},{"id":"https://openalex.org/keywords/solver","display_name":"Solver","score":0.7154253721237183},{"id":"https://openalex.org/keywords/template","display_name":"Template","score":0.6759536862373352},{"id":"https://openalex.org/keywords/compiler","display_name":"Compiler","score":0.6135936379432678},{"id":"https://openalex.org/keywords/code","display_name":"Code (set theory)","score":0.5045257806777954},{"id":"https://openalex.org/keywords/vectorization","display_name":"Vectorization (mathematics)","score":0.49584946036338806},{"id":"https://openalex.org/keywords/scheme","display_name":"Scheme (mathematics)","score":0.4846975803375244},{"id":"https://openalex.org/keywords/kernel","display_name":"Kernel (algebra)","score":0.472190260887146},{"id":"https://openalex.org/keywords/simd","display_name":"SIMD","score":0.4536539614200592},{"id":"https://openalex.org/keywords/domain","display_name":"Domain (mathematical analysis)","score":0.41655418276786804},{"id":"https://openalex.org/keywords/domain-specific-language","display_name":"Domain-specific language","score":0.4109596610069275},{"id":"https://openalex.org/keywords/parallel-computing","display_name":"Parallel computing","score":0.3619968891143799},{"id":"https://openalex.org/keywords/computer-engineering","display_name":"Computer engineering","score":0.3515908718109131},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.3390834927558899},{"id":"https://openalex.org/keywords/computer-architecture","display_name":"Computer architecture","score":0.33512938022613525},{"id":"https://openalex.org/keywords/software-engineering","display_name":"Software engineering","score":0.3286316990852356},{"id":"https://openalex.org/keywords/operating-system","display_name":"Operating system","score":0.15825146436691284}],"concepts":[{"id":"https://openalex.org/C133162039","wikidata":"https://www.wikidata.org/wiki/Q1061077","display_name":"Code generation","level":3,"score":0.8023207187652588},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.7943108081817627},{"id":"https://openalex.org/C2778770139","wikidata":"https://www.wikidata.org/wiki/Q1966904","display_name":"Solver","level":2,"score":0.7154253721237183},{"id":"https://openalex.org/C82714645","wikidata":"https://www.wikidata.org/wiki/Q438331","display_name":"Template","level":2,"score":0.6759536862373352},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.6135936379432678},{"id":"https://openalex.org/C2776760102","wikidata":"https://www.wikidata.org/wiki/Q5139990","display_name":"Code (set theory)","level":3,"score":0.5045257806777954},{"id":"https://openalex.org/C41681595","wikidata":"https://www.wikidata.org/wiki/Q7917855","display_name":"Vectorization (mathematics)","level":2,"score":0.49584946036338806},{"id":"https://openalex.org/C77618280","wikidata":"https://www.wikidata.org/wiki/Q1155772","display_name":"Scheme (mathematics)","level":2,"score":0.4846975803375244},{"id":"https://openalex.org/C74193536","wikidata":"https://www.wikidata.org/wiki/Q574844","display_name":"Kernel (algebra)","level":2,"score":0.472190260887146},{"id":"https://openalex.org/C150552126","wikidata":"https://www.wikidata.org/wiki/Q339387","display_name":"SIMD","level":2,"score":0.4536539614200592},{"id":"https://openalex.org/C36503486","wikidata":"https://www.wikidata.org/wiki/Q11235244","display_name":"Domain (mathematical analysis)","level":2,"score":0.41655418276786804},{"id":"https://openalex.org/C135257023","wikidata":"https://www.wikidata.org/wiki/Q691358","display_name":"Domain-specific language","level":2,"score":0.4109596610069275},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.3619968891143799},{"id":"https://openalex.org/C113775141","wikidata":"https://www.wikidata.org/wiki/Q428691","display_name":"Computer engineering","level":1,"score":0.3515908718109131},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.3390834927558899},{"id":"https://openalex.org/C118524514","wikidata":"https://www.wikidata.org/wiki/Q173212","display_name":"Computer architecture","level":1,"score":0.33512938022613525},{"id":"https://openalex.org/C115903868","wikidata":"https://www.wikidata.org/wiki/Q80993","display_name":"Software engineering","level":1,"score":0.3286316990852356},{"id":"https://openalex.org/C111919701","wikidata":"https://www.wikidata.org/wiki/Q9135","display_name":"Operating system","level":1,"score":0.15825146436691284},{"id":"https://openalex.org/C26517878","wikidata":"https://www.wikidata.org/wiki/Q228039","display_name":"Key (lock)","level":2,"score":0.0},{"id":"https://openalex.org/C114614502","wikidata":"https://www.wikidata.org/wiki/Q76592","display_name":"Combinatorics","level":1,"score":0.0},{"id":"https://openalex.org/C177264268","wikidata":"https://www.wikidata.org/wiki/Q1514741","display_name":"Set (abstract data type)","level":2,"score":0.0},{"id":"https://openalex.org/C134306372","wikidata":"https://www.wikidata.org/wiki/Q7754","display_name":"Mathematical analysis","level":1,"score":0.0},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"pmh:oai:mediatum.ub.tum.de:node/1524011","is_oa":true,"landing_page_url":"https://link.springer.com/chapter/10.1007/978-3-030-44728-1_7","pdf_url":null,"source":{"id":"https://openalex.org/S4377196330","display_name":"mediaTUM  (Technical University of Munich)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I62916508","host_organization_name":"Technical University of Munich","host_organization_lineage":["https://openalex.org/I62916508"],"host_organization_lineage_names":[],"type":"repository"},"license":"other-oa","license_id":"https://openalex.org/licenses/other-oa","version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"","raw_type":"article"}],"best_oa_location":{"id":"pmh:oai:mediatum.ub.tum.de:node/1524011","is_oa":true,"landing_page_url":"https://link.springer.com/chapter/10.1007/978-3-030-44728-1_7","pdf_url":null,"source":{"id":"https://openalex.org/S4377196330","display_name":"mediaTUM  (Technical University of Munich)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I62916508","host_organization_name":"Technical University of Munich","host_organization_lineage":["https://openalex.org/I62916508"],"host_organization_lineage_names":[],"type":"repository"},"license":"other-oa","license_id":"https://openalex.org/licenses/other-oa","version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"","raw_type":"article"},"sustainable_development_goals":[{"id":"https://metadata.un.org/sdg/9","score":0.5099999904632568,"display_name":"Industry, innovation and infrastructure"}],"awards":[],"funders":[],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":19,"referenced_works":["https://openalex.org/W1543935889","https://openalex.org/W2028525550","https://openalex.org/W2087935498","https://openalex.org/W2107979247","https://openalex.org/W2565236682","https://openalex.org/W2783647117","https://openalex.org/W2798615799","https://openalex.org/W2886210973","https://openalex.org/W2946545004","https://openalex.org/W2949666040","https://openalex.org/W2953918119","https://openalex.org/W2954017757","https://openalex.org/W3037011706","https://openalex.org/W3102697874","https://openalex.org/W3104566386","https://openalex.org/W3122001523","https://openalex.org/W3123645795","https://openalex.org/W3124694492","https://openalex.org/W4244254628"],"related_works":["https://openalex.org/W2566637483","https://openalex.org/W2127324789","https://openalex.org/W3024308452","https://openalex.org/W4244894488","https://openalex.org/W4285390450","https://openalex.org/W2366442643","https://openalex.org/W2021715972","https://openalex.org/W2761732860","https://openalex.org/W2090268225","https://openalex.org/W75461624"],"abstract_inverted_index":{"The":[0,130],"development":[1,77,126],"of":[2,12,37,62,101,115,164,172],"a":[3,95],"high":[4],"performance":[5],"PDE":[6],"solver":[7,182],"requires":[8],"the":[9,31,35,87,90,102,112,116,124,128,148,153,170,173,181],"combined":[10],"expertise":[11,63],"interdisciplinary":[13],"teams":[14,39],"with":[15],"respect":[16],"to":[17,110,136,178,184,190],"application":[18,76,125],"domain,":[19],"numerical":[20,149],"scheme":[21,150],"and":[22,46,89,118,138],"low-level":[23,145,203],"optimization.":[24],"In":[25],"this":[26],"paper,":[27],"we":[28,122],"present":[29,156],"how":[30,169],"ExaHyPE":[32,79],"engine":[33,105,117],"facilitates":[34],"collaboration":[36],"such":[38],"by":[40,74],"isolating":[41],"three":[42,157],"roles:":[43],"application,":[44],"algorithms,":[45],"optimization":[47],"expert.":[48],"We":[49,155],"thus":[50],"support":[51,185],"team":[52],"members":[53],"in":[54,152],"letting":[55],"them":[56],"focus":[57],"on":[58,81,99,162],"their":[59,66],"own":[60],"area":[61],"while":[64],"integrating":[65],"contributions":[67],"into":[68],"an":[69],"HPC":[70],"production":[71],"code.":[72],"Inspired":[73],"web":[75],"practices,":[78],"relies":[80],"two":[82],"custom":[83,140],"code":[84,174],"generation":[85,175],"modules,":[86],"Toolkit":[88],"Kernel":[91],"Generator,":[92],"which":[93],"follow":[94],"Model-View-Controller":[96],"architectural":[97],"pattern":[98],"top":[100],"Jinja2":[103],"template":[104,131,141],"library.":[106],"Using":[107],"Jinja2's":[108],"templates":[109],"abstract":[111],"critical":[113],"components":[114],"generated":[119],"glue":[120],"code,":[121],"isolate":[123,144],"from":[127,147,188],"engine.":[129],"language":[132],"also":[133],"allows":[134,177],"us":[135],"define":[137],"use":[139,158],"macros":[142],"that":[143],"optimizations":[146],"described":[151],"templates.":[154],"cases,":[159],"each":[160],"focusing":[161],"one":[163],"our":[165],"user":[166],"roles,":[167],"showcasing":[168],"design":[171],"modules":[176],"easily":[179],"expand":[180],"schemes":[183,194],"novel":[186],"demands":[187],"applications,":[189],"add":[191],"optimized":[192],"algorithmic":[193],"(with":[195],"reduced":[196],"memory":[197],"footprint,":[198],"e.g.),":[199],"or":[200],"provide":[201],"improved":[202],"SIMD":[204],"vectorization":[205],"support.":[206]},"counts_by_year":[{"year":2025,"cited_by_count":2},{"year":2024,"cited_by_count":1}],"updated_date":"2026-04-28T14:05:53.105641","created_date":"2020-04-03T00:00:00"}
