{"id":"https://openalex.org/W1980997743","doi":"https://doi.org/10.1109/ipdpsw.2014.143","title":"Acceleration of a Python-Based Tsunami Modelling Application via CUDA and OpenHMPP","display_name":"Acceleration of a Python-Based Tsunami Modelling Application via CUDA and OpenHMPP","publication_year":2014,"publication_date":"2014-05-01","ids":{"openalex":"https://openalex.org/W1980997743","doi":"https://doi.org/10.1109/ipdpsw.2014.143","mag":"1980997743"},"language":"en","primary_location":{"id":"doi:10.1109/ipdpsw.2014.143","is_oa":false,"landing_page_url":"https://doi.org/10.1109/ipdpsw.2014.143","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"2014 IEEE International Parallel &amp; Distributed Processing Symposium Workshops","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/A5109589149","display_name":"Zhe Weng","orcid":null},"institutions":[{"id":"https://openalex.org/I118347636","display_name":"Australian National University","ror":"https://ror.org/019wvm592","country_code":"AU","type":"education","lineage":["https://openalex.org/I118347636"]}],"countries":["AU"],"is_corresponding":false,"raw_author_name":"Zhe Weng","raw_affiliation_strings":["Research School of Computer Science, Australian National University, Canberra, Australia","[Res. Sch. of Comput. Sci., Australian Nat. Univ., Canberra, ACT, Australia]"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Research School of Computer Science, Australian National University, Canberra, Australia","institution_ids":["https://openalex.org/I118347636"]},{"raw_affiliation_string":"[Res. Sch. of Comput. Sci., Australian Nat. Univ., Canberra, ACT, Australia]","institution_ids":["https://openalex.org/I118347636"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5009849948","display_name":"Peter Strazdins","orcid":"https://orcid.org/0000-0001-8541-1551"},"institutions":[{"id":"https://openalex.org/I118347636","display_name":"Australian National University","ror":"https://ror.org/019wvm592","country_code":"AU","type":"education","lineage":["https://openalex.org/I118347636"]}],"countries":["AU"],"is_corresponding":false,"raw_author_name":"Peter E. Strazdins","raw_affiliation_strings":["Research School of Computer Science, Australian National University, Canberra, Australia","[Res. Sch. of Comput. Sci., Australian Nat. Univ., Canberra, ACT, Australia]"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Research School of Computer Science, Australian National University, Canberra, Australia","institution_ids":["https://openalex.org/I118347636"]},{"raw_affiliation_string":"[Res. Sch. of Comput. Sci., Australian Nat. Univ., Canberra, ACT, Australia]","institution_ids":["https://openalex.org/I118347636"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":2,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":0.0,"has_fulltext":false,"cited_by_count":3,"citation_normalized_percentile":{"value":0.06256926,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":90,"max":95},"biblio":{"volume":null,"issue":null,"first_page":"1275","last_page":"1284"},"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.9726999998092651,"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.9726999998092651,"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/T10995","display_name":"Methane Hydrates and Related Phenomena","score":0.9559999704360962,"subfield":{"id":"https://openalex.org/subfields/2304","display_name":"Environmental Chemistry"},"field":{"id":"https://openalex.org/fields/23","display_name":"Environmental Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/cuda","display_name":"CUDA","score":0.8784413933753967},{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.8588144779205322},{"id":"https://openalex.org/keywords/porting","display_name":"Porting","score":0.7681174874305725},{"id":"https://openalex.org/keywords/python","display_name":"Python (programming language)","score":0.6695501208305359},{"id":"https://openalex.org/keywords/debugging","display_name":"Debugging","score":0.6470428109169006},{"id":"https://openalex.org/keywords/parallel-computing","display_name":"Parallel computing","score":0.6211469173431396},{"id":"https://openalex.org/keywords/general-purpose-computing-on-graphics-processing-units","display_name":"General-purpose computing on graphics processing units","score":0.5895405411720276},{"id":"https://openalex.org/keywords/speedup","display_name":"Speedup","score":0.5206422209739685},{"id":"https://openalex.org/keywords/programming-paradigm","display_name":"Programming paradigm","score":0.4538409411907196},{"id":"https://openalex.org/keywords/software-portability","display_name":"Software portability","score":0.41511720418930054},{"id":"https://openalex.org/keywords/graphics","display_name":"Graphics","score":0.36388352513313293},{"id":"https://openalex.org/keywords/operating-system","display_name":"Operating system","score":0.3096068203449249},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.27158302068710327},{"id":"https://openalex.org/keywords/software","display_name":"Software","score":0.135102778673172}],"concepts":[{"id":"https://openalex.org/C2778119891","wikidata":"https://www.wikidata.org/wiki/Q477690","display_name":"CUDA","level":2,"score":0.8784413933753967},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8588144779205322},{"id":"https://openalex.org/C106251023","wikidata":"https://www.wikidata.org/wiki/Q851989","display_name":"Porting","level":3,"score":0.7681174874305725},{"id":"https://openalex.org/C519991488","wikidata":"https://www.wikidata.org/wiki/Q28865","display_name":"Python (programming language)","level":2,"score":0.6695501208305359},{"id":"https://openalex.org/C168065819","wikidata":"https://www.wikidata.org/wiki/Q845566","display_name":"Debugging","level":2,"score":0.6470428109169006},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.6211469173431396},{"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.5895405411720276},{"id":"https://openalex.org/C68339613","wikidata":"https://www.wikidata.org/wiki/Q1549489","display_name":"Speedup","level":2,"score":0.5206422209739685},{"id":"https://openalex.org/C34165917","wikidata":"https://www.wikidata.org/wiki/Q188267","display_name":"Programming paradigm","level":2,"score":0.4538409411907196},{"id":"https://openalex.org/C63000827","wikidata":"https://www.wikidata.org/wiki/Q3080428","display_name":"Software portability","level":2,"score":0.41511720418930054},{"id":"https://openalex.org/C21442007","wikidata":"https://www.wikidata.org/wiki/Q1027879","display_name":"Graphics","level":2,"score":0.36388352513313293},{"id":"https://openalex.org/C111919701","wikidata":"https://www.wikidata.org/wiki/Q9135","display_name":"Operating system","level":1,"score":0.3096068203449249},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.27158302068710327},{"id":"https://openalex.org/C2777904410","wikidata":"https://www.wikidata.org/wiki/Q7397","display_name":"Software","level":2,"score":0.135102778673172}],"mesh":[],"locations_count":2,"locations":[{"id":"doi:10.1109/ipdpsw.2014.143","is_oa":false,"landing_page_url":"https://doi.org/10.1109/ipdpsw.2014.143","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"2014 IEEE International Parallel &amp; Distributed Processing Symposium Workshops","raw_type":"proceedings-article"},{"id":"pmh:oai:openresearch-repository.anu.edu.au:1885/57253","is_oa":false,"landing_page_url":"http://hdl.handle.net/1885/57253","pdf_url":null,"source":{"id":"https://openalex.org/S4306402539","display_name":"ANU Open Research (Australian National University)","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"host_organization":"https://openalex.org/I118347636","host_organization_name":"Australian National University","host_organization_lineage":["https://openalex.org/I118347636"],"host_organization_lineage_names":[],"type":"repository"},"license":null,"license_id":null,"version":"submittedVersion","is_accepted":false,"is_published":false,"raw_source_name":"Proceedings of the International Parallel and Distributed Processing Symposium, IPDPS","raw_type":"Conference paper"}],"best_oa_location":null,"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":24,"referenced_works":["https://openalex.org/W85015611","https://openalex.org/W1493949316","https://openalex.org/W1516503592","https://openalex.org/W1561042142","https://openalex.org/W1777354337","https://openalex.org/W1991220408","https://openalex.org/W1999405435","https://openalex.org/W2004516485","https://openalex.org/W2055767681","https://openalex.org/W2060104647","https://openalex.org/W2062242614","https://openalex.org/W2062256615","https://openalex.org/W2068274735","https://openalex.org/W2133755209","https://openalex.org/W2148209604","https://openalex.org/W2152447737","https://openalex.org/W2169997465","https://openalex.org/W3022194837","https://openalex.org/W4285719527","https://openalex.org/W6603422046","https://openalex.org/W6629582174","https://openalex.org/W6630773803","https://openalex.org/W6651478952","https://openalex.org/W6685147592"],"related_works":["https://openalex.org/W1820309981","https://openalex.org/W3124707092","https://openalex.org/W2375332572","https://openalex.org/W28826848","https://openalex.org/W3123383020","https://openalex.org/W2621501241","https://openalex.org/W3020739840","https://openalex.org/W4312942606","https://openalex.org/W2166776054","https://openalex.org/W3177128669"],"abstract_inverted_index":{"Modern":[0],"graphics":[1],"processing":[2],"units":[3],"(GPUs)":[4],"have":[5,223],"became":[6],"powerful":[7],"and":[8,17,23,37,55,65,87,165,264,291],"cost-effective":[9],"computing":[10,31],"platforms.":[11],"Parallel":[12],"programming":[13,19,328],"standards":[14,20],"(e.g.":[15],"CUDA)":[16],"directive-based":[18],"(like":[21],"OpenHMPP":[22,293,320],"OpenACC)":[24],"are":[25,76,160,250],"available":[26],"to":[27,33,72,92,106,131,182,237,303,310],"harness":[28],"this":[29,128,171,217,280,283],"tremendous":[30],"power":[32],"tackle":[34],"largescale":[35],"modelling":[36,46],"simulation":[38],"in":[39,57,63,113,172,187,193,211,243],"scientific":[40],"areas.":[41],"ANUGA":[42],"is":[43,49,129],"a":[44,67,122,147,212,275],"tsunami":[45],"application":[47,71],"which":[48,220],"based":[50],"on":[51,121,162,255],"unstructured":[52,69,103,300],"triangular":[53],"meshes":[54],"implemented":[56],"Python/C.":[58],"This":[59,150],"paper":[60],"explores":[61],"issues":[62],"porting":[64,199],"optimizing":[66],"Python/C-based":[68],"mesh":[70,104,301],"GPUs.":[73],"Two":[74],"paradigms":[75],"compared:":[77],"CUDA":[78,183,286],"via":[79],"the":[80,98,107,136,139,163,166,188,194,198,233,238,246,257,260,265,285,292,313],"PyCUDA":[81],"API,":[82],"involving":[83,89],"writing":[84],"GPU":[85,108],"kernels,":[86],"OpenHMPP,":[88],"adding":[90],"directives":[91],"C":[93],"code.":[94],"In":[95,315],"either":[96],"case,":[97],"`naive'":[99],"approach":[100],"of":[101,135,190,196,279,299,312,317,327],"transferring":[102],"data":[105,132,158,180,248],"for":[109],"each":[110,253],"kernel":[111],"resulted":[112],"an":[114,152],"actual":[115],"slowdown":[116],"over":[117],"single":[118,213],"core":[119],"performance":[120],"CPU.":[123],"Profiling":[124],"results":[125],"confirmed":[126],"that":[127,222],"due":[130],"transfer":[133],"times":[134],"device":[137],"to/from":[138],"host,":[140],"even":[141],"though":[142],"all":[143,156,176,206],"individual":[144],"kernels":[145],"achieved":[146,288,294,321],"good":[148],"speedup.":[149],"necessitated":[151],"advanced":[153],"approach,":[154,284],"where":[155],"key":[157],"structures":[159,181,249],"mirrored":[161,247],"host":[164,258],"device.":[167],"For":[168,215],"both":[169,256],"paradigms,":[170],"turn":[173],"involved":[174],"converting":[175],"code":[177],"updating":[178],"these":[179],"(or":[184],"directive-augmented":[185],"C,":[186],"case":[189,195],"OpenHMPP).":[191],"Furthermore,":[192],"CUDA,":[197],"can":[200],"no":[201],"longer":[202],"be":[203,209],"done":[204],"incrementally:":[205],"changes":[207],"must":[208],"made":[210],"step.":[214],"debugging,":[216],"makes":[218],"identifying":[219],"kernel(s)":[221],"introduced":[224],"bugs":[225],"very":[226],"difficult.":[227],"To":[228],"alleviate":[229],"this,":[230],"we":[231],"adopted":[232],"relative":[234],"debugging":[235,244],"technique":[236],"host-device":[239],"context.":[240],"Here,":[241],"when":[242],"mode,":[245],"updated":[251],"upon":[252],"step":[254],"(using":[259],"original":[261],"serial":[262],"code)":[263],"device,":[266],"with":[267],"any":[268],"discrepancy":[269],"being":[270],"immediately":[271],"detected.":[272],"We":[273],"present":[274],"generic":[276],"Python-based":[277],"implementation":[278],"technique.":[281],"With":[282],"version":[287],"2x":[289],"speedup,":[290],"1.6x.":[295],"The":[296],"main":[297],"optimization":[298],"rearrangement":[302],"achieve":[304],"coalesced":[305],"memory":[306],"access":[307],"patterns":[308],"contributed":[309],"10%":[311],"former.":[314],"terms":[316],"productivity,":[318],"however,":[319],"significantly":[322],"better":[323],"speedup":[324],"per":[325],"hour":[326],"effort.":[329]},"counts_by_year":[{"year":2021,"cited_by_count":2},{"year":2019,"cited_by_count":1}],"updated_date":"2026-06-11T09:08:48.828518","created_date":"2025-10-10T00:00:00"}
