{"id":"https://openalex.org/W2979503646","doi":"https://doi.org/10.1145/3357390.3361026","title":"Performance of an OO compute kernel on the JVM: revisiting Java as a language for scientific computing applications","display_name":"Performance of an OO compute kernel on the JVM: revisiting Java as a language for scientific computing applications","publication_year":2019,"publication_date":"2019-10-10","ids":{"openalex":"https://openalex.org/W2979503646","doi":"https://doi.org/10.1145/3357390.3361026","mag":"2979503646"},"language":"en","primary_location":{"id":"doi:10.1145/3357390.3361026","is_oa":false,"landing_page_url":"https://doi.org/10.1145/3357390.3361026","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 16th ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes","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/A5068867635","display_name":"Malin K\u00e4ll\u00e9n","orcid":null},"institutions":[{"id":"https://openalex.org/I123387679","display_name":"Uppsala University","ror":"https://ror.org/048a87296","country_code":"SE","type":"education","lineage":["https://openalex.org/I123387679"]}],"countries":["SE"],"is_corresponding":true,"raw_author_name":"Malin K\u00e4ll\u00e9n","raw_affiliation_strings":["Uppsala University, Sweden"],"affiliations":[{"raw_affiliation_string":"Uppsala University, Sweden","institution_ids":["https://openalex.org/I123387679"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5053132997","display_name":"Tobias Wrigstad","orcid":"https://orcid.org/0000-0002-4269-5408"},"institutions":[{"id":"https://openalex.org/I123387679","display_name":"Uppsala University","ror":"https://ror.org/048a87296","country_code":"SE","type":"education","lineage":["https://openalex.org/I123387679"]}],"countries":["SE"],"is_corresponding":false,"raw_author_name":"Tobias Wrigstad","raw_affiliation_strings":["Uppsala University, Sweden"],"affiliations":[{"raw_affiliation_string":"Uppsala University, Sweden","institution_ids":["https://openalex.org/I123387679"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":2,"corresponding_author_ids":["https://openalex.org/A5068867635"],"corresponding_institution_ids":["https://openalex.org/I123387679"],"apc_list":null,"apc_paid":null,"fwci":0.4815,"has_fulltext":false,"cited_by_count":2,"citation_normalized_percentile":{"value":0.61831464,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":94,"max":96},"biblio":{"volume":null,"issue":null,"first_page":"144","last_page":"156"},"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.9994000196456909,"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.9994000196456909,"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.9988999962806702,"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/T11986","display_name":"Scientific Computing and Data Management","score":0.9969000220298767,"subfield":{"id":"https://openalex.org/subfields/1802","display_name":"Information Systems and Management"},"field":{"id":"https://openalex.org/fields/18","display_name":"Decision Sciences"},"domain":{"id":"https://openalex.org/domains/2","display_name":"Social Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/computer-science","display_name":"Computer science","score":0.8812685012817383},{"id":"https://openalex.org/keywords/programming-language","display_name":"Programming language","score":0.7742894887924194},{"id":"https://openalex.org/keywords/java","display_name":"Java","score":0.6677120327949524},{"id":"https://openalex.org/keywords/compiler","display_name":"Compiler","score":0.597239077091217},{"id":"https://openalex.org/keywords/kernel","display_name":"Kernel (algebra)","score":0.5154586434364319},{"id":"https://openalex.org/keywords/just-in-time-compilation","display_name":"Just-in-time compilation","score":0.5141327977180481},{"id":"https://openalex.org/keywords/garbage-collection","display_name":"Garbage collection","score":0.48774033784866333},{"id":"https://openalex.org/keywords/real-time-java","display_name":"Real time Java","score":0.48398566246032715},{"id":"https://openalex.org/keywords/dynamic-compilation","display_name":"Dynamic compilation","score":0.4643424451351166},{"id":"https://openalex.org/keywords/java-modeling-language","display_name":"Java Modeling Language","score":0.45248112082481384},{"id":"https://openalex.org/keywords/strictfp","display_name":"strictfp","score":0.44309157133102417},{"id":"https://openalex.org/keywords/scala","display_name":"Scala","score":0.4160100817680359},{"id":"https://openalex.org/keywords/operating-system","display_name":"Operating system","score":0.41434311866760254},{"id":"https://openalex.org/keywords/java-annotation","display_name":"Java annotation","score":0.4121731221675873},{"id":"https://openalex.org/keywords/parallel-computing","display_name":"Parallel computing","score":0.4090029299259186},{"id":"https://openalex.org/keywords/garbage","display_name":"Garbage","score":0.09684687852859497}],"concepts":[{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.8812685012817383},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.7742894887924194},{"id":"https://openalex.org/C548217200","wikidata":"https://www.wikidata.org/wiki/Q251","display_name":"Java","level":2,"score":0.6677120327949524},{"id":"https://openalex.org/C169590947","wikidata":"https://www.wikidata.org/wiki/Q47506","display_name":"Compiler","level":2,"score":0.597239077091217},{"id":"https://openalex.org/C74193536","wikidata":"https://www.wikidata.org/wiki/Q574844","display_name":"Kernel (algebra)","level":2,"score":0.5154586434364319},{"id":"https://openalex.org/C76782552","wikidata":"https://www.wikidata.org/wiki/Q110546","display_name":"Just-in-time compilation","level":3,"score":0.5141327977180481},{"id":"https://openalex.org/C105122174","wikidata":"https://www.wikidata.org/wiki/Q322202","display_name":"Garbage collection","level":3,"score":0.48774033784866333},{"id":"https://openalex.org/C132106392","wikidata":"https://www.wikidata.org/wiki/Q1373903","display_name":"Real time Java","level":3,"score":0.48398566246032715},{"id":"https://openalex.org/C8767382","wikidata":"https://www.wikidata.org/wiki/Q1058454","display_name":"Dynamic compilation","level":3,"score":0.4643424451351166},{"id":"https://openalex.org/C60945770","wikidata":"https://www.wikidata.org/wiki/Q2517517","display_name":"Java Modeling Language","level":5,"score":0.45248112082481384},{"id":"https://openalex.org/C174954855","wikidata":"https://www.wikidata.org/wiki/Q7623626","display_name":"strictfp","level":4,"score":0.44309157133102417},{"id":"https://openalex.org/C109701466","wikidata":"https://www.wikidata.org/wiki/Q460584","display_name":"Scala","level":3,"score":0.4160100817680359},{"id":"https://openalex.org/C111919701","wikidata":"https://www.wikidata.org/wiki/Q9135","display_name":"Operating system","level":1,"score":0.41434311866760254},{"id":"https://openalex.org/C168702491","wikidata":"https://www.wikidata.org/wiki/Q567345","display_name":"Java annotation","level":4,"score":0.4121731221675873},{"id":"https://openalex.org/C173608175","wikidata":"https://www.wikidata.org/wiki/Q232661","display_name":"Parallel computing","level":1,"score":0.4090029299259186},{"id":"https://openalex.org/C75403996","wikidata":"https://www.wikidata.org/wiki/Q5521979","display_name":"Garbage","level":2,"score":0.09684687852859497},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.0},{"id":"https://openalex.org/C114614502","wikidata":"https://www.wikidata.org/wiki/Q76592","display_name":"Combinatorics","level":1,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3357390.3361026","is_oa":false,"landing_page_url":"https://doi.org/10.1145/3357390.3361026","pdf_url":null,"source":null,"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 16th ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes","raw_type":"proceedings-article"}],"best_oa_location":null,"sustainable_development_goals":[{"id":"https://metadata.un.org/sdg/9","display_name":"Industry, innovation and infrastructure","score":0.4099999964237213}],"awards":[],"funders":[],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":17,"referenced_works":["https://openalex.org/W88425365","https://openalex.org/W1973478665","https://openalex.org/W1982579724","https://openalex.org/W2005405508","https://openalex.org/W2005540245","https://openalex.org/W2025457606","https://openalex.org/W2050362115","https://openalex.org/W2063612156","https://openalex.org/W2083157919","https://openalex.org/W2107131868","https://openalex.org/W2137030454","https://openalex.org/W2156523571","https://openalex.org/W2167291996","https://openalex.org/W2171971095","https://openalex.org/W2172391442","https://openalex.org/W2187125920","https://openalex.org/W3085781214"],"related_works":["https://openalex.org/W3081695254","https://openalex.org/W50586473","https://openalex.org/W1967435589","https://openalex.org/W321450354","https://openalex.org/W2122434855","https://openalex.org/W1847197715","https://openalex.org/W1565152927","https://openalex.org/W2164296674","https://openalex.org/W2004623597","https://openalex.org/W2098771596"],"abstract_inverted_index":{"The":[0],"study":[1],"of":[2,36,43],"Java":[3],"as":[4],"a":[5,26,41,69,77,106],"programming":[6],"language":[7],"for":[8,89,98,103,114,125],"scientific":[9,28,71],"computing":[10,29,72],"is":[11],"warranted":[12],"by":[13,53],"simpler,":[14],"more":[15,18],"extensible":[16],"and":[17,46,100,133],"easily":[19],"maintainable":[20],"code.":[21],"Previous":[22],"work":[23],"on":[24,92,120,123],"refactoring":[25],"C++":[27,99],"code":[30],"base":[31],"to":[32,50,111],"follow":[33],"best":[34],"practises":[35,45],"object-oriented":[37],"software":[38],"development":[39],"revealed":[40],"coupling":[42],"such":[44,65],"considerable":[47],"slowdowns":[48],"due":[49],"indirections":[51],"introduced":[52],"abstractions.":[54],"In":[55],"this":[56],"paper,":[57],"we":[58],"explore":[59],"how":[60],"Java's":[61],"JIT":[62],"compiler":[63],"handle":[64],"abstraction-induced":[66],"indirection":[67],"using":[68],"typical":[70],"compute":[73],"kernel":[74],"extracted":[75],"from":[76],"linear":[78],"solver":[79],"written":[80],"in":[81],"C++.":[82],"We":[83,117],"find":[84],"that":[85],"the":[86,121],"computation":[87],"times":[88],"large":[90],"workloads":[91],"one":[93],"machine":[94],"can":[95],"be":[96,112],"on-pair":[97],"Java.":[101],"However,":[102],"distributed":[104],"computations,":[105],"better":[107],"parallelisation":[108],"strategy":[109],"needs":[110],"found":[113],"non-blocking":[115],"communication.":[116],"also":[118],"report":[119],"impact":[122],"performance":[124],"common":[126],"\"gripes\":":[127],"garbage":[128],"collection,":[129],"array":[130],"bounds":[131],"checking,":[132],"dynamic":[134],"binding.":[135]},"counts_by_year":[{"year":2022,"cited_by_count":2}],"updated_date":"2025-11-06T03:46:38.306776","created_date":"2025-10-10T00:00:00"}
