{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,2,24]],"date-time":"2026-02-24T18:13:50Z","timestamp":1771956830470,"version":"3.50.1"},"reference-count":123,"publisher":"Association for Computing Machinery (ACM)","issue":"POPL","license":[{"start":{"date-parts":[[2019,12,20]],"date-time":"2019-12-20T00:00:00Z","timestamp":1576800000000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. ACM Program. Lang."],"published-print":{"date-parts":[[2020,1]]},"abstract":"<jats:p>Nested parallelism has proved to be a popular approach for programming the rapidly expanding range of multicore computers. It allows programmers to express parallelism at a high level and relies on a run-time system and a scheduler to deliver efficiency and scalability. As a result, many programming languages and extensions that support nested parallelism have been developed, including in C\/C++, Java, Haskell, and ML. Yet, writing efficient and scalable nested parallel programs remains challenging, primarily due to difficult concurrency bugs arising from destructive updates or effects. For decades, researchers have argued that functional programming can simplify writing parallel programs by allowing more control over effects but functional programs continue to underperform in comparison to parallel programs written in lower-level languages. The fundamental difficulty with functional languages is that they have high demand for memory, and this demand only grows with parallelism.<\/jats:p>\n          <jats:p>In this paper, we identify a memory property, called disentanglement, of nested-parallel programs, and propose memory management techniques for improved efficiency and scalability. Disentanglement allows for (destructive) effects as long as concurrently executing threads do not gain knowledge of the memory objects allocated by each other. We formally define disentanglement by considering an ML-like higher-order language with mutable references and presenting a dynamic semantics for it that enables reasoning about computation graphs of nested parallel programs. Based on this graph semantics, we formalize a classic correctness property---determinacy race freedom---and prove that it implies disentanglement. This establishes that disentanglement applies to a relatively broad class of parallel programs. We then propose memory management techniques for nested-parallel programs that take advantage of disentanglement for improved efficiency and scalability. We show that these techniques are practical by extending the MLton compiler for Standard ML to support this form of nested parallelism. Our empirical evaluation shows that our techniques are efficient and scale well.<\/jats:p>","DOI":"10.1145\/3371115","type":"journal-article","created":{"date-parts":[[2019,12,20]],"date-time":"2019-12-20T19:45:25Z","timestamp":1576871125000},"page":"1-32","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":14,"title":["Disentanglement in nested-parallel programs"],"prefix":"10.1145","volume":"4","author":[{"given":"Sam","family":"Westrick","sequence":"first","affiliation":[{"name":"Carnegie Mellon University, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Rohan","family":"Yadav","sequence":"additional","affiliation":[{"name":"Carnegie Mellon University, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Matthew","family":"Fluet","sequence":"additional","affiliation":[{"name":"Rochester Institute of Technology, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Umut A.","family":"Acar","sequence":"additional","affiliation":[{"name":"Carnegie Mellon University, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2019,12,20]]},"reference":[{"key":"e_1_2_2_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/3178487.3178516"},{"key":"e_1_2_2_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/3293883.3295725"},{"key":"e_1_2_2_3_1","unstructured":"Umut A. Acar Guy Blelloch Matthew Fluet Stefan K. Muller and Ram Raghunathan. 2015a. Coupling Memory and Computation for Locality Management. In Summit on Advances in Programming Languages (SNAPL).  Umut A. Acar Guy Blelloch Matthew Fluet Stefan K. Muller and Ram Raghunathan. 2015a. Coupling Memory and Computation for Locality Management. In Summit on Advances in Programming Languages (SNAPL)."},{"key":"e_1_2_2_4_1","doi-asserted-by":"publisher","DOI":"10.1007\/s00224-002-1057-3"},{"key":"e_1_2_2_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/3192366.3192391"},{"key":"e_1_2_2_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/2442516.2442538"},{"key":"e_1_2_2_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/2807591.2807651"},{"key":"e_1_2_2_8_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796816000101"},{"key":"e_1_2_2_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/1839676.1839697"},{"key":"e_1_2_2_10_1","volume-title":"Proceedings of the 1987 International Conference on Parallel Processing. 721\u2013727","author":"Allen T. R.","unstructured":"T. R. Allen and D. A. Padua . 1987. Debugging Fortran on a Shared Memory Machine . In Proceedings of the 1987 International Conference on Parallel Processing. 721\u2013727 . T. R. Allen and D. A. Padua. 1987. Debugging Fortran on a Shared Memory Machine. In Proceedings of the 1987 International Conference on Parallel Processing. 721\u2013727."},{"key":"e_1_2_2_11_1","doi-asserted-by":"publisher","DOI":"10.1109\/FSCS.1990.89581"},{"key":"e_1_2_2_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/1806651.1806655"},{"key":"e_1_2_2_13_1","doi-asserted-by":"publisher","DOI":"10.5555\/66382.66387"},{"key":"e_1_2_2_14_1","doi-asserted-by":"publisher","DOI":"10.1017\/S095679680000157X"},{"key":"e_1_2_2_15_1","doi-asserted-by":"publisher","DOI":"10.1007\/s00224-001-0004-z"},{"key":"e_1_2_2_16_1","first-page":"4","article-title":"I-structures: Data Structures for Parallel Computing","volume":"11","author":"Nikhil Rishiyur S.","year":"1989","unstructured":"Arvind, Rishiyur S. Nikhil , and Keshav K. Pingali . 1989 . I-structures: Data Structures for Parallel Computing . ACM Trans. Program. Lang. Syst. 11 , 4 (Oct. 1989), 598\u2013632. Arvind, Rishiyur S. Nikhil, and Keshav K. Pingali. 1989. I-structures: Data Structures for Parallel Computing. ACM Trans. Program. Lang. Syst. 11, 4 (Oct. 1989), 598\u2013632.","journal-title":"ACM Trans. Program. Lang. Syst."},{"key":"e_1_2_2_17_1","volume-title":"Proceedings of the 2011 ACM SIGPLAN workshop on Memory Systems Performance and Correctness (MSPC). 51\u201357","author":"Auhagen Sven","unstructured":"Sven Auhagen , Lars Bergstrom , Matthew Fluet , and John H. Reppy . 2011. Garbage collection for multicore NUMA machines . In Proceedings of the 2011 ACM SIGPLAN workshop on Memory Systems Performance and Correctness (MSPC). 51\u201357 . Sven Auhagen, Lars Bergstrom, Matthew Fluet, and John H. Reppy. 2011. Garbage collection for multicore NUMA machines. In Proceedings of the 2011 ACM SIGPLAN workshop on Memory Systems Performance and Correctness (MSPC). 51\u201357."},{"key":"e_1_2_2_18_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-030-17184-1_22"},{"key":"e_1_2_2_19_1","doi-asserted-by":"publisher","DOI":"10.1109\/SC.2012.71"},{"key":"e_1_2_2_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/3290378"},{"key":"e_1_2_2_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/227234.227246"},{"key":"e_1_2_2_22_1","volume-title":"In the Proceedings of the 19th ACM-SIAM Symposium on Discrete Algorithms. 501\u2013510","author":"Blelloch Guy E.","year":"2008","unstructured":"Guy E. Blelloch , Rezaul A. Chowdhury , Phillip B. Gibbons , Vijaya Ramachandran , Shimin Chen , and Michael Kozuch . 2008 . Provably good multicore cache performance for divide-and-conquer algorithms . In In the Proceedings of the 19th ACM-SIAM Symposium on Discrete Algorithms. 501\u2013510 . Guy E. Blelloch, Rezaul A. Chowdhury, Phillip B. Gibbons, Vijaya Ramachandran, Shimin Chen, and Michael Kozuch. 2008. Provably good multicore cache performance for divide-and-conquer algorithms. In In the Proceedings of the 19th ACM-SIAM Symposium on Discrete Algorithms. 501\u2013510."},{"key":"e_1_2_2_23_1","doi-asserted-by":"crossref","unstructured":"Guy E. Blelloch Jeremy T. Fineman Phillip B. Gibbons and Julian Shun. 2012. Internally deterministic parallel algorithms can be fast. In PPoPP \u201912. 181\u2013192.  Guy E. Blelloch Jeremy T. Fineman Phillip B. Gibbons and Julian Shun. 2012. Internally deterministic parallel algorithms can be fast. In PPoPP \u201912. 181\u2013192.","DOI":"10.1145\/2370036.2145840"},{"key":"e_1_2_2_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/1989493.1989553"},{"key":"e_1_2_2_25_1","volume-title":"Gibbons","author":"Blelloch Guy E.","year":"2004","unstructured":"Guy E. Blelloch and Phillip B . Gibbons . 2004 . Effectively sharing a cache among threads. In SPAA. Guy E. Blelloch and Phillip B. Gibbons. 2004. Effectively sharing a cache among threads. In SPAA."},{"key":"e_1_2_2_26_1","volume-title":"Proceedings of the Ninth Annual ACM Symposium on Parallel Algorithms and Architectures (SPAA \u201997)","author":"Blelloch Guy E.","unstructured":"Guy E. Blelloch , Phillip B. Gibbons , Yossi Matias , and Girija J. Narlikar . 1997. Space-efficient Scheduling of Parallelism with Synchronization Variables . In Proceedings of the Ninth Annual ACM Symposium on Parallel Algorithms and Architectures (SPAA \u201997) . 12\u201323. Guy E. Blelloch, Phillip B. Gibbons, Yossi Matias, and Girija J. Narlikar. 1997. Space-efficient Scheduling of Parallelism with Synchronization Variables. In Proceedings of the Ninth Annual ACM Symposium on Parallel Algorithms and Architectures (SPAA \u201997). 12\u201323."},{"key":"e_1_2_2_27_1","doi-asserted-by":"publisher","DOI":"10.1006\/jpdc.1994.1038"},{"key":"e_1_2_2_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/209936.209958"},{"key":"e_1_2_2_29_1","doi-asserted-by":"publisher","DOI":"10.5555\/889664"},{"key":"e_1_2_2_30_1","doi-asserted-by":"publisher","DOI":"10.1137\/S0097539793259471"},{"key":"e_1_2_2_31_1","volume-title":"Leiserson","author":"Blumofe Robert D.","year":"1999","unstructured":"Robert D. Blumofe and Charles E . Leiserson . 1999 . Scheduling multithreaded computations by work stealing. J. ACM 46 (Sept. 1999), 720\u2013748. Issue 5. Robert D. Blumofe and Charles E. Leiserson. 1999. Scheduling multithreaded computations by work stealing. J. ACM 46 (Sept. 1999), 720\u2013748. Issue 5."},{"key":"e_1_2_2_32_1","doi-asserted-by":"crossref","unstructured":"Robert L. Bocchino Stephen Heumann Nima Honarmand Sarita V. Adve Vikram S. Adve Adam Welc and Tatiana Shpeisman. 2011. Safe nondeterminism in a deterministic-by-default parallel language. In ACM POPL.  Robert L. Bocchino Stephen Heumann Nima Honarmand Sarita V. Adve Vikram S. Adve Adam Welc and Tatiana Shpeisman. 2011. Safe nondeterminism in a deterministic-by-default parallel language. In ACM POPL.","DOI":"10.1145\/1926385.1926447"},{"key":"e_1_2_2_33_1","doi-asserted-by":"publisher","DOI":"10.1145\/1640089.1640097"},{"key":"e_1_2_2_34_1","doi-asserted-by":"publisher","DOI":"10.5555\/1855591.1855595"},{"key":"e_1_2_2_35_1","volume-title":"3rd USENIX Workshop on Hot Topics in Parallelism, HotPar\u201911","author":"Boehm Hans-Juergen","year":"2011","unstructured":"Hans-Juergen Boehm . 2011 . How to Miscompile Programs with \"Benign\" Data Races . In 3rd USENIX Workshop on Hot Topics in Parallelism, HotPar\u201911 , Berkeley, CA, USA , May 26-27, 2011. Hans-Juergen Boehm. 2011. How to Miscompile Programs with \"Benign\" Data Races. In 3rd USENIX Workshop on Hot Topics in Parallelism, HotPar\u201911, Berkeley, CA, USA, May 26-27, 2011."},{"key":"e_1_2_2_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/1248648.1248652"},{"key":"e_1_2_2_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/1094811.1094852"},{"key":"e_1_2_2_38_1","first-page":"11","article-title":"A Non-Recursive List Compacting","volume":"13","author":"Cheney C. J.","year":"1970","unstructured":"C. J. Cheney . 1970 . A Non-Recursive List Compacting Algorithm. Commun. ACM 13 , 11 (Nov. 1970), 677\u20138. C. J. Cheney. 1970. A Non-Recursive List Compacting Algorithm. Commun. ACM 13, 11 (Nov. 1970), 677\u20138.","journal-title":"Algorithm. Commun. ACM"},{"key":"e_1_2_2_39_1","volume-title":"Proceedings of the 10th ACM Symposium on Parallel Algorithms and Architectures (SPAA \u201998)","author":"Cheng Guang-Ien","unstructured":"Guang-Ien Cheng , Mingdong Feng , Charles E. Leiserson , Keith H. Randall , and Andrew F. Stark . 1998. Detecting data races in Cilk programs that use locks . In Proceedings of the 10th ACM Symposium on Parallel Algorithms and Architectures (SPAA \u201998) . Guang-Ien Cheng, Mingdong Feng, Charles E. Leiserson, Keith H. Randall, and Andrew F. Stark. 1998. Detecting data races in Cilk programs that use locks. In Proceedings of the 10th ACM Symposium on Parallel Algorithms and Architectures (SPAA \u201998)."},{"key":"e_1_2_2_40_1","unstructured":"Intel Corp. 2017. Knights landing (KNL): 2nd Generation Intel Xeon Phi processor. In Intel Xeon Processor E7 v4 Family Specification. https:\/\/ark.intel.com\/products\/series\/93797\/Intel- Xeon- Processor- E7- v4- Family .  Intel Corp. 2017. Knights landing (KNL): 2nd Generation Intel Xeon Phi processor. In Intel Xeon Processor E7 v4 Family Specification. https:\/\/ark.intel.com\/products\/series\/93797\/Intel- Xeon- Processor- E7- v4- Family ."},{"key":"e_1_2_2_41_1","volume-title":"Unobtrusive Garbage Collection for Multiprocessor Systems. In Conference Record of the Twenty-first Annual ACM Symposium on Principles of Programming Languages (ACM SIGPLAN Notices). ACM Press","author":"Doligez Damien","year":"1994","unstructured":"Damien Doligez and Georges Gonthier . 1994 . Portable , Unobtrusive Garbage Collection for Multiprocessor Systems. In Conference Record of the Twenty-first Annual ACM Symposium on Principles of Programming Languages (ACM SIGPLAN Notices). ACM Press , Portland, OR. ftp:\/\/ftp.inria.fr\/INRIA\/Projects\/para\/doligez\/DoligezGonthier94.ps.gz Damien Doligez and Georges Gonthier. 1994. Portable, Unobtrusive Garbage Collection for Multiprocessor Systems. In Conference Record of the Twenty-first Annual ACM Symposium on Principles of Programming Languages (ACM SIGPLAN Notices). ACM Press, Portland, OR. ftp:\/\/ftp.inria.fr\/INRIA\/Projects\/para\/doligez\/DoligezGonthier94.ps.gz"},{"key":"e_1_2_2_42_1","volume-title":"Conference Record of the Twentieth Annual ACM Symposium on Principles of Programming Languages (ACM SIGPLAN Notices). ACM Press, 113\u2013123","author":"Doligez Damien","year":"1993","unstructured":"Damien Doligez and Xavier Leroy . 1993 . A Concurrent Generational Garbage Collector for a Multi-Threaded Implementation of ML . In Conference Record of the Twentieth Annual ACM Symposium on Principles of Programming Languages (ACM SIGPLAN Notices). ACM Press, 113\u2013123 . file:\/\/ftp.inria.fr\/INRIA\/Projects\/cristal\/Xavier.Leroy\/publications\/concurrentgc.ps.gz Damien Doligez and Xavier Leroy. 1993. A Concurrent Generational Garbage Collector for a Multi-Threaded Implementation of ML. In Conference Record of the Twentieth Annual ACM Symposium on Principles of Programming Languages (ACM SIGPLAN Notices). ACM Press, 113\u2013123. file:\/\/ftp.inria.fr\/INRIA\/Projects\/cristal\/Xavier.Leroy\/publications\/concurrentgc.ps.gz"},{"key":"e_1_2_2_43_1","volume-title":"Thread-Local Heaps for Java. In ISMM\u201902 Proceedings of the Third International Symposium on Memory Management (ACM SIGPLAN Notices), David Detlefs (Ed.). ACM Press","author":"Domani Tamar","year":"2002","unstructured":"Tamar Domani , Elliot K. Kolodner , Ethan Lewis , Erez Petrank , and Dafna Sheinwald . 2002 . Thread-Local Heaps for Java. In ISMM\u201902 Proceedings of the Third International Symposium on Memory Management (ACM SIGPLAN Notices), David Detlefs (Ed.). ACM Press , Berlin, 76\u201387. http:\/\/www.cs.technion.ac.il\/~erez\/publications.html Tamar Domani, Elliot K. Kolodner, Ethan Lewis, Erez Petrank, and Dafna Sheinwald. 2002. Thread-Local Heaps for Java. In ISMM\u201902 Proceedings of the Third International Symposium on Memory Management (ACM SIGPLAN Notices), David Detlefs (Ed.). ACM Press, Berlin, 76\u201387. http:\/\/www.cs.technion.ac.il\/~erez\/publications.html"},{"key":"e_1_2_2_44_1","unstructured":"Martin Elsman. 2001. A Stack Machine for Region Based Programs See [ SPACE 2001 ]. http:\/\/www.diku.dk\/topps\/space2001\/ program.html#MartinElsman  Martin Elsman. 2001. A Stack Machine for Region Based Programs See [ SPACE 2001 ]. http:\/\/www.diku.dk\/topps\/space2001\/ program.html#MartinElsman"},{"key":"e_1_2_2_45_1","volume-title":"Padua","author":"Emrath Perry A.","year":"1991","unstructured":"Perry A. Emrath , Sanjoy Ghosh , and David A . Padua . 1991 . Event Synchronization Analysis for Debugging Parallel Programs. In Supercomputing \u201991. 580\u2013588. Perry A. Emrath, Sanjoy Ghosh, and David A. Padua. 1991. Event Synchronization Analysis for Debugging Parallel Programs. In Supercomputing \u201991. 580\u2013588."},{"key":"e_1_2_2_46_1","volume-title":"Proceedings of the Workshop on Parallel and Distributed Debugging. 89\u201399","author":"Perry","unstructured":"Perry A. Emrath and Davis A. Padua. 1988. Automatic Detection of Nondeterminacy in Parallel Programs . In Proceedings of the Workshop on Parallel and Distributed Debugging. 89\u201399 . Perry A. Emrath and Davis A. Padua. 1988. Automatic Detection of Nondeterminacy in Parallel Programs. In Proceedings of the Workshop on Parallel and Distributed Debugging. 89\u201399."},{"key":"e_1_2_2_47_1","doi-asserted-by":"publisher","DOI":"10.1145\/1188455.1188543"},{"key":"e_1_2_2_48_1","volume-title":"Proceedings of the Ninth Annual ACM Symposium on Parallel Algorithms and Architectures (SPAA). 1\u201311","author":"Feng Mingdong","unstructured":"Mingdong Feng and Charles E. Leiserson . 1997. Efficient Detection of Determinacy Races in Cilk Programs . In Proceedings of the Ninth Annual ACM Symposium on Parallel Algorithms and Architectures (SPAA). 1\u201311 . Mingdong Feng and Charles E. Leiserson. 1997. Efficient Detection of Determinacy Races in Cilk Programs. In Proceedings of the Ninth Annual ACM Symposium on Parallel Algorithms and Architectures (SPAA). 1\u201311."},{"key":"e_1_2_2_49_1","doi-asserted-by":"publisher","DOI":"10.1007\/s002240000120"},{"key":"e_1_2_2_50_1","doi-asserted-by":"publisher","DOI":"10.1145\/1543135.1542490"},{"key":"e_1_2_2_51_1","doi-asserted-by":"publisher","DOI":"10.1145\/1377492.1377495"},{"key":"e_1_2_2_52_1","volume-title":"Proceedings of the 15th Annual European Symposium on Programming (ESOP).","author":"Fluet Matthew","unstructured":"Matthew Fluet , Greg Morrisett , and Amal J. Ahmed . 2006. Linear Regions Are All You Need . In Proceedings of the 15th Annual European Symposium on Programming (ESOP). Matthew Fluet, Greg Morrisett, and Amal J. Ahmed. 2006. Linear Regions Are All You Need. In Proceedings of the 15th Annual European Symposium on Programming (ESOP)."},{"key":"e_1_2_2_53_1","doi-asserted-by":"publisher","DOI":"10.1145\/1411204.1411239"},{"key":"e_1_2_2_54_1","first-page":"5","article-title":"Implicitly threaded parallelism in Manticore","volume":"20","author":"Fluet Matthew","year":"2011","unstructured":"Matthew Fluet , Mike Rainey , John Reppy , and Adam Shaw . 2011 . Implicitly threaded parallelism in Manticore . Journal of Functional Programming 20 , 5 - 6 (2011), 1\u201340. Matthew Fluet, Mike Rainey, John Reppy, and Adam Shaw. 2011. Implicitly threaded parallelism in Manticore. Journal of Functional Programming 20, 5-6 (2011), 1\u201340.","journal-title":"Journal of Functional Programming"},{"key":"e_1_2_2_55_1","doi-asserted-by":"publisher","DOI":"10.1145\/1248648.1248656"},{"key":"e_1_2_2_56_1","doi-asserted-by":"publisher","DOI":"10.1145\/1583991.1584017"},{"key":"e_1_2_2_57_1","volume-title":"Randall","author":"Frigo Matteo","year":"1998","unstructured":"Matteo Frigo , Charles E. Leiserson , and Keith H . Randall . 1998 . The Implementation of the Cilk-5 Multithreaded Language. In PLDI. 212\u2013223. Matteo Frigo, Charles E. Leiserson, and Keith H. Randall. 1998. The Implementation of the Cilk-5 Multithreaded Language. In PLDI. 212\u2013223."},{"key":"e_1_2_2_58_1","volume-title":"Lucassen","author":"Gifford David K.","year":"1986","unstructured":"David K. Gifford and John M . Lucassen . 1986 . Integrating Functional and Imperative Programming. In Proceedings of the ACM Symposium on Lisp and Functional Programming (LFP). ACM Press , 22\u201338. David K. Gifford and John M. Lucassen. 1986. Integrating Functional and Imperative Programming. In Proceedings of the ACM Symposium on Lisp and Functional Programming (LFP). ACM Press, 22\u201338."},{"key":"e_1_2_2_60_1","volume-title":"Cache Performance of Fast-Allocating Programs. In Record of the 1995 Conference on Functional Programming and Computer Architecture.","author":"Marcelo J.","unstructured":"Marcelo J. R. Gon\u00e7alves and Andrew W. Appel. 1995 . Cache Performance of Fast-Allocating Programs. In Record of the 1995 Conference on Functional Programming and Computer Architecture. Marcelo J. R. Gon\u00e7alves and Andrew W. Appel. 1995. Cache Performance of Fast-Allocating Programs. In Record of the 1995 Conference on Functional Programming and Computer Architecture."},{"key":"e_1_2_2_61_1","doi-asserted-by":"publisher","DOI":"10.1145\/512529.512563"},{"key":"e_1_2_2_62_1","doi-asserted-by":"publisher","DOI":"10.1145\/3178487.3178494"},{"key":"e_1_2_2_63_1","doi-asserted-by":"publisher","DOI":"10.1145\/800055.802017"},{"key":"e_1_2_2_64_1","volume-title":"UK","author":"Hammond Kevin","year":"2011","unstructured":"Kevin Hammond . 2011 . Why Parallel Functional Programming Matters: Panel Statement. In Reliable Software Technologies -Ada-Europe 2011 - 16th Ada-Europe International Conference on Reliable Software Technologies, Edinburgh , UK , June 20-24, 2011. Proceedings. 201\u2013205. Kevin Hammond. 2011. Why Parallel Functional Programming Matters: Panel Statement. In Reliable Software Technologies -Ada-Europe 2011 - 16th Ada-Europe International Conference on Reliable Software Technologies, Edinburgh, UK, June 20-24, 2011. Proceedings. 201\u2013205."},{"key":"e_1_2_2_65_1","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380200104"},{"key":"e_1_2_2_66_1","doi-asserted-by":"publisher","DOI":"10.1145\/2647508.2647514"},{"key":"e_1_2_2_67_1","unstructured":"Intel. 2011. Intel Threading Building Blocks. https:\/\/www.threadingbuildingblocks.org\/ .  Intel. 2011. Intel Threading Building Blocks. https:\/\/www.threadingbuildingblocks.org\/ ."},{"key":"e_1_2_2_68_1","unstructured":"Intel Corporation 2009a. Intel Cilk++ SDK Programmer\u2019s Guide. Intel Corporation. Document Number: 322581-001US.  Intel Corporation 2009a. Intel Cilk++ SDK Programmer\u2019s Guide. Intel Corporation. Document Number: 322581-001US."},{"key":"e_1_2_2_69_1","unstructured":"Intel Corporation 2009b. Intel(R) Threading Building Blocks. Intel Corporation. Available from http:\/\/www. threadingbuildingblocks.org\/documentation.php .  Intel Corporation 2009b. Intel(R) Threading Building Blocks. Intel Corporation. Available from http:\/\/www. threadingbuildingblocks.org\/documentation.php ."},{"key":"e_1_2_2_70_1","volume-title":"The garbage collection handbook: the art of automatic memory management","author":"Jones Richard","unstructured":"Richard Jones , Antony Hosking , and Eliot Moss . 2011. The garbage collection handbook: the art of automatic memory management . Chapman & amp; Hall\/CRC. Richard Jones, Antony Hosking, and Eliot Moss. 2011. The garbage collection handbook: the art of automatic memory management. Chapman &amp; Hall\/CRC."},{"key":"e_1_2_2_71_1","doi-asserted-by":"publisher","DOI":"10.1145\/3158154"},{"key":"e_1_2_2_72_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796818000151"},{"key":"e_1_2_2_73_1","doi-asserted-by":"publisher","DOI":"10.1145\/1863543.1863582"},{"key":"e_1_2_2_74_1","doi-asserted-by":"publisher","DOI":"10.1145\/169627.169724"},{"key":"e_1_2_2_75_1","volume-title":"Proceedings of the 28th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI \u201907)","author":"Kulkarni Milind","unstructured":"Milind Kulkarni , Keshav Pingali , Bruce Walter , Ganesh Ramanarayanan , Kavita Bala , and L. Paul Chew . 2007. Optimistic Parallelism Requires Abstractions . In Proceedings of the 28th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI \u201907) . 211\u2013222. Milind Kulkarni, Keshav Pingali, Bruce Walter, Ganesh Ramanarayanan, Kavita Bala, and L. Paul Chew. 2007. Optimistic Parallelism Requires Abstractions. In Proceedings of the 28th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI \u201907). 211\u2013222."},{"key":"e_1_2_2_76_1","doi-asserted-by":"publisher","DOI":"10.1145\/2502323.2502326"},{"key":"e_1_2_2_77_1","doi-asserted-by":"publisher","DOI":"10.1145\/2594291.2594312"},{"key":"e_1_2_2_78_1","volume-title":"Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL \u201914)","author":"Kuper Lindsey","unstructured":"Lindsey Kuper , Aaron Turon , Neelakantan R. Krishnaswami , and Ryan R. Newton . 2014b. Freeze After Writing: Quasideterministic Parallel Programming with LVars . In Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL \u201914) . ACM, New York, NY, USA, 257\u2013270. Lindsey Kuper, Aaron Turon, Neelakantan R. Krishnaswami, and Ryan R. Newton. 2014b. Freeze After Writing: Quasideterministic Parallel Programming with LVars. In Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL \u201914). ACM, New York, NY, USA, 257\u2013270."},{"key":"e_1_2_2_79_1","doi-asserted-by":"crossref","unstructured":"Haewoon Kwak Changhyun Lee Hosung Park and Sue Moon. 2010. What is Twitter a social network or a news media?. In WWW \u201910. ACM 591\u2013600.  Haewoon Kwak Changhyun Lee Hosung Park and Sue Moon. 2010. What is Twitter a social network or a news media?. In WWW \u201910. ACM 591\u2013600.","DOI":"10.1145\/1772690.1772751"},{"key":"e_1_2_2_80_1","volume-title":"Proceedings of the ACM SIGPLAN\u201994 Conference on Programming Language Design and Implementation (PLDI)","author":"Launchbury John","year":"1994","unstructured":"John Launchbury and Simon L . Peyton Jones. 1994. Lazy Functional State Threads . In Proceedings of the ACM SIGPLAN\u201994 Conference on Programming Language Design and Implementation (PLDI) , Orlando, Florida, USA , June 20-24, 1994 . 24\u201335. John Launchbury and Simon L. Peyton Jones. 1994. Lazy Functional State Threads. In Proceedings of the ACM SIGPLAN\u201994 Conference on Programming Language Design and Implementation (PLDI), Orlando, Florida, USA, June 20-24, 1994. 24\u201335."},{"key":"e_1_2_2_81_1","doi-asserted-by":"publisher","DOI":"10.1145\/2784731.2784736"},{"key":"e_1_2_2_82_1","doi-asserted-by":"publisher","DOI":"10.1145\/337449.337465"},{"key":"e_1_2_2_83_1","doi-asserted-by":"publisher","DOI":"10.1145\/1640089.1640106"},{"key":"e_1_2_2_84_1","volume-title":"Proceedings of the ACM SIGPLAN Workshop on Haskell, Haskell 2007","author":"Li Peng","year":"2007","unstructured":"Peng Li , Simon Marlow , Simon L. Peyton Jones , and Andrew P. Tolmach . 2007. Lightweight concurrency primitives for GHC . In Proceedings of the ACM SIGPLAN Workshop on Haskell, Haskell 2007 , Freiburg, Germany , September 30, 2007 . 107\u2013118. Peng Li, Simon Marlow, Simon L. Peyton Jones, and Andrew P. Tolmach. 2007. Lightweight concurrency primitives for GHC. In Proceedings of the ACM SIGPLAN Workshop on Haskell, Haskell 2007, Freiburg, Germany, September 30, 2007. 107\u2013118."},{"key":"e_1_2_2_85_1","volume-title":"Hewitt","author":"Lieberman Henry","year":"1981","unstructured":"Henry Lieberman and Carl E . Hewitt . 1981 . A Real-Time Garbage Collector Based on the Lifetimes of Objects. AI Memo 569a. MIT. ftp:\/\/publications.ai.mit.edu\/ai- publications\/pdf\/AIM- 569a.pdf Henry Lieberman and Carl E. Hewitt. 1981. A Real-Time Garbage Collector Based on the Lifetimes of Objects. AI Memo 569a. MIT. ftp:\/\/publications.ai.mit.edu\/ai- publications\/pdf\/AIM- 569a.pdf"},{"key":"e_1_2_2_86_1","volume-title":"Proceedings of the 15th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL \u201988)","author":"Lucassen J. M.","unstructured":"J. M. Lucassen and D. K. Gifford . 1988. Polymorphic Effect Systems . In Proceedings of the 15th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL \u201988) . ACM, New York, NY, USA, 47\u201357. J. M. Lucassen and D. K. Gifford. 1988. Polymorphic Effect Systems. In Proceedings of the 15th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL \u201988). ACM, New York, NY, USA, 47\u201357."},{"key":"e_1_2_2_87_1","volume-title":"CEFP 2011","author":"Marlow Simon","year":"2011","unstructured":"Simon Marlow . 2011 . Parallel and Concurrent Programming in Haskell. In Central European Functional Programming School - 4th Summer School , CEFP 2011 , Budapest, Hungary , June 14-24, 2011, Revised Selected Papers. 339\u2013401. Simon Marlow. 2011. Parallel and Concurrent Programming in Haskell. In Central European Functional Programming School - 4th Summer School, CEFP 2011, Budapest, Hungary, June 14-24, 2011, Revised Selected Papers. 339\u2013401."},{"key":"e_1_2_2_88_1","doi-asserted-by":"publisher","DOI":"10.1145\/125826.125861"},{"key":"e_1_2_2_89_1","volume-title":"Proceedings of the 28th ACM Symposium on Parallelism in Algorithms and Architectures, SPAA 2016, Asilomar State Beach\/Pacific Grove, CA, USA","author":"Stefan","year":"2016","unstructured":"Stefan K. Muller and Umut A. Acar. 2016. Latency-Hiding Work Stealing: Scheduling Interacting Parallel Computations with Work Stealing . In 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 . 71\u201382. Stefan K. Muller and Umut A. Acar. 2016. Latency-Hiding Work Stealing: Scheduling Interacting Parallel Computations with Work Stealing. In 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. 71\u201382."},{"key":"e_1_2_2_90_1","doi-asserted-by":"publisher","DOI":"10.1145\/3062341.3062370"},{"key":"e_1_2_2_91_1","volume-title":"Proceedings of the 14th ACM SIGPLAN International Conference on Functional Programming (ICFP \u201918)","author":"Muller Stefan K.","year":"2018","unstructured":"Stefan K. Muller , Umut A. Acar , and Robert Harper . 2018 . Types and Cost Models for Responsive Parallelism (Draft) . In Proceedings of the 14th ACM SIGPLAN International Conference on Functional Programming (ICFP \u201918) . Stefan K. Muller, Umut A. Acar, and Robert Harper. 2018. Types and Cost Models for Responsive Parallelism (Draft). In Proceedings of the 14th ACM SIGPLAN International Conference on Functional Programming (ICFP \u201918)."},{"key":"e_1_2_2_92_1","doi-asserted-by":"publisher","DOI":"10.1145\/305619.305629"},{"key":"e_1_2_2_93_1","doi-asserted-by":"publisher","DOI":"10.1145\/130616.130623"},{"key":"e_1_2_2_94_1","doi-asserted-by":"publisher","DOI":"10.1145\/289918.289920"},{"key":"e_1_2_2_95_1","unstructured":"Atsushi Ohori Kenjiro Taura and Katsuhiro Ueno. 2018. Making SML# a General-purpose High-performance Language. Unpublished Manuscript.  Atsushi Ohori Kenjiro Taura and Katsuhiro Ueno. 2018. Making SML# a General-purpose High-performance Language. Unpublished Manuscript."},{"key":"e_1_2_2_96_1","doi-asserted-by":"publisher","DOI":"10.1145\/1452044.1452048"},{"key":"e_1_2_2_97_1","volume-title":"Chakravarty","author":"Peyton Jones Simon L.","year":"2008","unstructured":"Simon L. Peyton Jones , Roman Leshchinskiy , Gabriele Keller , and Manuel M. T . Chakravarty . 2008 . Harnessing the Multicores : Nested Data Parallelism in Haskell. In FSTTCS. 383\u2013414. Simon L. Peyton Jones, Roman Leshchinskiy, Gabriele Keller, and Manuel M. T. Chakravarty. 2008. Harnessing the Multicores: Nested Data Parallelism in Haskell. In FSTTCS. 383\u2013414."},{"key":"e_1_2_2_98_1","volume-title":"Proceedings of the 20th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL \u201993)","author":"Simon","unstructured":"Simon L. Peyton Jones and Philip Wadler. 1993. Imperative Functional Programming . In Proceedings of the 20th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL \u201993) . 71\u201384. Simon L. Peyton Jones and Philip Wadler. 1993. Imperative Functional Programming. In Proceedings of the 20th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL \u201993). 71\u201384."},{"key":"e_1_2_2_99_1","doi-asserted-by":"publisher","DOI":"10.1145\/1993498.1993501"},{"key":"e_1_2_2_100_1","doi-asserted-by":"publisher","DOI":"10.1145\/2951913.2951935"},{"key":"e_1_2_2_101_1","doi-asserted-by":"publisher","DOI":"10.1145\/2254064.2254127"},{"key":"e_1_2_2_102_1","doi-asserted-by":"publisher","DOI":"10.1145\/512760.512766"},{"key":"e_1_2_2_103_1","volume-title":"Separation Logic: A Logic for Shared Mutable Data Structures. In 17th IEEE Symposium on Logic in Computer Science (LICS 2002), 22-25 July 2002, Copenhagen, Denmark, Proceedings. 55\u201374","author":"Reynolds John C.","year":"2002","unstructured":"John C. Reynolds . 2002 . Separation Logic: A Logic for Shared Mutable Data Structures. In 17th IEEE Symposium on Logic in Computer Science (LICS 2002), 22-25 July 2002, Copenhagen, Denmark, Proceedings. 55\u201374 . John C. Reynolds. 2002. Separation Logic: A Logic for Shared Mutable Data Structures. In 17th IEEE Symposium on Logic in Computer Science (LICS 2002), 22-25 July 2002, Copenhagen, Denmark, Proceedings. 55\u201374."},{"key":"e_1_2_2_104_1","volume-title":"HPE shows The Machine \u2014 with 160TB of shared memory","author":"Robinson Dan","year":"2017","unstructured":"Dan Robinson . 2017. HPE shows The Machine \u2014 with 160TB of shared memory . Data Center Dynamics (May 2017 ). Dan Robinson. 2017. HPE shows The Machine \u2014 with 160TB of shared memory. Data Center Dynamics (May 2017)."},{"key":"e_1_2_2_105_1","doi-asserted-by":"publisher","DOI":"10.1145\/363534.363546"},{"key":"e_1_2_2_106_1","unstructured":"Rust Team. 2019. Rust Language. https:\/\/www.rust- lang.org\/  Rust Team. 2019. Rust Language. https:\/\/www.rust- lang.org\/"},{"key":"e_1_2_2_107_1","doi-asserted-by":"publisher","DOI":"10.1016\/0096-0551(75)90015-6"},{"key":"e_1_2_2_108_1","doi-asserted-by":"publisher","DOI":"10.1145\/2312005.2312018"},{"key":"e_1_2_2_109_1","unstructured":"KC Sivaramakrishnan and Stephen Dolan. 2017. A deep dive into Multicore OCaml garbage collector. http:\/\/kcsrk.info\/ multicore\/gc\/2017\/07\/06\/multicore- ocaml- gc\/ Unpublished manuscript.  KC Sivaramakrishnan and Stephen Dolan. 2017. A deep dive into Multicore OCaml garbage collector. http:\/\/kcsrk.info\/ multicore\/gc\/2017\/07\/06\/multicore- ocaml- gc\/ Unpublished manuscript."},{"key":"e_1_2_2_110_1","volume-title":"MultiMLton: A multicore-aware runtime for standard ML. Journal of Functional Programming FirstView (6","author":"Sivaramakrishnan K. C.","year":"2014","unstructured":"K. C. Sivaramakrishnan , Lukasz Ziarek , and Suresh Jagannathan . 2014. MultiMLton: A multicore-aware runtime for standard ML. Journal of Functional Programming FirstView (6 2014 ), 1\u201362. K. C. Sivaramakrishnan, Lukasz Ziarek, and Suresh Jagannathan. 2014. MultiMLton: A multicore-aware runtime for standard ML. Journal of Functional Programming FirstView (6 2014), 1\u201362."},{"key":"e_1_2_2_111_1","doi-asserted-by":"publisher","DOI":"10.1109\/HOTCHIPS.2015.7477467"},{"key":"e_1_2_2_112_1","volume-title":"Proceedings of the Second workshop on Semantics, Program Analysis and Computing Environments for Memory Management (SPACE\u201901)","author":"SPACE","year":"2001","unstructured":"SPACE 2001 . Proceedings of the Second workshop on Semantics, Program Analysis and Computing Environments for Memory Management (SPACE\u201901) . London. http:\/\/www.diku.dk\/topps\/space 2001\/ SPACE 2001. Proceedings of the Second workshop on Semantics, Program Analysis and Computing Environments for Memory Management (SPACE\u201901). London. http:\/\/www.diku.dk\/topps\/space2001\/"},{"key":"e_1_2_2_114_1","doi-asserted-by":"publisher","DOI":"10.1145\/174675.178068"},{"key":"e_1_2_2_115_1","doi-asserted-by":"publisher","DOI":"10.1145\/96709.96731"},{"key":"e_1_2_2_116_1","doi-asserted-by":"publisher","DOI":"10.1145\/321879.321884"},{"key":"e_1_2_2_117_1","doi-asserted-by":"publisher","DOI":"10.1145\/1353445.1353449"},{"key":"e_1_2_2_118_1","volume-title":"Region-Based Memory Management. Information and Computation (Feb","author":"Tofte Mads","year":"1997","unstructured":"Mads Tofte and Jean-Pierre Talpin . 1997. Region-Based Memory Management. Information and Computation (Feb . 1997 ). http:\/\/www.diku.dk\/research- groups\/topps\/activities\/kit2\/infocomp97.ps Mads Tofte and Jean-Pierre Talpin. 1997. Region-Based Memory Management. Information and Computation (Feb. 1997). http:\/\/www.diku.dk\/research- groups\/topps\/activities\/kit2\/infocomp97.ps"},{"key":"e_1_2_2_119_1","doi-asserted-by":"publisher","DOI":"10.1145\/2500365.2500600"},{"key":"e_1_2_2_120_1","doi-asserted-by":"publisher","DOI":"10.1145\/390011.808261"},{"key":"e_1_2_2_121_1","doi-asserted-by":"publisher","DOI":"10.1145\/2935764.2935801"},{"key":"e_1_2_2_122_1","volume-title":"CONCUR 2007 - Concurrency Theory, 18th International Conference, CONCUR 2007, Lisbon, Portugal, September 3-8, 2007, Proceedings. 256\u2013271","author":"Vafeiadis Viktor","unstructured":"Viktor Vafeiadis and Matthew J. Parkinson . 2007. A Marriage of Rely\/Guarantee and Separation Logic . In CONCUR 2007 - Concurrency Theory, 18th International Conference, CONCUR 2007, Lisbon, Portugal, September 3-8, 2007, Proceedings. 256\u2013271 . Viktor Vafeiadis and Matthew J. Parkinson. 2007. A Marriage of Rely\/Guarantee and Separation Logic. In CONCUR 2007 - Concurrency Theory, 18th International Conference, CONCUR 2007, Lisbon, Portugal, September 3-8, 2007, Proceedings. 256\u2013271."},{"key":"e_1_2_2_123_1","unstructured":"David Walker. 2001. On Linear Types and Regions See [ SPACE 2001 ]. http:\/\/www.diku.dk\/topps\/space2001\/program.html# DavidWalker  David Walker. 2001. On Linear Types and Regions See [ SPACE 2001 ]. http:\/\/www.diku.dk\/topps\/space2001\/program.html# DavidWalker"},{"key":"e_1_2_2_124_1","volume-title":"Titanium: a high-performance Java dialect. Concurrency: Practice and Experience 10, 11\u00c3\u0107\u00c2\u0102\u00c2\u015813","author":"Yelick Kathy","year":"1998","unstructured":"Kathy Yelick , Luigi Semenzato , Geoff Pike , Carleton Miyamoto , Ben Liblit , Arvind Krishnamurthy , Paul Hilfinger , Susan Graham , David Gay , Phil Colella , and Alex Aiken . 1998. Titanium: a high-performance Java dialect. Concurrency: Practice and Experience 10, 11\u00c3\u0107\u00c2\u0102\u00c2\u015813 ( 1998 ), 825\u2013836. Kathy Yelick, Luigi Semenzato, Geoff Pike, Carleton Miyamoto, Ben Liblit, Arvind Krishnamurthy, Paul Hilfinger, Susan Graham, David Gay, Phil Colella, and Alex Aiken. 1998. Titanium: a high-performance Java dialect. Concurrency: Practice and Experience 10, 11\u00c3\u0107\u00c2\u0102\u00c2\u015813 (1998), 825\u2013836."},{"key":"e_1_2_2_125_1","doi-asserted-by":"publisher","DOI":"10.1145\/1993498.1993572"}],"container-title":["Proceedings of the ACM on Programming Languages"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3371115","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3371115","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T19:05:43Z","timestamp":1750273543000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3371115"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2019,12,20]]},"references-count":123,"journal-issue":{"issue":"POPL","published-print":{"date-parts":[[2020,1]]}},"alternative-id":["10.1145\/3371115"],"URL":"https:\/\/doi.org\/10.1145\/3371115","relation":{},"ISSN":["2475-1421"],"issn-type":[{"value":"2475-1421","type":"electronic"}],"subject":[],"published":{"date-parts":[[2019,12,20]]},"assertion":[{"value":"2019-12-20","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}