{"id":"https://openalex.org/W4414909321","doi":"https://doi.org/10.1109/cluster59342.2025.11186485","title":"Efficient Multi-GPU Programming in Python: Reducing Synchronization and Access Overheads","display_name":"Efficient Multi-GPU Programming in Python: Reducing Synchronization and Access Overheads","publication_year":2025,"publication_date":"2025-09-02","ids":{"openalex":"https://openalex.org/W4414909321","doi":"https://doi.org/10.1109/cluster59342.2025.11186485"},"language":"en","primary_location":{"id":"doi:10.1109/cluster59342.2025.11186485","is_oa":false,"landing_page_url":"https://doi.org/10.1109/cluster59342.2025.11186485","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"2025 IEEE International Conference on Cluster Computing (CLUSTER)","raw_type":"proceedings-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":false,"oa_status":"closed","oa_url":null,"any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5011121841","display_name":"Lena Oden","orcid":"https://orcid.org/0000-0002-9670-5296"},"institutions":[{"id":"https://openalex.org/I120691247","display_name":"University of Hagen","ror":"https://ror.org/04tkkr536","country_code":"DE","type":"education","lineage":["https://openalex.org/I120691247"]}],"countries":["DE"],"is_corresponding":true,"raw_author_name":"Lena Oden","raw_affiliation_strings":["University of Hagen,Computer Engineering,Hagen,Germany"],"affiliations":[{"raw_affiliation_string":"University of Hagen,Computer Engineering,Hagen,Germany","institution_ids":["https://openalex.org/I120691247"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5092114311","display_name":"Klaus N\u00f6lp","orcid":null},"institutions":[{"id":"https://openalex.org/I120691247","display_name":"University of Hagen","ror":"https://ror.org/04tkkr536","country_code":"DE","type":"education","lineage":["https://openalex.org/I120691247"]}],"countries":["DE"],"is_corresponding":false,"raw_author_name":"Klaus N\u00f6lp","raw_affiliation_strings":["University of Hagen,Computer Engineering,Hagen,Germany"],"affiliations":[{"raw_affiliation_string":"University of Hagen,Computer Engineering,Hagen,Germany","institution_ids":["https://openalex.org/I120691247"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":2,"corresponding_author_ids":["https://openalex.org/A5011121841"],"corresponding_institution_ids":["https://openalex.org/I120691247"],"apc_list":null,"apc_paid":null,"fwci":0.0,"has_fulltext":false,"cited_by_count":0,"citation_normalized_percentile":{"value":0.31817699,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":null,"biblio":{"volume":null,"issue":null,"first_page":"1","last_page":"10"},"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.9919000267982483,"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.9919000267982483,"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/T10715","display_name":"Distributed and Parallel Computing Systems","score":0.9901999831199646,"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/T13650","display_name":"Computational Physics and Python Applications","score":0.9865999817848206,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"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/python","display_name":"Python (programming language)","score":0.8464000225067139},{"id":"https://openalex.org/keywords/implementation","display_name":"Implementation","score":0.6822999715805054},{"id":"https://openalex.org/keywords/asynchronous-communication","display_name":"Asynchronous communication","score":0.6212999820709229},{"id":"https://openalex.org/keywords/cuda","display_name":"CUDA","score":0.5688999891281128},{"id":"https://openalex.org/keywords/computation","display_name":"Computation","score":0.4666000008583069},{"id":"https://openalex.org/keywords/synchronization","display_name":"Synchronization (alternating current)","score":0.40549999475479126},{"id":"https://openalex.org/keywords/programming-paradigm","display_name":"Programming paradigm","score":0.38359999656677246},{"id":"https://openalex.org/keywords/general-purpose-computing-on-graphics-processing-units","display_name":"General-purpose computing on graphics processing units","score":0.3490000069141388}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.866100013256073},{"id":"https://openalex.org/C519991488","wikidata":"https://www.wikidata.org/wiki/Q28865","display_name":"Python (programming language)","level":2,"score":0.8464000225067139},{"id":"https://openalex.org/C26713055","wikidata":"https://www.wikidata.org/wiki/Q245962","display_name":"Implementation","level":2,"score":0.6822999715805054},{"id":"https://openalex.org/C151319957","wikidata":"https://www.wikidata.org/wiki/Q752739","display_name":"Asynchronous communication","level":2,"score":0.6212999820709229},{"id":"https://openalex.org/C2778119891","wikidata":"https://www.wikidata.org/wiki/Q477690","display_name":"CUDA","level":2,"score":0.5688999891281128},{"id":"https://openalex.org/C120314980","wikidata":"https://www.wikidata.org/wiki/Q180634","display_name":"Distributed computing","level":1,"score":0.5239999890327454},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.5163999795913696},{"id":"https://openalex.org/C45374587","wikidata":"https://www.wikidata.org/wiki/Q12525525","display_name":"Computation","level":2,"score":0.4666000008583069},{"id":"https://openalex.org/C2778562939","wikidata":"https://www.wikidata.org/wiki/Q1298791","display_name":"Synchronization (alternating current)","level":3,"score":0.40549999475479126},{"id":"https://openalex.org/C34165917","wikidata":"https://www.wikidata.org/wiki/Q188267","display_name":"Programming paradigm","level":2,"score":0.38359999656677246},{"id":"https://openalex.org/C118524514","wikidata":"https://www.wikidata.org/wiki/Q173212","display_name":"Computer architecture","level":1,"score":0.3774999976158142},{"id":"https://openalex.org/C50630238","wikidata":"https://www.wikidata.org/wiki/Q971505","display_name":"General-purpose computing on graphics processing units","level":3,"score":0.3490000069141388},{"id":"https://openalex.org/C122783720","wikidata":"https://www.wikidata.org/wiki/Q183065","display_name":"Interpreter","level":2,"score":0.3357999920845032},{"id":"https://openalex.org/C2779960059","wikidata":"https://www.wikidata.org/wiki/Q7113681","display_name":"Overhead (engineering)","level":2,"score":0.30820000171661377},{"id":"https://openalex.org/C2778514511","wikidata":"https://www.wikidata.org/wiki/Q1374194","display_name":"Programmer","level":2,"score":0.2971000075340271},{"id":"https://openalex.org/C162319229","wikidata":"https://www.wikidata.org/wiki/Q175263","display_name":"Data structure","level":2,"score":0.2962999939918518},{"id":"https://openalex.org/C111919701","wikidata":"https://www.wikidata.org/wiki/Q9135","display_name":"Operating system","level":1,"score":0.2856000065803528},{"id":"https://openalex.org/C2989134064","wikidata":"https://www.wikidata.org/wiki/Q288510","display_name":"Execution time","level":2,"score":0.2745000123977661},{"id":"https://openalex.org/C47487241","wikidata":"https://www.wikidata.org/wiki/Q5227230","display_name":"Data access","level":2,"score":0.27140000462532043},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.2667999863624573},{"id":"https://openalex.org/C26517878","wikidata":"https://www.wikidata.org/wiki/Q228039","display_name":"Key (lock)","level":2,"score":0.26109999418258667},{"id":"https://openalex.org/C149635348","wikidata":"https://www.wikidata.org/wiki/Q193040","display_name":"Embedded system","level":1,"score":0.259799987077713},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.25529998540878296},{"id":"https://openalex.org/C206729178","wikidata":"https://www.wikidata.org/wiki/Q2271896","display_name":"Scheduling (production processes)","level":2,"score":0.25529998540878296}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1109/cluster59342.2025.11186485","is_oa":false,"landing_page_url":"https://doi.org/10.1109/cluster59342.2025.11186485","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"2025 IEEE International Conference on Cluster Computing (CLUSTER)","raw_type":"proceedings-article"}],"best_oa_location":null,"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":17,"referenced_works":["https://openalex.org/W1985462363","https://openalex.org/W2146292423","https://openalex.org/W2245493112","https://openalex.org/W3026033607","https://openalex.org/W3137628862","https://openalex.org/W3164436820","https://openalex.org/W3173970356","https://openalex.org/W3205179929","https://openalex.org/W4224226667","https://openalex.org/W4309579420","https://openalex.org/W4379802123","https://openalex.org/W4385585370","https://openalex.org/W4386275730","https://openalex.org/W4392079873","https://openalex.org/W4392123192","https://openalex.org/W4393003094","https://openalex.org/W4403115814"],"related_works":[],"abstract_inverted_index":{"Python":[0,45,65,95,164,197],"has":[1],"become":[2],"increasingly":[3],"significant":[4,68],"in":[5,64,94,188],"domains":[6],"such":[7],"as":[8,110],"data":[9,119],"science,":[10],"machine":[11],"learning,":[12],"scientific":[13],"computing,":[14],"and":[15,21,32,55,79,100,106,115,140,150,191],"parallel":[16,27],"programming.":[17],"The":[18],"libraries":[19],"CuPy":[20],"Numba":[22],"enable":[23,36],"the":[24,73,155,173],"development":[25],"of":[26,91,113,138,154,172,175],"GPU":[28,77,201],"code,":[29],"while":[30],"mpi4py":[31],"CuPy's":[33],"NCCL":[34,99,130],"backend":[35],"distributed":[37],"computing":[38],"across":[39],"multiple":[40],"GPUs.":[41],"Despite":[42],"its":[43,50],"versatility,":[44],"is":[46],"often":[47,66],"criticized":[48],"for":[49,184,194],"performance":[51,69,89,174],"limitations.":[52],"Although":[53],"pre-compilation":[54],"just-in-time":[56],"compilation":[57],"can":[58,121,166],"minimize":[59],"interpreter":[60],"overhead,":[61],"multi-GPU":[62,92,152,189],"applications":[63,198],"encounter":[67],"bottlenecks":[70],"due":[71],"to":[72,169],"synchronization":[74,105],"requirements":[75],"between":[76],"kernels":[78],"communication":[80],"libraries.":[81],"In":[82],"this":[83],"work,":[84],"we":[85,126],"present":[86],"a":[87,151],"detailed":[88],"analysis":[90],"programming":[93],"using":[96,129],"CuPy,":[97],"Numba,":[98],"mpi4py.":[101],"We":[102],"identify":[103],"excessive":[104],"costly":[107],"array":[108],"conversions":[109],"key":[111],"sources":[112],"overhead":[114],"demonstrate":[116],"that":[117,128],"view-based":[118],"access":[120],"significantly":[122],"improve":[123],"performance.":[124],"Furthermore,":[125],"show":[127,159],"with":[131,161],"asynchronous":[132],"CUDA":[133],"streams":[134],"enables":[135],"better":[136],"overlap":[137],"computation":[139],"communication,":[141],"mitigating":[142],"interpreter-induced":[143],"delays.":[144],"Our":[145],"evaluation":[146],"includes":[147],"both":[148],"microbenchmarks":[149],"implementation":[153],"CloverLeaf":[156],"mini-application.":[157],"Results":[158],"that,":[160],"careful":[162],"optimization,":[163],"implementations":[165],"reach":[167],"up":[168],"90":[170],"%":[171],"equivalent":[176],"C-CUDA":[177],"codes.":[178],"These":[179],"findings":[180],"highlight":[181],"practical":[182],"strategies":[183],"minimizing":[185],"Python-specific":[186],"overheads":[187],"scenarios":[190],"provide":[192],"guidance":[193],"building":[195],"efficient":[196],"on":[199],"modern":[200],"clusters.":[202]},"counts_by_year":[],"updated_date":"2026-03-07T16:01:11.037858","created_date":"2025-10-10T00:00:00"}
