{"corpus_id":33941218,"paper_sha":"6e2876b67f5c3035490521660298e7b067d6d9e6","doi":"10.1155/2003/287461","arxiv_id":null,"pmid":null,"pmcid":null,"mag_id":2019322386,"dblp_id":"journals/sp/Muller03","acl_id":null,"title":"An OpenMP compiler benchmark","year":2003,"publication_date":"2003-04-01","venue":"Scientific Programming","journal":{"name":"Sci. Program.","pages":"125-131","volume":"11"},"journal_issn":null,"journal_title":null,"publication_types":["JournalArticle"],"pubmed_pub_types":null,"s2_fields_of_study":["Computer Science","Engineering"],"reference_count":9,"citation_count":7,"influential_citation_count":0,"is_open_access":true,"arxiv_categories":null,"arxiv_license":null,"arxiv_journal_ref":null,"mesh_headings":null,"chemicals":null,"comments_corrections":null,"source_flags":1,"s2_open_access_pdf_url":"https://downloads.hindawi.com/journals/sp/2003/287461.pdf","s2_open_access_landing_url":"https://www.semanticscholar.org/paper/6e2876b67f5c3035490521660298e7b067d6d9e6","s2_open_access_license":"CCBY","s2_open_access_status":"GOLD","pmc_open_access_pdf_url":null,"pmc_open_access_landing_url":null,"pmc_open_access_license":null,"pmc_open_access_status":null,"unpaywall_open_access_pdf_url":null,"unpaywall_open_access_landing_url":null,"unpaywall_open_access_license":null,"unpaywall_open_access_status":null,"abstract":"The purpose of this benchmark is to propose several optimization techniques and to test their existence in current OpenMP compilers. Examples are the removal of redundant synchronization constructs, effective constructs for alternative code and orphaned directives. The effectiveness of the compiler generated code is measured by comparing different OpenMP constructs and compilers. If possible, we also compare with the hand coded \"equivalent\" solution. Six out of seven proposed optimization techniques are already implemented in different compilers. However, most compilers implement only one or two of them.","claims":[{"public_id":"cl_5cbcd301907a39a3bcf312fd01913f83","status":"active","text":"Compiler-generated code is evaluated by comparing different OpenMP constructs and compilers, and where possible against a hand-coded equivalent solution.","confidence":0.97,"contributors":[{"id":1,"public_id":"12632b8b5f","public_label":"Anonymous (12632b8b5f)","roles":["extraction"],"url":"https://sah.borca.ai/u/12632b8b5f"}],"url":"https://sah.borca.ai/claims/cl_5cbcd301907a39a3bcf312fd01913f83"},{"public_id":"cl_221afbcd60ebe033e7900b3fac93a103","status":"active","text":"Most OpenMP compilers implement only one or two of the proposed optimization techniques.","confidence":0.96,"contributors":[{"id":1,"public_id":"12632b8b5f","public_label":"Anonymous (12632b8b5f)","roles":["extraction"],"url":"https://sah.borca.ai/u/12632b8b5f"}],"url":"https://sah.borca.ai/claims/cl_221afbcd60ebe033e7900b3fac93a103"},{"public_id":"cl_27e50d7093fd1d022e37bda10a6e637e","status":"active","text":"Six of the seven proposed optimization techniques are already implemented in different OpenMP compilers.","confidence":0.98,"contributors":[{"id":1,"public_id":"12632b8b5f","public_label":"Anonymous (12632b8b5f)","roles":["extraction"],"url":"https://sah.borca.ai/u/12632b8b5f"}],"url":"https://sah.borca.ai/claims/cl_27e50d7093fd1d022e37bda10a6e637e"}],"concepts":[{"public_id":"co_064b58b9f4031bb6f952fb95737e62d7","status":"active","name":"OpenMP compiler benchmark","description":"A benchmark for assessing optimization techniques and compiler-generated code in OpenMP compilers.","types":["benchmark","evaluation resource"],"aliases":["benchmark"],"contributors":[{"id":1,"public_id":"12632b8b5f","public_label":"Anonymous (12632b8b5f)","roles":["extraction"],"url":"https://sah.borca.ai/u/12632b8b5f"}],"url":"https://sah.borca.ai/concepts/co_064b58b9f4031bb6f952fb95737e62d7"},{"public_id":"co_0d01debab6c07186930db88cebdf9413","status":"active","name":"redundant synchronization constructs","description":"Synchronization directives or operations that can be eliminated when they are unnecessary.","types":["compiler construct","synchronization construct"],"aliases":["redundant synchronization"],"contributors":[{"id":1,"public_id":"12632b8b5f","public_label":"Anonymous (12632b8b5f)","roles":["extraction"],"url":"https://sah.borca.ai/u/12632b8b5f"}],"url":"https://sah.borca.ai/concepts/co_0d01debab6c07186930db88cebdf9413"},{"public_id":"co_33ed1970059546b3fd6e3d23a27f2f83","status":"active","name":"compiler-generated code","description":"Machine code produced automatically by a compiler from OpenMP source code.","types":["output"],"aliases":["generated code"],"contributors":[{"id":1,"public_id":"12632b8b5f","public_label":"Anonymous (12632b8b5f)","roles":["extraction"],"url":"https://sah.borca.ai/u/12632b8b5f"}],"url":"https://sah.borca.ai/concepts/co_33ed1970059546b3fd6e3d23a27f2f83"},{"public_id":"co_365627c0192464e9b19dec9e030b97c5","status":"active","name":"OpenMP constructs","description":"Language constructs used to express parallelism and synchronization in OpenMP programs.","types":["language construct"],"aliases":[],"contributors":[{"id":1,"public_id":"12632b8b5f","public_label":"Anonymous (12632b8b5f)","roles":["extraction"],"url":"https://sah.borca.ai/u/12632b8b5f"}],"url":"https://sah.borca.ai/concepts/co_365627c0192464e9b19dec9e030b97c5"},{"public_id":"co_391f15e6bb95f8bd7092e97255e8352e","status":"active","name":"alternative code","description":"Alternative code paths or constructs used as a target for compiler optimization in OpenMP programs.","types":["code construct"],"aliases":[],"contributors":[{"id":1,"public_id":"12632b8b5f","public_label":"Anonymous (12632b8b5f)","roles":["extraction"],"url":"https://sah.borca.ai/u/12632b8b5f"}],"url":"https://sah.borca.ai/concepts/co_391f15e6bb95f8bd7092e97255e8352e"},{"public_id":"co_4e3188a08fa118085e67759407293e98","status":"active","name":"OpenMP compilers","description":"Compilers that support the OpenMP parallel programming model.","types":["software","compiler"],"aliases":["OpenMP compiler"],"contributors":[{"id":1,"public_id":"12632b8b5f","public_label":"Anonymous (12632b8b5f)","roles":["extraction"],"url":"https://sah.borca.ai/u/12632b8b5f"}],"url":"https://sah.borca.ai/concepts/co_4e3188a08fa118085e67759407293e98"},{"public_id":"co_7b259f07e2371f3a601868f3d1824062","status":"active","name":"orphaned directives","description":"OpenMP directives that appear outside the lexical region of their associated structured block.","types":["directive"],"aliases":[],"contributors":[{"id":1,"public_id":"12632b8b5f","public_label":"Anonymous (12632b8b5f)","roles":["extraction"],"url":"https://sah.borca.ai/u/12632b8b5f"}],"url":"https://sah.borca.ai/concepts/co_7b259f07e2371f3a601868f3d1824062"},{"public_id":"co_9d7c8e532b641cf1a7dc1238cb84c5e7","status":"active","name":"optimization techniques","description":"Code transformation techniques proposed for use in OpenMP compilation, including removing redundant synchronization and handling alternative code and orphaned directives.","types":["method","compiler optimization"],"aliases":["optimisation techniques"],"contributors":[{"id":1,"public_id":"12632b8b5f","public_label":"Anonymous (12632b8b5f)","roles":["extraction"],"url":"https://sah.borca.ai/u/12632b8b5f"}],"url":"https://sah.borca.ai/concepts/co_9d7c8e532b641cf1a7dc1238cb84c5e7"},{"public_id":"co_f0fd165bc324c308127e6265aec291f4","status":"active","name":"hand-coded equivalent solution","description":"A manually written implementation intended to be functionally equivalent to an OpenMP compiler-generated solution.","types":["baseline","implementation"],"aliases":["hand coded equivalent solution"],"contributors":[{"id":1,"public_id":"12632b8b5f","public_label":"Anonymous (12632b8b5f)","roles":["extraction"],"url":"https://sah.borca.ai/u/12632b8b5f"}],"url":"https://sah.borca.ai/concepts/co_f0fd165bc324c308127e6265aec291f4"}],"external_ids":{"DOI":"10.1155/2003/287461","ArXiv":null,"PubMed":null,"PubMedCentral":null,"MAG":2019322386,"DBLP":"journals/sp/Muller03","ACL":null},"open_access":{"is_open_access":true,"pdf_url":"https://downloads.hindawi.com/journals/sp/2003/287461.pdf","landing_url":"https://www.semanticscholar.org/paper/6e2876b67f5c3035490521660298e7b067d6d9e6","source":"semantic_scholar","pdf_url_source":"semantic_scholar_open_access_pdf","license":"CCBY","status":"GOLD","reason":null},"reference_availability":{"status":"available","references_indexed":true,"full_text_available":false,"full_text_source":null,"count_basis":"semantic_scholar_metadata","extraction_status":"not_applicable","reason":null},"source":{"provider":"episteme2","base_corpus":"semantic_scholar_dump","freshness_mode":"unknown","basis":["semantic_scholar_metadata","postgres_metadata"],"limits":["paper metadata is based on indexed upstream scholarly datasets","claims and concepts are available only for extracted papers","absence of claims or concepts means no extracted graph data is available in this response"],"status":"available","degraded":false,"degraded_reasons":[],"diagnostics":{"status":"available","degraded":false,"degraded_reasons":[],"metadata_status":"available","graph_status":"available","abstract_status":"available"},"source_flags":1},"paper_id":632413,"paper_uid":"4b7a1aa2-e553-4bc2-b8ac-10c009eb23f4","canonical_identity":{"paper_id":632413,"paper_uid":"4b7a1aa2-e553-4bc2-b8ac-10c009eb23f4","identity_status":"available","lookup_basis":"semantic_scholar_external_id","compatibility_path":"corpus_id"},"url":"https://sah.borca.ai/papers/33941218"}