{"doi":"10.1145/1594835.1504181","title":"How much parallelism is there in irregular applications?","abstract":"<jats:p>\n            Irregular programs are programs organized around pointer-based data structures such as trees and graphs. Recent investigations by the Galois project have shown that many irregular programs have a generalized form of data-parallelism called\n            <jats:italic>amorphous data-parallelism</jats:italic>\n            . However, in many programs, amorphous data-parallelism cannot be uncovered using static techniques, and its exploitation requires runtime strategies such as optimistic parallel execution. This raises a natural question: how much amorphous data-parallelism actually exists in irregular programs?\n          </jats:p>\n          <jats:p>\n            In this paper, we describe the design and implementation of a tool called ParaMeter that produces\n            <jats:italic>parallelism profiles</jats:italic>\n            for irregular programs. Parallelism profiles are an abstract measure of the amount of amorphous data-parallelism at different points in the execution of an algorithm, independent of implementation-dependent details such as the number of cores, cache sizes, load-balancing, etc. ParaMeter can also generate constrained parallelism profiles for a fixed number of cores. We show parallelism profiles for seven irregular applications, and explain how these profiles provide insight into the behavior of these applications.\n          </jats:p>","journal":"ACM SIGPLAN Notices","year":2009,"id":27777,"datarank":1.8962863603220868,"base_score":3.6109179126442243,"endowment":3.6109179126442243,"self_citation_contribution":0.5416376868966337,"citation_network_contribution":1.354648673425453,"self_endowment_contribution":0.5416376868966337,"citer_contribution":1.354648673425453,"corpus_percentile":null,"corpus_rank":null,"citation_count":36,"citer_count":36,"citers_with_citation_signal":31,"citers_with_endowment":31,"datacite_reuse_total":0,"is_dataset":false,"is_dataset_confidence":null,"is_data_producer":false,"deposit_databanks":null,"is_oa":false,"file_count":0,"downloads":0,"has_version_chain":false,"published_date":null,"fair_score":null,"fair_percentile":null,"algorithm_id":"datarank_citation_only_1hop_v6","ranking_scope":"data_only","authors":[{"id":157358,"name":"Martin Burtscher","orcid":"0000-0002-5232-3632","position":1,"is_corresponding":false},{"id":157359,"name":"Rajeshkar Inkulu","orcid":null,"position":2,"is_corresponding":false},{"id":157360,"name":"Keshav Pingali","orcid":null,"position":3,"is_corresponding":false},{"id":157361,"name":"Calin Casçaval","orcid":null,"position":4,"is_corresponding":false},{"id":157357,"name":"Milind Kulkarni","orcid":null,"position":0,"is_corresponding":false}],"reference_count":0,"raw_metadata":{"has_enrichment":true,"base_score":3.6109179126442243,"endowment":3.6109179126442243,"datacite_reuse_total":0,"file_count":0,"downloads":0,"views":0,"has_version_chain":false,"is_dataset":false,"is_oa":false,"pmid":"24523987","pmcid":null,"openalex_id":"https://openalex.org/W3007272028","authors":[],"funders":[],"total_grants":0,"fwci":1.34,"citation_percentile":0.83057265,"influential_citations":0,"citation_trend":[{"year":2012,"count":2},{"year":2013,"count":3},{"year":2014,"count":9},{"year":2015,"count":5},{"year":2016,"count":1},{"year":2017,"count":5},{"year":2018,"count":1},{"year":2021,"count":3},{"year":2022,"count":2},{"year":2023,"count":1},{"year":2025,"count":1}],"oa_status":"closed","license":"https://www.acm.org/publications/policies/copyright_policy#Background","oa_locations":[{"url":"https://dl.acm.org/doi/10.1145/1594835.1504181","host_type":"publisher"},{"url":"https://dl.acm.org/doi/pdf/10.1145/1594835.1504181","host_type":"publisher"},{"url":"https://doi.org/10.1145/1594835.1504181","host_type":"journal"}],"fields_of_study":["Parallel Computing and Optimization Techniques","Advanced Data Storage Technologies","Distributed and Parallel Computing Systems","Computer Science"],"mesh_terms":[],"keywords":["Computer science","Instruction-level parallelism","Data parallelism","Parallelism (grammar)","Task parallelism","Parallel computing","Implicit parallelism","Cache","Pointer (user interface)"],"sdg_mappings":[],"linked_datasets":[],"clinical_trials":[],"software_tools":[],"database_accessions":[],"source":"live","citation_network_status":"fetched"},"created_at":"2026-06-08T19:24:14.537099Z","pmid":null,"pmcid":null,"fwci":null,"citation_percentile":null,"influential_citations":0,"oa_status":null,"license":null,"views":0,"total_file_size_bytes":0,"version_count":0,"fair_f":null,"fair_a":null,"fair_i":null,"fair_r":null,"fair_zscore":null,"fair_rationale":null,"fair_model":null,"fair_agent_version":null,"fair_fulltext_source":null,"fair_has_llm":null,"fair_computed_at":null,"clinical_trials":[],"software_tools":[],"db_accessions":[],"linked_datasets":[],"topics":[]}