Disentanglement in nested-parallel programs
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...
Uloženo v:
| Vydáno v: | Proceedings of ACM on programming languages Ročník 4; číslo POPL; s. 1 - 32 |
|---|---|
| Hlavní autoři: | , , , |
| Médium: | Journal Article |
| Jazyk: | angličtina |
| Vydáno: |
01.01.2020
|
| ISSN: | 2475-1421, 2475-1421 |
| On-line přístup: | Získat plný text |
| Tagy: |
Přidat tag
Žádné tagy, Buďte první, kdo vytvoří štítek k tomuto záznamu!
|
| Abstract | 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.
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. |
|---|---|
| AbstractList | 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.
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. |
| Author | Fluet, Matthew Acar, Umut A. Yadav, Rohan Westrick, Sam |
| Author_xml | – sequence: 1 givenname: Sam surname: Westrick fullname: Westrick, Sam organization: Carnegie Mellon University, USA – sequence: 2 givenname: Rohan surname: Yadav fullname: Yadav, Rohan organization: Carnegie Mellon University, USA – sequence: 3 givenname: Matthew surname: Fluet fullname: Fluet, Matthew organization: Rochester Institute of Technology, USA – sequence: 4 givenname: Umut A. surname: Acar fullname: Acar, Umut A. organization: Carnegie Mellon University, USA |
| BookMark | eNplj81KAzEYRYNUsNbiK8zOhUTzTX5mspT6CwU3uh6-ZJISyWRKko1vb8UuRFf3LA4XzjlZpDk5Qi6B3QAIect5BwDyhCxb0UkKooXFLz4j61I-GGOguei5XpLr-1Bcqph20U0HaEJqkivVjXSPGWN0sdnneZdxKhfk1GMsbn3cFXl_fHjbPNPt69PL5m5LbSv7Sv1oRee4GhVaMRovjIHeGuWVQiW8E600oAy3LXDNALDDTkmt9Kh7YJrxFaE_vzbPpWTnBxsq1jCnmjHEAdjwHTscYw_-1R9_n8OE-fOf-QVYAVPX |
| CitedBy_id | crossref_primary_10_1145_3632880 crossref_primary_10_1145_3408995 crossref_primary_10_1145_3591256 crossref_primary_10_1145_3632853 crossref_primary_10_1145_3473596 crossref_primary_10_1145_3632921 crossref_primary_10_1145_3632895 crossref_primary_10_1145_3386336 |
| Cites_doi | 10.1145/1772690.1772751 10.1145/1188455.1188543 10.1145/512760.512766 10.1145/130616.130623 10.1145/174675.178068 10.1145/1863543.1863582 10.1145/512529.512563 10.1145/125826.125861 10.1145/3062341.3062370 10.1016/0096-0551(75)90015-6 10.5555/889664 10.1145/209936.209958 10.1145/1411204.1411239 10.1002/spe.4380200104 10.1145/2935764.2935801 10.1145/1377492.1377495 10.1007/978-3-030-17184-1_22 10.1145/390011.808261 10.1145/3192366.3192391 10.1145/2807591.2807651 10.1145/96709.96731 10.1145/1989493.1989553 10.1109/FSCS.1990.89581 10.1017/S095679680000157X 10.1145/1806651.1806655 10.1006/jpdc.1994.1038 10.1145/337449.337465 10.1007/s00224-002-1057-3 10.1145/227234.227246 10.1137/S0097539793259471 10.1145/2312005.2312018 10.1145/3293883.3295725 10.1145/1543135.1542490 10.1145/1640089.1640097 10.1145/800055.802017 10.1145/2502323.2502326 10.1145/2784731.2784736 10.1007/s002240000120 10.1145/1452044.1452048 10.1007/s00224-001-0004-z 10.1145/1248648.1248656 10.1145/1993498.1993572 10.1145/321879.321884 10.1145/3178487.3178494 10.1145/1353445.1353449 10.1145/2500365.2500600 10.1145/1094811.1094852 10.1145/1248648.1248652 10.1145/1926385.1926447 10.1145/2442516.2442538 10.1145/1640089.1640106 10.1145/289918.289920 10.5555/1855591.1855595 10.5555/66382.66387 10.1145/3290378 10.1017/S0956796816000101 10.1145/169627.169724 10.1145/3158154 10.1145/2647508.2647514 10.1145/1839676.1839697 10.1145/2594291.2594312 10.1145/2951913.2951935 10.1145/1583991.1584017 10.1145/3178487.3178516 10.1145/2370036.2145840 10.1145/305619.305629 10.1017/S0956796818000151 10.1109/SC.2012.71 10.1145/363534.363546 10.1145/2254064.2254127 10.1109/HOTCHIPS.2015.7477467 10.1145/1993498.1993501 |
| ContentType | Journal Article |
| DBID | AAYXX CITATION |
| DOI | 10.1145/3371115 |
| DatabaseName | CrossRef |
| DatabaseTitle | CrossRef |
| DatabaseTitleList | CrossRef |
| DeliveryMethod | fulltext_linktorsrc |
| Discipline | Computer Science |
| EISSN | 2475-1421 |
| EndPage | 32 |
| ExternalDocumentID | 10_1145_3371115 |
| GroupedDBID | AAKMM AAYFX AAYXX ACM AEFXT AEJOY AIKLT AKRVB ALMA_UNASSIGNED_HOLDINGS CITATION EBS GUFHI LHSKQ M~E OK1 ROL |
| ID | FETCH-LOGICAL-c258t-fdc47e36d6ac4dbf4bb18cb6f66a64fe425b16b3c2139011a7a765969d9810903 |
| ISICitedReferencesCount | 18 |
| ISICitedReferencesURI | http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=000685202400048&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:47:58 EST 2025 Tue Nov 18 21:24:14 EST 2025 |
| IsDoiOpenAccess | false |
| IsOpenAccess | true |
| IsPeerReviewed | true |
| IsScholarly | true |
| Issue | POPL |
| Language | English |
| LinkModel | OpenURL |
| MergedId | FETCHMERGED-LOGICAL-c258t-fdc47e36d6ac4dbf4bb18cb6f66a64fe425b16b3c2139011a7a765969d9810903 |
| OpenAccessLink | https://dl.acm.org/doi/pdf/10.1145/3371115 |
| PageCount | 32 |
| ParticipantIDs | crossref_citationtrail_10_1145_3371115 crossref_primary_10_1145_3371115 |
| PublicationCentury | 2000 |
| PublicationDate | 2020-01-00 |
| PublicationDateYYYYMMDD | 2020-01-01 |
| PublicationDate_xml | – month: 01 year: 2020 text: 2020-01-00 |
| PublicationDecade | 2020 |
| PublicationTitle | Proceedings of ACM on programming languages |
| PublicationYear | 2020 |
| References | e_1_2_2_24_1 e_1_2_2_6_1 e_1_2_2_20_1 e_1_2_2_109_1 e_1_2_2_2_1 e_1_2_2_62_1 e_1_2_2_105_1 e_1_2_2_28_1 e_1_2_2_66_1 e_1_2_2_101_1 e_1_2_2_47_1 Nikhil Rishiyur S. (e_1_2_2_16_1) 1989; 11 e_1_2_2_81_1 Fluet Matthew (e_1_2_2_52_1) Simon (e_1_2_2_98_1) e_1_2_2_13_1 Emrath Perry A. (e_1_2_2_45_1) 1991 Muller Stefan K. (e_1_2_2_91_1) 2018 e_1_2_2_51_1 e_1_2_2_32_1 e_1_2_2_74_1 Reynolds John C. (e_1_2_2_103_1) 2002 e_1_2_2_55_1 e_1_2_2_36_1 e_1_2_2_120_1 Fluet Matthew (e_1_2_2_54_1) 2011; 20 e_1_2_2_93_1 Blelloch Guy E. (e_1_2_2_22_1) 2008 Doligez Damien (e_1_2_2_42_1) 1993 e_1_2_2_117_1 Kulkarni Milind (e_1_2_2_75_1) Lucassen J. M. (e_1_2_2_86_1) e_1_2_2_5_1 e_1_2_2_21_1 e_1_2_2_1_1 e_1_2_2_40_1 e_1_2_2_63_1 e_1_2_2_106_1 e_1_2_2_9_1 e_1_2_2_29_1 e_1_2_2_44_1 e_1_2_2_67_1 e_1_2_2_102_1 e_1_2_2_121_1 e_1_2_2_82_1 e_1_2_2_125_1 Boehm Hans-Juergen (e_1_2_2_35_1) 2011 Frigo Matteo (e_1_2_2_57_1) 1998 e_1_2_2_14_1 e_1_2_2_37_1 Lieberman Henry (e_1_2_2_85_1) 1981 e_1_2_2_18_1 e_1_2_2_33_1 e_1_2_2_56_1 e_1_2_2_79_1 Stefan (e_1_2_2_89_1) 2016 e_1_2_2_90_1 e_1_2_2_114_1 e_1_2_2_94_1 Allen T. R. (e_1_2_2_10_1) e_1_2_2_71_1 Cheney C. J. (e_1_2_2_38_1) 1970; 13 e_1_2_2_4_1 e_1_2_2_49_1 Peyton Jones Simon L. (e_1_2_2_97_1) 2008 e_1_2_2_107_1 Sivaramakrishnan K. C. (e_1_2_2_110_1) 2014 e_1_2_2_8_1 e_1_2_2_68_1 Blelloch Guy E. (e_1_2_2_26_1) e_1_2_2_83_1 SPACE (e_1_2_2_112_1) 2001 e_1_2_2_11_1 e_1_2_2_30_1 e_1_2_2_76_1 e_1_2_2_95_1 e_1_2_2_19_1 e_1_2_2_53_1 e_1_2_2_34_1 Perry (e_1_2_2_46_1) e_1_2_2_99_1 e_1_2_2_111_1 e_1_2_2_15_1 Launchbury John (e_1_2_2_80_1) 1994 Yelick Kathy (e_1_2_2_124_1) 1998 Blumofe Robert D. (e_1_2_2_31_1) 1999 e_1_2_2_115_1 e_1_2_2_72_1 e_1_2_2_119_1 Robinson Dan (e_1_2_2_104_1) 2017 e_1_2_2_23_1 e_1_2_2_7_1 Li Peng (e_1_2_2_84_1) 2007 e_1_2_2_108_1 e_1_2_2_3_1 Hammond Kevin (e_1_2_2_64_1) 2011 e_1_2_2_65_1 e_1_2_2_27_1 e_1_2_2_69_1 e_1_2_2_88_1 e_1_2_2_100_1 Kuper Lindsey (e_1_2_2_78_1) Cheng Guang-Ien (e_1_2_2_39_1) Marcelo J. (e_1_2_2_60_1) Marlow Simon (e_1_2_2_87_1) 2011 Vafeiadis Viktor (e_1_2_2_122_1) e_1_2_2_123_1 e_1_2_2_61_1 Auhagen Sven (e_1_2_2_17_1) Gifford David K. (e_1_2_2_58_1) 1986 Tofte Mads (e_1_2_2_118_1) 1997 e_1_2_2_12_1 e_1_2_2_73_1 Blelloch Guy E. (e_1_2_2_25_1) 2004 e_1_2_2_96_1 Jones Richard (e_1_2_2_70_1) e_1_2_2_77_1 Doligez Damien (e_1_2_2_41_1) 1994 e_1_2_2_50_1 e_1_2_2_116_1 e_1_2_2_92_1 Feng Mingdong (e_1_2_2_48_1) Domani Tamar (e_1_2_2_43_1) 2002 |
| References_xml | – volume-title: Chakravarty year: 2008 ident: e_1_2_2_97_1 – ident: e_1_2_2_109_1 – volume-title: In the Proceedings of the 19th ACM-SIAM Symposium on Discrete Algorithms. 501–510 year: 2008 ident: e_1_2_2_22_1 – volume-title: Hewitt year: 1981 ident: e_1_2_2_85_1 – ident: e_1_2_2_79_1 doi: 10.1145/1772690.1772751 – ident: e_1_2_2_47_1 doi: 10.1145/1188455.1188543 – volume-title: HPE shows The Machine — with 160TB of shared memory year: 2017 ident: e_1_2_2_104_1 – volume-title: Proceedings of the Ninth Annual ACM Symposium on Parallel Algorithms and Architectures (SPAA ’97) ident: e_1_2_2_26_1 – ident: e_1_2_2_102_1 doi: 10.1145/512760.512766 – ident: e_1_2_2_93_1 doi: 10.1145/130616.130623 – ident: e_1_2_2_114_1 doi: 10.1145/174675.178068 – ident: e_1_2_2_73_1 doi: 10.1145/1863543.1863582 – ident: e_1_2_2_61_1 doi: 10.1145/512529.512563 – volume-title: Gibbons year: 2004 ident: e_1_2_2_25_1 – ident: e_1_2_2_88_1 doi: 10.1145/125826.125861 – ident: e_1_2_2_90_1 doi: 10.1145/3062341.3062370 – ident: e_1_2_2_107_1 doi: 10.1016/0096-0551(75)90015-6 – volume: 11 start-page: 4 year: 1989 ident: e_1_2_2_16_1 article-title: I-structures: Data Structures for Parallel Computing publication-title: ACM Trans. Program. Lang. Syst. – ident: e_1_2_2_29_1 doi: 10.5555/889664 – ident: e_1_2_2_28_1 doi: 10.1145/209936.209958 – ident: e_1_2_2_53_1 doi: 10.1145/1411204.1411239 – ident: e_1_2_2_65_1 doi: 10.1002/spe.4380200104 – ident: e_1_2_2_121_1 doi: 10.1145/2935764.2935801 – volume-title: Proceedings of the 15th Annual European Symposium on Programming (ESOP). ident: e_1_2_2_52_1 – volume-title: Proceedings of the Ninth Annual ACM Symposium on Parallel Algorithms and Architectures (SPAA). 1–11 ident: e_1_2_2_48_1 – ident: e_1_2_2_44_1 – volume-title: Proceedings of the ACM SIGPLAN’94 Conference on Programming Language Design and Implementation (PLDI) year: 1994 ident: e_1_2_2_80_1 – ident: e_1_2_2_51_1 doi: 10.1145/1377492.1377495 – ident: e_1_2_2_18_1 doi: 10.1007/978-3-030-17184-1_22 – volume-title: Proceedings of the 28th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI ’07) ident: e_1_2_2_75_1 – ident: e_1_2_2_106_1 – volume-title: Proceedings of the Workshop on Parallel and Distributed Debugging. 89–99 ident: e_1_2_2_46_1 – ident: e_1_2_2_120_1 doi: 10.1145/390011.808261 – volume-title: Thread-Local Heaps for Java. In ISMM’02 Proceedings of the Third International Symposium on Memory Management (ACM SIGPLAN Notices), David Detlefs (Ed.). ACM Press year: 2002 ident: e_1_2_2_43_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 year: 1994 ident: e_1_2_2_41_1 – volume-title: CEFP 2011 year: 2011 ident: e_1_2_2_87_1 – ident: e_1_2_2_5_1 doi: 10.1145/3192366.3192391 – ident: e_1_2_2_7_1 doi: 10.1145/2807591.2807651 – volume-title: UK year: 2011 ident: e_1_2_2_64_1 – ident: e_1_2_2_115_1 doi: 10.1145/96709.96731 – volume-title: Titanium: a high-performance Java dialect. Concurrency: Practice and Experience 10, 11ÃćÂĂÂŘ13 year: 1998 ident: e_1_2_2_124_1 – ident: e_1_2_2_24_1 doi: 10.1145/1989493.1989553 – ident: e_1_2_2_11_1 doi: 10.1109/FSCS.1990.89581 – volume-title: Proceedings of the 28th ACM Symposium on Parallelism in Algorithms and Architectures, SPAA 2016, Asilomar State Beach/Pacific Grove, CA, USA year: 2016 ident: e_1_2_2_89_1 – ident: e_1_2_2_14_1 doi: 10.1017/S095679680000157X – volume-title: Conference Record of the Twentieth Annual ACM Symposium on Principles of Programming Languages (ACM SIGPLAN Notices). ACM Press, 113–123 year: 1993 ident: e_1_2_2_42_1 – ident: e_1_2_2_12_1 doi: 10.1145/1806651.1806655 – ident: e_1_2_2_27_1 doi: 10.1006/jpdc.1994.1038 – ident: e_1_2_2_82_1 doi: 10.1145/337449.337465 – 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–74 year: 2002 ident: e_1_2_2_103_1 – ident: e_1_2_2_4_1 doi: 10.1007/s00224-002-1057-3 – volume-title: Proceedings of the 20th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL ’93) ident: e_1_2_2_98_1 – volume-title: Cache Performance of Fast-Allocating Programs. In Record of the 1995 Conference on Functional Programming and Computer Architecture. ident: e_1_2_2_60_1 – ident: e_1_2_2_21_1 doi: 10.1145/227234.227246 – ident: e_1_2_2_30_1 doi: 10.1137/S0097539793259471 – ident: e_1_2_2_108_1 doi: 10.1145/2312005.2312018 – volume: 13 start-page: 11 year: 1970 ident: e_1_2_2_38_1 article-title: A Non-Recursive List Compacting publication-title: Algorithm. Commun. ACM – ident: e_1_2_2_2_1 doi: 10.1145/3293883.3295725 – ident: e_1_2_2_50_1 doi: 10.1145/1543135.1542490 – ident: e_1_2_2_33_1 doi: 10.1145/1640089.1640097 – ident: e_1_2_2_63_1 doi: 10.1145/800055.802017 – volume-title: Randall year: 1998 ident: e_1_2_2_57_1 – ident: e_1_2_2_76_1 doi: 10.1145/2502323.2502326 – ident: e_1_2_2_81_1 doi: 10.1145/2784731.2784736 – ident: e_1_2_2_40_1 – volume: 20 start-page: 5 year: 2011 ident: e_1_2_2_54_1 article-title: Implicitly threaded parallelism in Manticore publication-title: Journal of Functional Programming – ident: e_1_2_2_49_1 doi: 10.1007/s002240000120 – ident: e_1_2_2_96_1 doi: 10.1145/1452044.1452048 – ident: e_1_2_2_15_1 doi: 10.1007/s00224-001-0004-z – ident: e_1_2_2_55_1 doi: 10.1145/1248648.1248656 – ident: e_1_2_2_125_1 doi: 10.1145/1993498.1993572 – ident: e_1_2_2_116_1 doi: 10.1145/321879.321884 – volume-title: Region-Based Memory Management. Information and Computation (Feb year: 1997 ident: e_1_2_2_118_1 – ident: e_1_2_2_62_1 doi: 10.1145/3178487.3178494 – volume-title: Proceedings of the 10th ACM Symposium on Parallel Algorithms and Architectures (SPAA ’98) ident: e_1_2_2_39_1 – ident: e_1_2_2_117_1 doi: 10.1145/1353445.1353449 – ident: e_1_2_2_119_1 doi: 10.1145/2500365.2500600 – volume-title: Proceedings of the ACM SIGPLAN Workshop on Haskell, Haskell 2007 year: 2007 ident: e_1_2_2_84_1 – ident: e_1_2_2_37_1 doi: 10.1145/1094811.1094852 – ident: e_1_2_2_68_1 – ident: e_1_2_2_36_1 doi: 10.1145/1248648.1248652 – ident: e_1_2_2_32_1 doi: 10.1145/1926385.1926447 – ident: e_1_2_2_6_1 doi: 10.1145/2442516.2442538 – volume-title: Proceedings of the 15th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL ’88) ident: e_1_2_2_86_1 – volume-title: Proceedings of the 14th ACM SIGPLAN International Conference on Functional Programming (ICFP ’18) year: 2018 ident: e_1_2_2_91_1 – volume-title: Proceedings of the 1987 International Conference on Parallel Processing. 721–727 ident: e_1_2_2_10_1 – ident: e_1_2_2_83_1 doi: 10.1145/1640089.1640106 – ident: e_1_2_2_94_1 doi: 10.1145/289918.289920 – ident: e_1_2_2_3_1 – volume-title: The garbage collection handbook: the art of automatic memory management ident: e_1_2_2_70_1 – ident: e_1_2_2_34_1 doi: 10.5555/1855591.1855595 – ident: e_1_2_2_13_1 doi: 10.5555/66382.66387 – ident: e_1_2_2_69_1 – ident: e_1_2_2_20_1 doi: 10.1145/3290378 – volume-title: Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL ’14) ident: e_1_2_2_78_1 – ident: e_1_2_2_8_1 doi: 10.1017/S0956796816000101 – ident: e_1_2_2_74_1 doi: 10.1145/169627.169724 – volume-title: Padua year: 1991 ident: e_1_2_2_45_1 – ident: e_1_2_2_71_1 doi: 10.1145/3158154 – ident: e_1_2_2_123_1 – ident: e_1_2_2_66_1 doi: 10.1145/2647508.2647514 – ident: e_1_2_2_9_1 doi: 10.1145/1839676.1839697 – volume-title: Leiserson year: 1999 ident: e_1_2_2_31_1 – ident: e_1_2_2_77_1 doi: 10.1145/2594291.2594312 – ident: e_1_2_2_100_1 doi: 10.1145/2951913.2951935 – ident: e_1_2_2_56_1 doi: 10.1145/1583991.1584017 – volume-title: Proceedings of the Second workshop on Semantics, Program Analysis and Computing Environments for Memory Management (SPACE’01) year: 2001 ident: e_1_2_2_112_1 – ident: e_1_2_2_95_1 – ident: e_1_2_2_1_1 doi: 10.1145/3178487.3178516 – volume-title: Proceedings of the 2011 ACM SIGPLAN workshop on Memory Systems Performance and Correctness (MSPC). 51–57 ident: e_1_2_2_17_1 – ident: e_1_2_2_23_1 doi: 10.1145/2370036.2145840 – ident: e_1_2_2_92_1 doi: 10.1145/305619.305629 – ident: e_1_2_2_72_1 doi: 10.1017/S0956796818000151 – ident: e_1_2_2_19_1 doi: 10.1109/SC.2012.71 – ident: e_1_2_2_67_1 – ident: e_1_2_2_105_1 doi: 10.1145/363534.363546 – ident: e_1_2_2_101_1 doi: 10.1145/2254064.2254127 – volume-title: CONCUR 2007 - Concurrency Theory, 18th International Conference, CONCUR 2007, Lisbon, Portugal, September 3-8, 2007, Proceedings. 256–271 ident: e_1_2_2_122_1 – ident: e_1_2_2_111_1 doi: 10.1109/HOTCHIPS.2015.7477467 – volume-title: MultiMLton: A multicore-aware runtime for standard ML. Journal of Functional Programming FirstView (6 year: 2014 ident: e_1_2_2_110_1 – volume-title: Lucassen year: 1986 ident: e_1_2_2_58_1 – volume-title: 3rd USENIX Workshop on Hot Topics in Parallelism, HotPar’11 year: 2011 ident: e_1_2_2_35_1 – ident: e_1_2_2_99_1 doi: 10.1145/1993498.1993501 |
| SSID | ssj0001934839 |
| Score | 2.2330468 |
| Snippet | Nested parallelism has proved to be a popular approach for programming the rapidly expanding range of multicore computers. It allows programmers to express... |
| SourceID | crossref |
| SourceType | Enrichment Source Index Database |
| StartPage | 1 |
| Title | Disentanglement in nested-parallel programs |
| Volume | 4 |
| WOSCitedRecordID | wos000685202400048&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/eLvHCXMwtV1JT9wwFLZg6IELhS5iKSgH1AsKxY5jO8fRtIgDy0gFidvIW-hImYBmQZz47XhLxkqRaA9cosiyRzPzXp5fPn_vfQAcIoIoLBFNlTZPE7a9ADjHOi0hUpIhVeASO7EJennJbm-LYTiKmTk5AVrX7OmpeHhXU5sxY2xbOvsf5m4_1AyYe2N0czVmN9d_MvzPsasnqu88MdwCGrUDNVPb5ruqdNWQsmZxZjpsdzJH7ugPLuw5Qpg5sYBCA222WbhVpZkGJfbffNIGEK74o2dt_1n63mm10KE6yCmMt54mPcX7ZrKYH_WPYxQCnUQohAtWCNM8hdhXOx_rV8ZCtMWRUw2vhudR8ITRLuxBz7_jO7atMLKMmhCdL7ew5ti-s7O1fENffZ2PwsJVsIZoXlgG4MVzBMkVGWZOe6795r7M2q79EdZG-UuUiFxvgo3wBpH0veW3wIquP4GPjTpHEoL1Z3DUcYRkXCcdR0gaR_gCbk5_XQ_O0iCNkUqUs3laKompzogiXGIlSiwEZFKQkhBOcKlNJBaQiEwiaEEtyCmnJC9IoQpmqbjZV9Cr72u9DRJsqQfMJHLoRGEokGA4VyI379Hc5H663AHfmx88kqFvvJUvqUadf3UHJO3EB98qpTtl9-0pe2B96V_fQG8-Xeh98EE-zsez6YEz2AsXf1kv |
| 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=Disentanglement+in+nested-parallel+programs&rft.jtitle=Proceedings+of+ACM+on+programming+languages&rft.au=Westrick%2C+Sam&rft.au=Yadav%2C+Rohan&rft.au=Fluet%2C+Matthew&rft.au=Acar%2C+Umut+A.&rft.date=2020-01-01&rft.issn=2475-1421&rft.eissn=2475-1421&rft.volume=4&rft.issue=POPL&rft.spage=1&rft.epage=32&rft_id=info:doi/10.1145%2F3371115&rft.externalDBID=n%2Fa&rft.externalDocID=10_1145_3371115 |
| 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 |