Automatic Parallelism Management
On any modern computer architecture today, parallelism comes with a modest cost, born from the creation and management of threads or tasks. Today, programmers battle this cost by manually optimizing/tuning their codes to minimize the cost of parallelism without harming its benefit, performance. This...
Saved in:
| Published in: | Proceedings of ACM on programming languages Vol. 8; no. POPL; pp. 1118 - 1149 |
|---|---|
| Main Authors: | , , , |
| Format: | Journal Article |
| Language: | English |
| Published: |
New York, NY, USA
ACM
02.01.2024
|
| Subjects: | |
| ISSN: | 2475-1421, 2475-1421 |
| Online Access: | Get full text |
| Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
| Abstract | On any modern computer architecture today, parallelism comes with a modest cost, born from the creation and management of threads or tasks. Today, programmers battle this cost by manually optimizing/tuning their codes to minimize the cost of parallelism without harming its benefit, performance. This is a difficult battle: programmers must reason about architectural constant factors hidden behind layers of software abstractions, including thread schedulers and memory managers, and their impact on performance, also at scale. In languages that support higher-order functions, the battle hardens: higher order functions can make it difficult, if not impossible, to reason about the cost and benefits of parallelism. Motivated by these challenges and the numerous advantages of high-level languages, we believe that it has become essential to manage parallelism automatically so as to minimize its cost and maximize its benefit. This is a challenging problem, even when considered on a case-by-case, application-specific basis. But if a solution were possible, then it could combine the many correctness benefits of high-level languages with performance by managing parallelism without the programmer effort needed to ensure performance. This paper proposes techniques for such automatic management of parallelism by combining static (compilation) and run-time techniques. Specifically, we consider the Parallel ML language with task parallelism, and describe a compiler pipeline that embeds “potential parallelism” directly into the call-stack and avoids the cost of task creation by default. We then pair this compilation pipeline with a run-time system that dynamically converts potential parallelism into actual parallel tasks. Together, the compiler and run-time system guarantee that the cost of parallelism remains low without losing its benefit. We prove that our techniques have no asymptotic impact on the work and span of parallel programs and thus preserve their asymptotic properties. We implement the proposed techniques by extending the MPL compiler for Parallel ML and show that it can eliminate the burden of manual optimization while delivering good practical performance. |
|---|---|
| AbstractList | On any modern computer architecture today, parallelism comes with a modest cost, born from the creation and management of threads or tasks. Today, programmers battle this cost by manually optimizing/tuning their codes to minimize the cost of parallelism without harming its benefit, performance. This is a difficult battle: programmers must reason about architectural constant factors hidden behind layers of software abstractions, including thread schedulers and memory managers, and their impact on performance, also at scale. In languages that support higher-order functions, the battle hardens: higher order functions can make it difficult, if not impossible, to reason about the cost and benefits of parallelism.
Motivated by these challenges and the numerous advantages of high-level languages, we believe that it has become essential to manage parallelism automatically so as to minimize its cost and maximize its benefit. This is a challenging problem, even when considered on a case-by-case, application-specific basis. But if a solution were possible, then it could combine the many correctness benefits of high-level languages with performance by managing parallelism without the programmer effort needed to ensure performance. This paper proposes techniques for such automatic management of parallelism by combining static (compilation) and run-time techniques. Specifically, we consider the Parallel ML language with task parallelism, and describe a compiler pipeline that embeds “potential parallelism” directly into the call-stack and avoids the cost of task creation by default. We then pair this compilation pipeline with a run-time system that dynamically converts potential parallelism into actual parallel tasks. Together, the compiler and run-time system guarantee that the cost of parallelism remains low without losing its benefit. We prove that our techniques have no asymptotic impact on the work and span of parallel programs and thus preserve their asymptotic properties. We implement the proposed techniques by extending the MPL compiler for Parallel ML and show that it can eliminate the burden of manual optimization while delivering good practical performance. On any modern computer architecture today, parallelism comes with a modest cost, born from the creation and management of threads or tasks. Today, programmers battle this cost by manually optimizing/tuning their codes to minimize the cost of parallelism without harming its benefit, performance. This is a difficult battle: programmers must reason about architectural constant factors hidden behind layers of software abstractions, including thread schedulers and memory managers, and their impact on performance, also at scale. In languages that support higher-order functions, the battle hardens: higher order functions can make it difficult, if not impossible, to reason about the cost and benefits of parallelism. Motivated by these challenges and the numerous advantages of high-level languages, we believe that it has become essential to manage parallelism automatically so as to minimize its cost and maximize its benefit. This is a challenging problem, even when considered on a case-by-case, application-specific basis. But if a solution were possible, then it could combine the many correctness benefits of high-level languages with performance by managing parallelism without the programmer effort needed to ensure performance. This paper proposes techniques for such automatic management of parallelism by combining static (compilation) and run-time techniques. Specifically, we consider the Parallel ML language with task parallelism, and describe a compiler pipeline that embeds “potential parallelism” directly into the call-stack and avoids the cost of task creation by default. We then pair this compilation pipeline with a run-time system that dynamically converts potential parallelism into actual parallel tasks. Together, the compiler and run-time system guarantee that the cost of parallelism remains low without losing its benefit. We prove that our techniques have no asymptotic impact on the work and span of parallel programs and thus preserve their asymptotic properties. We implement the proposed techniques by extending the MPL compiler for Parallel ML and show that it can eliminate the burden of manual optimization while delivering good practical performance. |
| ArticleNumber | 38 |
| Author | Fluet, Matthew Rainey, Mike Acar, Umut A. Westrick, Sam |
| Author_xml | – sequence: 1 givenname: Sam orcidid: 0000-0003-2848-9808 surname: Westrick fullname: Westrick, Sam email: swestric@cs.cmu.edu organization: Carnegie Mellon University, Pittsburgh, USA – sequence: 2 givenname: Matthew orcidid: 0000-0002-4194-7618 surname: Fluet fullname: Fluet, Matthew email: mtf@cs.rit.edu organization: Rochester Institute of Technology, Rochester, USA – sequence: 3 givenname: Mike orcidid: 0009-0002-9659-1636 surname: Rainey fullname: Rainey, Mike email: me@mike-rainey.site organization: Carnegie Mellon University, Pittsburgh, USA – sequence: 4 givenname: Umut A. orcidid: 0000-0002-2623-4986 surname: Acar fullname: Acar, Umut A. email: umut@cs.cmu.edu organization: Carnegie Mellon University, Pittsburgh, USA |
| BookMark | eNptz01LAzEQBuAgFay1ePe0N0_RZJI0u8dS_IKKHvS8TLJZiWSzksSD_96VVhHxMjPwPgwzx2QWx-gIOeXsgnOpLsVKQF2zAzIHqRXlEvjs13xEljm_MsZ4I2Qtmjmp1u9lHLB4Wz1iwhBc8Hmo7jHiixtcLCfksMeQ3XLfF-T5-uppc0u3Dzd3m_WWImhdaNerWnEtpBGKOeRgGrAoUHVGMgXWdNZKhVoiM3I1lc4BTCmA5c5NckHobq9NY87J9a31ZbprjCWhDy1n7deH7f7DyZ__8W_JD5g-_pFnO4l2-EHf4SefEViy |
| CitedBy_id | crossref_primary_10_1017_S0956796825100051 |
| Cites_doi | 10.1109/MASC0TS.2018.00041 10.1145/3453483.3454107 10.1145/3591284 10.1145/3332466.3374536 10.1145/3018743.3018758 10.1145/1543135.1542490 10.1145/3293883.3295725 10.1109/SC41405.2020.00057 10.1145/1291201.1291217 10.1006/jsco.1996.0038 10.1145/1007912.1007933 10.1007/3-540-46425-5_4 10.1145/258492.258493 10.1145/125826.125861 10.1145/1693453.1693479 10.1007/978-3-540-89330-1_10 10.1145/2951913.2951946 10.1145/1159876.1159877 10.1145/1640089.1640097 10.1007/s00224-002-1057-3 10.1145/337449.337465 10.1145/2103656.2103702 10.1145/1993478.1993482 10.1145/2647508.2647514 10.1145/227234.227246 10.1145/277650.277725 10.1145/2967938.2967968 10.1017/S0956796814000161 10.1145/1378533.1378574 10.1145/324133.324234 10.1145/2048066.2048106 10.1145/3341685 10.1017/S0956796812000172 10.1145/3062341.3062370 10.1007/BFb0024155 10.1145/800055.802017 10.1145/3371115 10.1145/1094811.1094852 10.1145/182409.182442 10.1145/3434299 10.1109/12.21127 10.1145/3385412.3386013 10.1007/s002240011004 10.1145/1583991.1584019 10.1145/3178487.3178494 10.1145/2935764.2935793 10.1145/1007912.1007948 10.1145/2254064.2254127 10.1145/800194.805852 10.1145/3192366.3192391 10.1145/3591249 10.1007/978-3-642-16612-9_28 10.1145/3062341.3062374 10.1145/2935764.2935801 10.1145/3453483.3460969 10.1145/317636.317800 10.1145/2629643 10.1145/277651.277696 10.1145/2951913.2951935 10.1145/3547646 10.1109/71.86103 10.1145/781498.781528 10.1145/2809808 10.1145/165180.165205 10.1145/1989493.1989553 10.1109/SC.2008.5213927 10.1017/S0956796898003086 10.1145/321812.321815 10.1145/1095810.1095832 10.1145/69558.69562 10.1145/1248648.1248656 |
| ContentType | Journal Article |
| Copyright | Owner/Author |
| Copyright_xml | – notice: Owner/Author |
| DBID | AAYXX CITATION |
| DOI | 10.1145/3632880 |
| DatabaseName | CrossRef |
| DatabaseTitle | CrossRef |
| DatabaseTitleList | CrossRef |
| DeliveryMethod | fulltext_linktorsrc |
| Discipline | Computer Science |
| EISSN | 2475-1421 |
| EndPage | 1149 |
| ExternalDocumentID | 10_1145_3632880 3632880 |
| GrantInformation_xml | – fundername: National Science Foundation grantid: CCF-1901381,CCF-2115104,CCF-2119352,CCF-2107241 funderid: https://doi.org/10.13039/100000001 |
| GroupedDBID | AAKMM AAYFX ACM AEFXT AEJOY AIKLT AKRVB ALMA_UNASSIGNED_HOLDINGS GUFHI LHSKQ M~E OK1 ROL AAYXX CITATION |
| ID | FETCH-LOGICAL-a277t-df5851734b350ea12b92ca3a5db4052cbdcc45a74a0b46a0bde22a5d22c1eeca3 |
| ISICitedReferencesCount | 5 |
| ISICitedReferencesURI | http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=001170729400039&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| ISSN | 2475-1421 |
| IngestDate | Sat Nov 29 07:45:08 EST 2025 Tue Nov 18 22:32:35 EST 2025 Mon Jul 07 16:40:28 EDT 2025 |
| IsDoiOpenAccess | true |
| IsOpenAccess | true |
| IsPeerReviewed | true |
| IsScholarly | true |
| Issue | POPL |
| Keywords | parallel programming languages granularity control compilers |
| Language | English |
| License | This work is licensed under a Creative Commons Attribution International 4.0 License. |
| LinkModel | OpenURL |
| MergedId | FETCHMERGED-LOGICAL-a277t-df5851734b350ea12b92ca3a5db4052cbdcc45a74a0b46a0bde22a5d22c1eeca3 |
| ORCID | 0000-0002-2623-4986 0000-0002-4194-7618 0000-0003-2848-9808 0009-0002-9659-1636 |
| OpenAccessLink | https://dl.acm.org/doi/10.1145/3632880 |
| PageCount | 32 |
| ParticipantIDs | crossref_citationtrail_10_1145_3632880 crossref_primary_10_1145_3632880 acm_primary_3632880 |
| PublicationCentury | 2000 |
| PublicationDate | 2024-01-02 |
| PublicationDateYYYYMMDD | 2024-01-02 |
| PublicationDate_xml | – month: 01 year: 2024 text: 2024-01-02 day: 02 |
| PublicationDecade | 2020 |
| PublicationPlace | New York, NY, USA |
| PublicationPlace_xml | – name: New York, NY, USA |
| PublicationTitle | Proceedings of ACM on programming languages |
| PublicationTitleAbbrev | ACM PACMPL |
| PublicationYear | 2024 |
| Publisher | ACM |
| Publisher_xml | – name: ACM |
| References | (bib43) 2016 (bib69) 1997 (bib18) 1999; 46 (bib62) 2008 (bib63) 2016 (bib49) 1996 (bib6) 2011 (bib73) 2012 (bib20) 1974; 21 (bib22) 2005 (bib56) 2017 (bib64) 2023 (bib84) 2022 (bib26) 1989; 38 (bib10) 2001; 34 (bib54) 2020 (bib19) 2009 (bib29) 1997 (bib50) 2011 (bib79) 2014; 36 (bib38) 1984 (bib70) 2017 (bib80) 2016 (bib4) 2002; 35 (bib81) 2006 (bib25) 2008 (bib31) 2009; 44 (bib33) 2007 (bib13) 2004 (bib59) 2019 (bib5) 2018 (bib82) 1989 (bib86) 2020 (bib67) 2012 (bib36) 2018 (bib72) 2014 (bib45) 2000 (bib30) 2005 (bib83) 2022 (bib16) 2011 (bib41) 2014 (bib48) 1995 (bib28) 1993 (bib1) 2019 (bib44) 2017 (bib14) 2012; 22 (bib35) 2020 (bib24) 2008 (bib34) 1998 (bib87) 2005 (bib78) 2010 (bib12) 2021 (bib39) 2009; 44 bib52 (bib9) 2023; 7 (bib53) 1991; 2 (bib8) 2021 (bib17) 2004 (bib55) 2016 (bib27) 1999 (bib47) 2007 (bib46) 2015; 2 (bib61) 1990; 441 (bib21) 2000 (bib7) 2016 (bib74) 2009 (bib77) 2012 (bib68) 1972 (bib42) 2011 (bib51) 1991 (bib66) 2010; 6418 (bib58) 2023; 7 (bib71) 1999 (bib32) 2011; 20 (bib37) 2018 (bib40) 1994 (bib75) 2009 (bib2) 2020 (bib11) 1989; 11 (bib3) 2015 (bib15) 1996; 39 (bib57) 2018 (bib23) 1998 (bib65) 2021 (bib60) 2003 (bib76) 1998; 8 (bib85) 2020 e_1_3_1_60_1 e_1_3_1_81_1 e_1_3_1_22_1 e_1_3_1_45_1 e_1_3_1_66_1 e_1_3_1_24_1 e_1_3_1_47_1 e_1_3_1_68_1 e_1_3_1_8_1 e_1_3_1_41_1 e_1_3_1_62_1 e_1_3_1_87_1 e_1_3_1_20_1 e_1_3_1_43_1 e_1_3_1_64_1 e_1_3_1_85_1 e_1_3_1_4_1 e_1_3_1_6_1 e_1_3_1_26_1 e_1_3_1_49_1 e_1_3_1_28_1 e_1_3_1_2_1 Tzannes Alexandros (e_1_3_1_78_1) 2012 e_1_3_1_72_1 e_1_3_1_70_1 Fineman Jeremy T. (e_1_3_1_31_1) 2005 e_1_3_1_34_1 e_1_3_1_55_1 e_1_3_1_36_1 e_1_3_1_57_1 e_1_3_1_13_1 e_1_3_1_30_1 e_1_3_1_51_1 e_1_3_1_76_1 e_1_3_1_11_1 e_1_3_1_32_1 e_1_3_1_53_1 e_1_3_1_74_1 e_1_3_1_17_1 e_1_3_1_15_1 e_1_3_1_38_1 e_1_3_1_59_1 e_1_3_1_19_1 e_1_3_1_82_1 e_1_3_1_61_1 e_1_3_1_80_1 e_1_3_1_44_1 e_1_3_1_67_1 e_1_3_1_23_1 e_1_3_1_69_1 e_1_3_1_88_1 e_1_3_1_25_1 e_1_3_1_46_1 e_1_3_1_9_1 e_1_3_1_63_1 e_1_3_1_86_1 e_1_3_1_42_1 e_1_3_1_65_1 e_1_3_1_21_1 e_1_3_1_5_1 Hiraishi Tasuku (e_1_3_1_40_1) 2009; 44 e_1_3_1_7_1 e_1_3_1_27_1 e_1_3_1_48_1 e_1_3_1_3_1 e_1_3_1_29_1 Westrick Sam (e_1_3_1_84_1) 2022 e_1_3_1_71_1 Weening Joseph S. (e_1_3_1_83_1) 1989 e_1_3_1_50_1 e_1_3_1_10_1 Fluet Matthew (e_1_3_1_33_1) 2011; 20 e_1_3_1_56_1 e_1_3_1_79_1 e_1_3_1_35_1 e_1_3_1_58_1 e_1_3_1_77_1 e_1_3_1_14_1 e_1_3_1_52_1 e_1_3_1_75_1 e_1_3_1_12_1 e_1_3_1_54_1 e_1_3_1_73_1 e_1_3_1_18_1 e_1_3_1_16_1 e_1_3_1_37_1 e_1_3_1_39_1 |
| References_xml | – start-page: 355 year: 2018 end-page: 368 ident: bib37 article-title: An Evaluation of Asynchronous Software Events on Modern Hardware publication-title: 2018 IEEE 26th International Symposium on Modeling, Analysis, and Simulation of Computer and Telecommunication Systems (MASCOTS) doi: 10.1109/MASC0TS.2018.00041 – start-page: 75 year: 2014 end-page: 86 ident: bib41 article-title: Habanero-Java library: a Java 8 framework for multicore programming publication-title: 2014 International Conference on Principles and Practices of Programming on the Java Platform Virtual Machines, Languages and Tools, PPPJ ’14 – start-page: 9 year: 1984 end-page: 17 ident: bib38 publication-title: Proceedings of the 1984 ACM Symposium on LISP and functional programming – start-page: 56 year: 2000 end-page: 71 ident: bib21 article-title: Flow-directed Closure Conversion for Typed Languages publication-title: European Symposium on Programming – start-page: 1249 year: 2021 end-page: 1263 ident: bib12 publication-title: Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation doi: 10.1145/3453483.3454107 – start-page: 769 year: 2018 end-page: 782 ident: bib5 publication-title: Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation – start-page: 97 year: 2009 end-page: 116 ident: bib19 publication-title: Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications – year: 1989 ident: bib82 publication-title: Parallel Execution of Lisp Programs – volume: 7 start-page: 1558 issue: PLDI year: 2023 end-page: 1583 ident: bib9 article-title: Efficient Parallel Functional Programming with Effects publication-title: Proc. ACM Program. Lang. doi: 10.1145/3591284 – start-page: 207 year: 2008 end-page: 216 ident: bib24 publication-title: Proc. 20th ACM Symposium on Parallelism in Algorithms and Architectures – start-page: 167 year: 2003 end-page: 178 ident: bib60 publication-title: Proceedings of the ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPOPP 2003, June 11-13, 2003, San Diego, CA, USA – start-page: 519 year: 2005 end-page: 538 ident: bib22 publication-title: Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications – volume: 2 start-page: 17:1 issue: 3 year: 2015 end-page: 17:42 ident: bib46 article-title: On-the-Fly Pipeline Parallelism publication-title: TOPC – start-page: 1 year: 1999 end-page: 23 ident: bib71 article-title: Distance: A new metric for controlling granularity for parallel execution publication-title: Journal of Functional and Logic Programming – volume: 20 start-page: 1 issue: 5-6 year: 2011 end-page: 40 ident: bib32 article-title: Implicitly threaded parallelism in Manticore publication-title: Journal of Functional Programming – start-page: 71 year: 2016 end-page: 82 ident: bib55 article-title: Latency-Hiding Work Stealing: Scheduling Interacting Parallel Computations with Work Stealing publication-title: Proceedings of the 28th ACM Symposium on Parallelism in Algorithms and Architectures, SPAA 2016, Asilomar State Beach/Pacific Grove, CA, USA, July 11-13, 2016 – start-page: 217 year: 2020 end-page: 231 ident: bib86 publication-title: PPoPP ’20: 25th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, San Diego, California, USA, February 22-26, 2020 doi: 10.1145/3332466.3374536 – start-page: 208 year: 1999 end-page: 219 ident: bib27 article-title: Static Interpretation of Modules publication-title: International Conference on Functional Programming – start-page: 355 year: 2011 end-page: 366 ident: bib16 article-title: Scheduling irregular parallel computations on hierarchical caches publication-title: Proc. ACM Symposium on Parallelism in Algorithms and Architectures (SPAA). – start-page: 1 year: 1997 end-page: 11 ident: bib29 article-title: Efficient Detection of Determinacy Races in Cilk Programs publication-title: Proceedings of the Ninth Annual ACM Symposium on Parallel Algorithms and Architectures (SPAA) – start-page: 107 year: 2007 end-page: 118 ident: bib47 article-title: Lightweight concurrency primitives for GHC publication-title: Proceedings of the ACM SIGPLAN Workshop on Haskell, Haskell 2007, Freiburg, Germany, September 30, 2007 – year: 2022 ident: bib84 article-title: ntanglement Detection With Near-Zero Cost publication-title: Proceedings of the 24th ACM SIGPLAN International Conference on Functional Programming (ICFP 2022) – year: 2005 ident: bib30 publication-title: Provably Good Race Detection That Runs in Parallel – start-page: 157 year: 2017 end-page: 170 ident: bib44 publication-title: Proceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2017, Barcelona, Spain, June 18-23, 2017 – year: 1998 ident: bib23 article-title: Detecting data races in Cilk programs that use locks publication-title: Proceedings of the 10th ACM Symposium on Parallel Algorithms and Architectures (SPAA ’98) – start-page: 91 year: 2009 end-page: 100 ident: bib75 publication-title: Proceedings of the Twenty-first Annual Symposium on Parallelism in Algorithms and Architectures – volume: 44 start-page: 55 issue: 4 year: 2009 end-page: 64 ident: bib39 article-title: Backtracking-based load balancing publication-title: Proceedings of the 2009 ACM SIGPLAN Symposium on Principles & Practice of Parallel Programming – volume: 7 start-page: 712 issue: PLDI year: 2023 end-page: 735 ident: bib58 article-title: Responsive Parallelism with Synchronization publication-title: Proc. ACM Program. Lang. – year: 1997 ident: bib69 article-title: Eraser: A Dynamic Race Detector for Multi-Threaded Programs publication-title: Proceedings of the Sixteenth ACM Symposium on Operating Systems Principles (SOSP) – year: 2022 ident: bib83 publication-title: Efficient and Scalable Parallel Functional Programming Through Disentanglement – start-page: 249 year: 2017 end-page: 265 ident: bib70 publication-title: Proceedings of the 22nd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming doi: 10.1145/3018743.3018758 – start-page: 37 year: 2007 end-page: 44 ident: bib33 publication-title: Proceedings of the 2007 Workshop on Declarative Aspects of Multicore Programming – ident: bib52 publication-title: MLton web site – volume: 441 start-page: 182 year: 1990 end-page: 199 ident: bib61 publication-title: Parallel Lisp: Languages and Systems – start-page: 179 year: 1993 end-page: 187 ident: bib28 publication-title: Proceedings of the conference on Functional programming languages and computer architecture (FPCA ’93) – volume: 44 start-page: 121 issue: 6 year: 2009 end-page: 133 ident: bib31 article-title: FastTrack: efficient and precise dynamic race detection publication-title: SIGPLAN Not doi: 10.1145/1543135.1542490 – volume: 8 start-page: 367 issue: 4 year: 1998 end-page: 412 ident: bib76 article-title: From ML to Ada: Strongly-Typed Language Interoperability via Source Translation publication-title: Journal of Functional Programming – start-page: 79 year: 1994 end-page: 90 ident: bib40 publication-title: Proceedings of the 1994 ACM Conference on LISP and Functional Programming – volume: 46 start-page: 720 issue: 5 year: 1999 end-page: 748 ident: bib18 article-title: Scheduling multithreaded computations by work stealing publication-title: J. ACM – year: 2020 ident: bib2 publication-title: MPL: A High-Performance Compiler for Parallel ML – volume: 11 start-page: 598 issue: 4 year: 1989 end-page: 632 ident: bib11 article-title: I-structures: Data Structures for Parallel Computing publication-title: ACM Trans. Program. Lang. Syst. – start-page: 214 year: 2019 end-page: 228 ident: bib1 publication-title: Proceedings of the 24th Symposium on Principles and Practice of Parallel Programming doi: 10.1145/3293883.3295725 – volume: 2 start-page: 264 issue: 3 year: 1991 end-page: 280 ident: bib53 article-title: Lazy task creation: a technique for increasing the granularity of parallel programs publication-title: IEEE Transactions on Parallel and Distributed Systems – start-page: 387 year: 2012 end-page: 400 ident: bib73 publication-title: Proceedings of the 39th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2012, Philadelphia, Pennsylvania, USA, January 22-28, 2012 – year: 2021 ident: bib65 publication-title: Proceedings of the 42nd ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ’21) – start-page: 383 year: 2008 end-page: 414 ident: bib62 article-title: Harnessing the Multicores: Nested Data Parallelism in Haskell publication-title: FSTTCS – start-page: 1 year: 1995 end-page: 10 ident: bib48 article-title: On the granularity of divide-and-conquer parallelism publication-title: Proceedings of the 1995 Glasgow Workshop on Functional Programming – start-page: 179 year: 2010 end-page: 190 ident: bib78 article-title: Lazy binary-splitting: a run-time adaptive work-stealing scheduler publication-title: PPoPP ’10 – start-page: 18 year: 2016 end-page: 32 ident: bib7 article-title: Dag-calculus: A Calculus for Parallel Computation publication-title: Proceedings of the 21st ACM SIGPLAN International Conference on Functional Programming (ICFP 2016) – start-page: 81 year: 2018 end-page: 93 ident: bib36 article-title: Hierarchical memory management for mutable state publication-title: Proceedings of the 23rd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP, Vienna, Austria, February 24-28, 2018 – start-page: 133 year: 2004 end-page: 144 ident: bib13 article-title: On-the-Fly Maintenance of Series-Parallel Relationships in Fork-Join Multithreaded Programs publication-title: 16th Annual ACM Symposium on Parallel Algorithms and Architectures – volume: 21 start-page: 201 issue: 2 year: 1974 end-page: 206 ident: bib20 article-title: The parallel evaluation of general arithmetic expressions publication-title: J. ACM – start-page: 677 year: 2017 end-page: 692 ident: bib56 publication-title: Proceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation – start-page: 1 year: 2014 end-page: 62 ident: bib72 article-title: MultiMLton: A multicore-aware runtime for standard ML publication-title: Journal of Functional Programming – volume: 6418 start-page: 368 year: 2010 end-page: 383 ident: bib66 publication-title: Runtime Verification – year: 2021 ident: bib8 article-title: Provably Space Efficient Parallel Functional Programming publication-title: Proceedings of the 48th Annual ACM Symposium on Principles of Programming Languages (POPL)" – year: 2012 ident: bib77 publication-title: Enhancing Productivity and Performance Portability of General-Purpose Parallel Programming – year: 2020 ident: bib85 article-title: Disentanglement in Nested-Parallel Programs publication-title: Proceedings of the 47th Annual ACM Symposium on Principles of Programming Languages (POPL)" – start-page: 499 year: 2011 end-page: 518 ident: bib6 article-title: Oracle Scheduling: Controlling Granularity in Implicitly Parallel Languages publication-title: ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA) – volume: 39 start-page: 85 issue: 3 year: 1996 end-page: 97 ident: bib15 article-title: Programming Parallel Algorithms publication-title: Commun. ACM – year: 2004 ident: bib17 publication-title: SPAA – volume: 38 start-page: 408 issue: 3 year: 1989 end-page: 423 ident: bib26 article-title: Speedup versus efficiency in parallel systems publication-title: IEEE Transactions on Computing – start-page: 1 year: 2008 end-page: 11 ident: bib25 article-title: An adaptive cut-off for task parallelism publication-title: 2008 SC - International Conference for High Performance Computing, Networking, Storage and Analysis – start-page: 36 year: 2000 end-page: 43 ident: bib45 publication-title: Proceedings of the ACM 2000 conference on Java Grande – year: 2018 ident: bib57 article-title: Types and Cost Models for Responsive Parallelism publication-title: Proceedings of the 14th ACM SIGPLAN International Conference on Functional Programming (ICFP ’18) – start-page: 1 year: 2006 end-page: 1 ident: bib81 publication-title: ML ’06: Proceedings of the 2006 workshop on ML – start-page: 139 year: 2016 end-page: 150 ident: bib43 publication-title: Proceedings of the 2016 International Conference on Parallel Architectures and Compilation – start-page: 24 year: 1991 end-page: 33 ident: bib51 article-title: On-the-fly Detection of Data Races for Programs with Nested Fork-Join Parallelism publication-title: Proceedings of Supercomputing’91 – start-page: 212 year: 1998 end-page: 223 ident: bib34 article-title: The Implementation of the Cilk-5 Multithreaded Language publication-title: PLDI – year: 2009 ident: bib74 publication-title: Scheduling Deterministic Parallel Programs – volume: 34 start-page: 115 issue: 2 year: 2001 end-page: 144 ident: bib10 article-title: Thread Scheduling for Multiprogrammed Multiprocessors publication-title: Theory of Computing Systems – year: 2015 ident: bib3 article-title: Coupling Memory and Computation for Locality Management publication-title: Summit on Advances in Programming Languages (SNAPL) – year: 2020 ident: bib54 article-title: Responsive Parallelism with Futures and State publication-title: Proceedings of the ACM Conference on Programming Language Design and Implementation (PLDI) – volume: 36 start-page: 51 issue: 3 year: 2014 ident: bib79 article-title: Lazy Scheduling: A Runtime Adaptive Scheduler for Declarative Parallelism publication-title: TOPLAS – year: 2011 ident: bib42 publication-title: Intel Threading Building Blocks – year: 2019 ident: bib59 article-title: Fairness in Responsive Parallelism publication-title: Proceedings of the 24th ACM SIGPLAN International Conference on Functional Programming (ICFP 2019) – start-page: 1 year: 2020 end-page: 15 ident: bib35 article-title: Compiler-Based Timing For Extremely Fine-Grain Preemptive Parallelism publication-title: SC20: International Conference for High Performance Computing, Networking, Storage and Analysis doi: 10.1109/SC41405.2020.00057 – start-page: 221 year: 2005 end-page: 234 ident: bib87 publication-title: Proceedings of the 20th ACM Symposium on Operating Systems Principles 2005, SOSP 2005, Brighton, UK, October 23-26, 2005 – start-page: 717 year: 1972 end-page: 740 ident: bib68 article-title: Definitional Interpreters for Higher-order Programming Languages publication-title: Proceedings of the 25th ACM National Conference – start-page: 715 issue: 4-6 year: 1996 end-page: 734 ident: bib49 article-title: A methodology for granularity-based control of parallelism in logic programs publication-title: Journal of Symbolic Computation – start-page: 392 year: 2016 end-page: 406 ident: bib63 publication-title: Proceedings of the 21st ACM SIGPLAN International Conference on Functional Programming (ICFP 2016) – volume: 35 start-page: 321 issue: 3 year: 2002 end-page: 347 ident: bib4 article-title: The Data Locality of Work Stealing publication-title: Theory of Computing Systems – volume: 22 start-page: 382 issue: 4-5 year: 2012 end-page: 438 ident: bib14 article-title: Lazy Tree Splitting publication-title: J. Funct. Program. – start-page: 83 year: 2016 end-page: 94 ident: bib80 article-title: Provably Good and Practically Efficient Parallel Race Detection for Fork-Join Programs publication-title: Proceedings of the 28th ACM Symposium on Parallelism in Algorithms and Architectures, SPAA 2016, Asilomar State Beach/Pacific Grove, CA, USA, July 11-13, 2016 – year: 2023 ident: bib64 publication-title: The best multicore-parallelization refactoring you’ve never heard of – start-page: 531 year: 2012 end-page: 542 ident: bib67 article-title: Scalable and Precise Dynamic Datarace Detection for Structured Parallelism publication-title: Proceedings of the 33rd ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ’12) – start-page: 21 year: 2011 end-page: 32 ident: bib50 publication-title: Proceedings of the 10th International Symposium on Memory Management, ISMM 2011, San Jose, CA, USA, June 04 - 05, 2011 – ident: e_1_3_1_48_1 doi: 10.1145/1291201.1291217 – ident: e_1_3_1_50_1 doi: 10.1006/jsco.1996.0038 – ident: e_1_3_1_14_1 doi: 10.1145/1007912.1007933 – ident: e_1_3_1_72_1 – volume-title: Efficient and Scalable Parallel Functional Programming Through Disentanglement year: 2022 ident: e_1_3_1_84_1 – ident: e_1_3_1_2_1 doi: 10.1145/3293883.3295725 – volume: 44 start-page: 55 issue: 4 year: 2009 ident: e_1_3_1_40_1 article-title: Backtracking-based load balancing publication-title: Proceedings of the 2009 ACM SIGPLAN Symposium on Principles & Practice of Parallel Programming – ident: e_1_3_1_22_1 doi: 10.1007/3-540-46425-5_4 – ident: e_1_3_1_10_1 doi: 10.1145/3591284 – ident: e_1_3_1_30_1 doi: 10.1145/258492.258493 – ident: e_1_3_1_52_1 doi: 10.1145/125826.125861 – ident: e_1_3_1_79_1 doi: 10.1145/1693453.1693479 – volume-title: Provably Good Race Detection That Runs in Parallel year: 2005 ident: e_1_3_1_31_1 – ident: e_1_3_1_63_1 doi: 10.1007/978-3-540-89330-1_10 – ident: e_1_3_1_8_1 doi: 10.1145/2951913.2951946 – ident: e_1_3_1_82_1 doi: 10.1145/1159876.1159877 – ident: e_1_3_1_13_1 doi: 10.1145/3453483.3454107 – ident: e_1_3_1_20_1 doi: 10.1145/1640089.1640097 – volume: 20 start-page: 1 issue: 5 year: 2011 ident: e_1_3_1_33_1 article-title: Implicitly threaded parallelism in Manticore publication-title: Journal of Functional Programming – ident: e_1_3_1_5_1 doi: 10.1007/s00224-002-1057-3 – ident: e_1_3_1_46_1 doi: 10.1145/337449.337465 – ident: e_1_3_1_49_1 – ident: e_1_3_1_43_1 – ident: e_1_3_1_74_1 doi: 10.1145/2103656.2103702 – ident: e_1_3_1_51_1 doi: 10.1145/1993478.1993482 – ident: e_1_3_1_4_1 – ident: e_1_3_1_42_1 doi: 10.1145/2647508.2647514 – ident: e_1_3_1_16_1 doi: 10.1145/227234.227246 – ident: e_1_3_1_32_1 doi: 10.1145/1543135.1542490 – volume-title: Enhancing Productivity and Performance Portability of General-Purpose Parallel Programming year: 2012 ident: e_1_3_1_78_1 – ident: e_1_3_1_87_1 doi: 10.1145/3332466.3374536 – ident: e_1_3_1_35_1 doi: 10.1145/277650.277725 – ident: e_1_3_1_44_1 doi: 10.1145/2967938.2967968 – ident: e_1_3_1_73_1 doi: 10.1017/S0956796814000161 – ident: e_1_3_1_25_1 doi: 10.1145/1378533.1378574 – ident: e_1_3_1_19_1 doi: 10.1145/324133.324234 – ident: e_1_3_1_71_1 doi: 10.1145/3018743.3018758 – ident: e_1_3_1_7_1 doi: 10.1145/2048066.2048106 – ident: e_1_3_1_60_1 doi: 10.1145/3341685 – ident: e_1_3_1_65_1 – ident: e_1_3_1_36_1 doi: 10.1109/SC41405.2020.00057 – ident: e_1_3_1_15_1 doi: 10.1017/S0956796812000172 – ident: e_1_3_1_57_1 doi: 10.1145/3062341.3062370 – ident: e_1_3_1_62_1 doi: 10.1007/BFb0024155 – volume-title: Parallel Execution of Lisp Programs year: 1989 ident: e_1_3_1_83_1 – ident: e_1_3_1_39_1 doi: 10.1145/800055.802017 – ident: e_1_3_1_86_1 doi: 10.1145/3371115 – ident: e_1_3_1_23_1 doi: 10.1145/1094811.1094852 – ident: e_1_3_1_41_1 doi: 10.1145/182409.182442 – ident: e_1_3_1_9_1 doi: 10.1145/3434299 – ident: e_1_3_1_53_1 – ident: e_1_3_1_27_1 doi: 10.1109/12.21127 – ident: e_1_3_1_55_1 doi: 10.1145/3385412.3386013 – ident: e_1_3_1_11_1 doi: 10.1007/s002240011004 – ident: e_1_3_1_76_1 doi: 10.1145/1583991.1584019 – ident: e_1_3_1_37_1 doi: 10.1145/3178487.3178494 – ident: e_1_3_1_70_1 – ident: e_1_3_1_56_1 doi: 10.1145/2935764.2935793 – ident: e_1_3_1_18_1 doi: 10.1145/1007912.1007948 – ident: e_1_3_1_75_1 – ident: e_1_3_1_58_1 – ident: e_1_3_1_68_1 doi: 10.1145/2254064.2254127 – ident: e_1_3_1_69_1 doi: 10.1145/800194.805852 – ident: e_1_3_1_6_1 doi: 10.1145/3192366.3192391 – ident: e_1_3_1_59_1 doi: 10.1145/3591249 – ident: e_1_3_1_67_1 doi: 10.1007/978-3-642-16612-9_28 – ident: e_1_3_1_45_1 doi: 10.1145/3062341.3062374 – ident: e_1_3_1_81_1 doi: 10.1145/2935764.2935801 – ident: e_1_3_1_66_1 doi: 10.1145/3453483.3460969 – ident: e_1_3_1_38_1 doi: 10.1109/MASC0TS.2018.00041 – ident: e_1_3_1_28_1 doi: 10.1145/317636.317800 – ident: e_1_3_1_80_1 doi: 10.1145/2629643 – ident: e_1_3_1_24_1 doi: 10.1145/277651.277696 – ident: e_1_3_1_64_1 doi: 10.1145/2951913.2951935 – ident: e_1_3_1_85_1 doi: 10.1145/3547646 – ident: e_1_3_1_54_1 doi: 10.1109/71.86103 – ident: e_1_3_1_61_1 doi: 10.1145/781498.781528 – ident: e_1_3_1_47_1 doi: 10.1145/2809808 – ident: e_1_3_1_29_1 doi: 10.1145/165180.165205 – ident: e_1_3_1_3_1 – ident: e_1_3_1_17_1 doi: 10.1145/1989493.1989553 – ident: e_1_3_1_26_1 doi: 10.1109/SC.2008.5213927 – ident: e_1_3_1_77_1 doi: 10.1017/S0956796898003086 – ident: e_1_3_1_21_1 doi: 10.1145/321812.321815 – ident: e_1_3_1_88_1 doi: 10.1145/1095810.1095832 – ident: e_1_3_1_12_1 doi: 10.1145/69558.69562 – ident: e_1_3_1_34_1 doi: 10.1145/1248648.1248656 |
| SSID | ssj0001934839 |
| Score | 2.289555 |
| Snippet | On any modern computer architecture today, parallelism comes with a modest cost, born from the creation and management of threads or tasks. Today, programmers... |
| SourceID | crossref acm |
| SourceType | Enrichment Source Index Database Publisher |
| StartPage | 1118 |
| SubjectTerms | Compilers Functional languages Parallel programming languages Procedures, functions and subroutines Software and its engineering |
| SubjectTermsDisplay | Software and its engineering -- Compilers Software and its engineering -- Functional languages Software and its engineering -- Parallel programming languages Software and its engineering -- Procedures, functions and subroutines |
| Title | Automatic Parallelism Management |
| URI | https://dl.acm.org/doi/10.1145/3632880 |
| Volume | 8 |
| WOSCitedRecordID | wos001170729400039&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| hasFullText | 1 |
| inHoldings | 1 |
| isFullTextHit | |
| isPrint | |
| journalDatabaseRights | – providerCode: PRVHPJ databaseName: ROAD: Directory of Open Access Scholarly Resources customDbUrl: eissn: 2475-1421 dateEnd: 99991231 omitProxy: false ssIdentifier: ssj0001934839 issn: 2475-1421 databaseCode: M~E dateStart: 20170101 isFulltext: true titleUrlDefault: https://road.issn.org providerName: ISSN International Centre |
| link | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwtV1LS8QwEA6-Dl58i-uLHsSLVLdJummOiygeXC2o4G1J0hREtytrV_bkb3fSpG1YPOjBSyjtkNJ-6XRmMjMfQieJ7oooEjjMe3kegv_FQympCrUimSSxkliqimyC3d0lz888dXz3HxWdACuKZDbj7_8KNZwDsE3p7B_gbiaFE3AMoMMIsMP4K-D703Js-7CmYmKYUt4MD8ZcmoszR9Pm91VldPQvB2bzwOVsjUwUoY5nNqa3oaKZOPr1BzFq8Z9qV_xTEYj7-0c2Kj54eW2Xl7J53U-jaXnWP_dDD5hWoQfsLRaXzl6pK0xZHEbU1jvXujXxllB6n956qhKUbOL9dsEv4z-rdGq6X5AewYnlfJrrj-2uLKJlzGJusvoGX16YjRMKNqAtlzZzXTh5Y42okWeNeGbF4wZac_5A0Lc4bqIFXWyh9ZprI3CqdxsFDayBB2vQwrqDnq6vHi9vQsduEQrMWBlmudmRZYTCJ9HVIsKSYyWIiDMJRjRWMlOKxoJR0ZW0B0OmMYarGKtIa5DcRUvFuNB7KJA6BzcWDAvwPangRCqWy16isGZEKM07aAuedfhu-5cM3RvooNP62YfKNYQ3vCRvQ1usHreCQSNYzzEnsv_jHQ7QartsDtFSOZnqI7SiPsuXj8lxBdQ3fDhLLQ |
| linkProvider | ISSN International Centre |
| openUrl | ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=Automatic+Parallelism+Management&rft.jtitle=Proceedings+of+ACM+on+programming+languages&rft.au=Westrick%2C+Sam&rft.au=Fluet%2C+Matthew&rft.au=Rainey%2C+Mike&rft.au=Acar%2C+Umut+A.&rft.date=2024-01-02&rft.pub=ACM&rft.eissn=2475-1421&rft.volume=8&rft.issue=POPL&rft.spage=1118&rft.epage=1149&rft_id=info:doi/10.1145%2F3632880&rft.externalDocID=3632880 |
| thumbnail_l | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=2475-1421&client=summon |
| thumbnail_m | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=2475-1421&client=summon |
| thumbnail_s | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=2475-1421&client=summon |