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...

Celý popis

Uloženo v:
Podrobná bibliografie
Vydáno v:Proceedings of ACM on programming languages Ročník 4; číslo POPL; s. 1 - 32
Hlavní autoři: Westrick, Sam, Yadav, Rohan, Fluet, Matthew, Acar, Umut A.
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