{"id":"https://openalex.org/W7151826233","doi":"https://doi.org/10.48550/arxiv.2604.05982","title":"GTaP: A GPU-Resident Fork-Join Task-Parallel Runtime with a Pragma-Based Interface","display_name":"GTaP: A GPU-Resident Fork-Join Task-Parallel Runtime with a Pragma-Based Interface","publication_year":2026,"publication_date":"2026-04-07","ids":{"openalex":"https://openalex.org/W7151826233","doi":"https://doi.org/10.48550/arxiv.2604.05982"},"language":null,"primary_location":{"id":"doi:10.48550/arxiv.2604.05982","is_oa":true,"landing_page_url":"https://doi.org/10.48550/arxiv.2604.05982","pdf_url":null,"source":{"id":"https://openalex.org/S4306400194","display_name":"arXiv (Cornell University)","issn_l":null,"issn":null,"is_oa":true,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I205783295","host_organization_name":"Cornell University","host_organization_lineage":["https://openalex.org/I205783295"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":null,"is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":"Preprint"},"type":"preprint","indexed_in":["datacite"],"open_access":{"is_oa":true,"oa_status":"green","oa_url":"https://doi.org/10.48550/arxiv.2604.05982","any_repository_has_fulltext":true},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5133168557","display_name":"Yuki Maeda","orcid":null},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"Maeda, Yuki","raw_affiliation_strings":[],"raw_orcid":null,"affiliations":[]},{"author_position":"last","author":{"id":"https://openalex.org/A5133207126","display_name":"Kenjiro Taura","orcid":null},"institutions":[],"countries":[],"is_corresponding":false,"raw_author_name":"Taura, Kenjiro","raw_affiliation_strings":[],"raw_orcid":null,"affiliations":[]}],"institutions":[],"countries_distinct_count":0,"institutions_distinct_count":0,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":null,"has_fulltext":false,"cited_by_count":0,"citation_normalized_percentile":null,"cited_by_percentile_year":null,"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/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.8043000102043152,"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"}},"topics":[{"id":"https://openalex.org/T10054","display_name":"Parallel Computing and Optimization Techniques","score":0.8043000102043152,"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"}},{"id":"https://openalex.org/T10101","display_name":"Cloud Computing and Resource Management","score":0.10249999910593033,"subfield":{"id":"https://openalex.org/subfields/1710","display_name":"Information Systems"},"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/T10715","display_name":"Distributed and Parallel Computing Systems","score":0.03849999979138374,"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"}}],"keywords":[{"id":"https://openalex.org/keywords/scalability","display_name":"Scalability","score":0.5860000252723694},{"id":"https://openalex.org/keywords/task-parallelism","display_name":"Task parallelism","score":0.5612000226974487},{"id":"https://openalex.org/keywords/thread","display_name":"Thread (computing)","score":0.4634999930858612},{"id":"https://openalex.org/keywords/partition","display_name":"Partition (number theory)","score":0.4537999927997589},{"id":"https://openalex.org/keywords/runtime-system","display_name":"Runtime system","score":0.44290000200271606},{"id":"https://openalex.org/keywords/task","display_name":"Task (project management)","score":0.41690000891685486},{"id":"https://openalex.org/keywords/data-parallelism","display_name":"Data parallelism","score":0.41519999504089355},{"id":"https://openalex.org/keywords/parallelism","display_name":"Parallelism (grammar)","score":0.40230000019073486},{"id":"https://openalex.org/keywords/joins","display_name":"Joins","score":0.39410001039505005},{"id":"https://openalex.org/keywords/queue","display_name":"Queue","score":0.36800000071525574}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.9064000248908997},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.6398000121116638},{"id":"https://openalex.org/C48044578","wikidata":"https://www.wikidata.org/wiki/Q727490","display_name":"Scalability","level":2,"score":0.5860000252723694},{"id":"https://openalex.org/C42992933","wikidata":"https://www.wikidata.org/wiki/Q691169","display_name":"Task parallelism","level":3,"score":0.5612000226974487},{"id":"https://openalex.org/C138101251","wikidata":"https://www.wikidata.org/wiki/Q213092","display_name":"Thread (computing)","level":2,"score":0.4634999930858612},{"id":"https://openalex.org/C42812","wikidata":"https://www.wikidata.org/wiki/Q1082910","display_name":"Partition (number theory)","level":2,"score":0.4537999927997589},{"id":"https://openalex.org/C2780870223","wikidata":"https://www.wikidata.org/wiki/Q1004415","display_name":"Runtime system","level":2,"score":0.44290000200271606},{"id":"https://openalex.org/C2780451532","wikidata":"https://www.wikidata.org/wiki/Q759676","display_name":"Task (project management)","level":2,"score":0.41690000891685486},{"id":"https://openalex.org/C61483411","wikidata":"https://www.wikidata.org/wiki/Q3124522","display_name":"Data parallelism","level":3,"score":0.41519999504089355},{"id":"https://openalex.org/C2781172179","wikidata":"https://www.wikidata.org/wiki/Q853109","display_name":"Parallelism (grammar)","level":2,"score":0.40230000019073486},{"id":"https://openalex.org/C2778692605","wikidata":"https://www.wikidata.org/wiki/Q4041866","display_name":"Joins","level":2,"score":0.39410001039505005},{"id":"https://openalex.org/C160403385","wikidata":"https://www.wikidata.org/wiki/Q220543","display_name":"Queue","level":2,"score":0.36800000071525574},{"id":"https://openalex.org/C34165917","wikidata":"https://www.wikidata.org/wiki/Q188267","display_name":"Programming paradigm","level":2,"score":0.3547999858856201},{"id":"https://openalex.org/C78766204","wikidata":"https://www.wikidata.org/wiki/Q555032","display_name":"Multi-core processor","level":2,"score":0.33970001339912415},{"id":"https://openalex.org/C120314980","wikidata":"https://www.wikidata.org/wiki/Q180634","display_name":"Distributed computing","level":1,"score":0.33709999918937683},{"id":"https://openalex.org/C15296174","wikidata":"https://www.wikidata.org/wiki/Q7575343","display_name":"Speculative multithreading","level":4,"score":0.3337000012397766},{"id":"https://openalex.org/C153083717","wikidata":"https://www.wikidata.org/wiki/Q6535263","display_name":"Leverage (statistics)","level":2,"score":0.3312000036239624},{"id":"https://openalex.org/C49154492","wikidata":"https://www.wikidata.org/wiki/Q5300","display_name":"Central processing unit","level":2,"score":0.31450000405311584},{"id":"https://openalex.org/C141331961","wikidata":"https://www.wikidata.org/wiki/Q2164465","display_name":"Speculative execution","level":2,"score":0.31220000982284546},{"id":"https://openalex.org/C22684755","wikidata":"https://www.wikidata.org/wiki/Q847526","display_name":"Queueing theory","level":2,"score":0.29750001430511475},{"id":"https://openalex.org/C74193536","wikidata":"https://www.wikidata.org/wiki/Q574844","display_name":"Kernel (algebra)","level":2,"score":0.29159998893737793},{"id":"https://openalex.org/C140763907","wikidata":"https://www.wikidata.org/wiki/Q2714055","display_name":"Instruction-level parallelism","level":3,"score":0.28769999742507935},{"id":"https://openalex.org/C2776834041","wikidata":"https://www.wikidata.org/wiki/Q25346349","display_name":"Execution model","level":2,"score":0.2818000018596649},{"id":"https://openalex.org/C113843644","wikidata":"https://www.wikidata.org/wiki/Q901882","display_name":"Interface (matter)","level":4,"score":0.2793000042438507},{"id":"https://openalex.org/C111919701","wikidata":"https://www.wikidata.org/wiki/Q9135","display_name":"Operating system","level":1,"score":0.27410000562667847},{"id":"https://openalex.org/C137364921","wikidata":"https://www.wikidata.org/wiki/Q27929394","display_name":"Parallel programming model","level":3,"score":0.27390000224113464},{"id":"https://openalex.org/C86111242","wikidata":"https://www.wikidata.org/wiki/Q859595","display_name":"Coprocessor","level":2,"score":0.2689000070095062},{"id":"https://openalex.org/C107027933","wikidata":"https://www.wikidata.org/wiki/Q2006448","display_name":"Stream processing","level":2,"score":0.2678000032901764},{"id":"https://openalex.org/C202491316","wikidata":"https://www.wikidata.org/wiki/Q272683","display_name":"Instruction set","level":2,"score":0.2655999958515167},{"id":"https://openalex.org/C154556556","wikidata":"https://www.wikidata.org/wiki/Q192969","display_name":"Computer multitasking","level":2,"score":0.25850000977516174},{"id":"https://openalex.org/C206729178","wikidata":"https://www.wikidata.org/wiki/Q2271896","display_name":"Scheduling (production processes)","level":2,"score":0.2549999952316284},{"id":"https://openalex.org/C21442007","wikidata":"https://www.wikidata.org/wiki/Q1027879","display_name":"Graphics","level":2,"score":0.2515999972820282},{"id":"https://openalex.org/C2989134064","wikidata":"https://www.wikidata.org/wiki/Q288510","display_name":"Execution time","level":2,"score":0.2515999972820282}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.48550/arxiv.2604.05982","is_oa":true,"landing_page_url":"https://doi.org/10.48550/arxiv.2604.05982","pdf_url":null,"source":{"id":"https://openalex.org/S4306400194","display_name":"arXiv (Cornell University)","issn_l":null,"issn":null,"is_oa":true,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I205783295","host_organization_name":"Cornell University","host_organization_lineage":["https://openalex.org/I205783295"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":null,"is_accepted":false,"is_published":null,"raw_source_name":null,"raw_type":"Preprint"}],"best_oa_location":{"id":"doi:10.48550/arxiv.2604.05982","is_oa":true,"landing_page_url":"https://doi.org/10.48550/arxiv.2604.05982","pdf_url":null,"source":{"id":"https://openalex.org/S4306400194","display_name":"arXiv (Cornell University)","issn_l":null,"issn":null,"is_oa":true,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I205783295","host_organization_name":"Cornell University","host_organization_lineage":["https://openalex.org/I205783295"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":null,"is_accepted":false,"is_published":false,"raw_source_name":null,"raw_type":"Preprint"},"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":0,"referenced_works":[],"related_works":[],"abstract_inverted_index":{"Graphics":[0],"Processing":[1],"Units":[2],"(GPUs)":[3],"excel":[4],"at":[5],"regular":[6],"data-parallel":[7],"workloads":[8],"where":[9],"massive":[10],"hardware":[11],"parallelism":[12,28,40],"can":[13,100,214],"be":[14,101],"readily":[15],"exploited.":[16],"In":[17],"contrast,":[18],"many":[19,186],"important":[20],"irregular":[21,174],"applications":[22],"are":[23,41],"naturally":[24],"expressed":[25],"as":[26,89,95],"task":[27,39,61,94,155],"with":[29,112,193],"a":[30,55,96,113,138,170,182,232],"fork-join":[31,38,60,83,122],"control":[32,167],"structure.":[33],"While":[34],"CPU":[35,184],"runtimes":[36],"for":[37,131,189,217],"mature,":[42],"it":[43,49,213],"remains":[44],"challenging":[45],"to":[46,120,153,231],"efficiently":[47],"support":[48],"on":[50,66,84,181,224,226],"GPUs.":[51],"We":[52,107,196],"propose":[53],"GTaP,":[54],"GPU-resident":[56],"runtime":[57],"that":[58,99,117,199],"supports":[59,72],"parallelism.":[62],"GTaP":[63,86,127,176],"is":[64,211],"based":[65],"the":[67],"persistent":[68],"kernel":[69],"model,":[70],"and":[71,78,91],"two":[73],"worker":[74],"granularities:":[75],"thread":[76],"blocks":[77],"individual":[79],"threads.":[80],"To":[81],"realize":[82],"GPUs,":[85],"represents":[87],"joins":[88],"continuations":[90],"executes":[92],"each":[93],"state":[97],"machine":[98],"split":[102],"into":[103],"multiple":[104],"execution":[105,180],"segments.":[106],"also":[108,197],"extend":[109],"Clang's":[110],"frontend":[111],"pragma-based":[114],"programming":[115],"model":[116],"enables":[118],"programmers":[119,152],"express":[121],"without":[123],"exposing":[124],"low-level":[125],"mechanisms.":[126],"employs":[128],"work":[129],"stealing":[130],"load":[132],"balancing,":[133],"providing":[134],"better":[135],"scalability":[136],"than":[137],"global-queue":[139],"approach.":[140],"For":[141],"thread-level":[142],"workers,":[143],"we":[144],"further":[145],"introduce":[146],"Execution-Path-Aware":[147],"Queueing":[148],"(EPAQ),":[149],"which":[150],"allows":[151],"partition":[154],"queues":[156],"using":[157],"user-defined":[158],"criteria,":[159],"reducing":[160],"warp":[161],"divergence":[162],"caused":[163],"by":[164],"mixing":[165],"heterogeneous":[166],"flows":[168],"within":[169],"warp.":[171],"Across":[172],"representative":[173],"applications,":[175],"outperforms":[177],"OpenMP":[178],"task-parallel":[179],"72-core":[183],"in":[185],"cases,":[187],"especially":[188],"large":[190],"problem":[191],"sizes":[192],"compute-intensive":[194],"tasks.":[195],"show":[198],"GTaP's":[200],"design":[201],"choices":[202],"outperform":[203],"naive":[204],"GPU":[205],"alternatives.":[206],"The":[207],"benefit":[208],"of":[209],"EPAQ":[210,228],"workload-dependent:":[212],"improve":[215],"performance":[216],"some":[218],"benchmarks":[219],"while":[220],"having":[221],"little":[222],"effect":[223],"others;":[225],"Fibonacci,":[227],"achieves":[229],"up":[230],"1.8$\\times$":[233],"speedup.":[234]},"counts_by_year":[],"updated_date":"2026-07-01T06:00:48.157686","created_date":"2026-04-09T00:00:00"}
