Parallel functional programming with mutable state

Immutability greatly simplifies the implementation of parallel languages. In the absence of mutable state the language implementation is free to perform parallel operations with fewer locks and fewer restrictions on scheduling and data replication. In the Manticore project, we have achieved nearly p...

Full description

Saved in:
Bibliographic Details
Main Author: Bergstrom, Lars
Format: Dissertation
Language:English
Published: ProQuest Dissertations & Theses 01.01.2013
Subjects:
ISBN:1303228564, 9781303228568
Online Access:Get full text
Tags: Add Tag
No Tags, Be the first to tag this record!
Abstract Immutability greatly simplifies the implementation of parallel languages. In the absence of mutable state the language implementation is free to perform parallel operations with fewer locks and fewer restrictions on scheduling and data replication. In the Manticore project, we have achieved nearly perfect speedups across both Intel and AMD manycore machines on a variety of benchmarks using this approach. There are parallel stateful algorithms, however, that exhibit significantly better performance than the corresponding parallel algorithm without mutable state. For example, in many search problems, the same problem configuration can be reached through multiple execution paths. Parallel stateful algorithms share the results of evaluating the same configuration across threads, but parallel mutation-free algorithms are required to either duplicate work or thread their state through a sequential store. Additionally, in algorithms where each parallel task mutates an independent portion of the data, non-conflicting mutations can be performed in parallel. The parallel state-free algorithm will have to merge each of those changes individually, which is a sequential operation at each step. In this dissertation, we extend Manticore with two techniques that address these problems while preserving its current scalability. Memoization , also known as function caching, is a technique that stores previously returned values from functions, making them available to parallel threads of executions that call that same function with those same values. We have taken this deterministic technique and combined it with a high-performance implementation of a dynamically sized, parallel hash table to provide scalable performance. We have also added mutable state along with two execution models — one of which is deterministic — that allow the user to share arbitrary results across parallel threads under several execution models, all of which preserve the ability to reason locally about the behavior of code. For both of these techniques, we present a detailed description of their implementations, examine a set of relevant benchmarks, and specify their semantics.
AbstractList Immutability greatly simplifies the implementation of parallel languages. In the absence of mutable state the language implementation is free to perform parallel operations with fewer locks and fewer restrictions on scheduling and data replication. In the Manticore project, we have achieved nearly perfect speedups across both Intel and AMD manycore machines on a variety of benchmarks using this approach. There are parallel stateful algorithms, however, that exhibit significantly better performance than the corresponding parallel algorithm without mutable state. For example, in many search problems, the same problem configuration can be reached through multiple execution paths. Parallel stateful algorithms share the results of evaluating the same configuration across threads, but parallel mutation-free algorithms are required to either duplicate work or thread their state through a sequential store. Additionally, in algorithms where each parallel task mutates an independent portion of the data, non-conflicting mutations can be performed in parallel. The parallel state-free algorithm will have to merge each of those changes individually, which is a sequential operation at each step. In this dissertation, we extend Manticore with two techniques that address these problems while preserving its current scalability. Memoization , also known as function caching, is a technique that stores previously returned values from functions, making them available to parallel threads of executions that call that same function with those same values. We have taken this deterministic technique and combined it with a high-performance implementation of a dynamically sized, parallel hash table to provide scalable performance. We have also added mutable state along with two execution models — one of which is deterministic — that allow the user to share arbitrary results across parallel threads under several execution models, all of which preserve the ability to reason locally about the behavior of code. For both of these techniques, we present a detailed description of their implementations, examine a set of relevant benchmarks, and specify their semantics.
Author Bergstrom, Lars
Author_xml – sequence: 1
  givenname: Lars
  surname: Bergstrom
  fullname: Bergstrom, Lars
BookMark eNotzstKAzEUgOGACtradwi4Hsj9spTiDQq66L6cZE7aKZlMnWTw9S3o6t_9fCtyW6aCN2TFJZNCOG3UPdnUOgTGmJeSKfFAxBfMkDNmmpYS2zAVyPQyT8cZxnEoR_oztBMdlwYhI60NGj6SuwS54ua_a7J_fdlv37vd59vH9nnXXay1nY7KBO-45TJZ14NxIHutrEebNFcRGRhUfepFEMZ75DoFQBGCiDzoyOWaPP1tr5rvBWs7nKdlvvLqgSvuhFSOcfkLXPFCiw
ContentType Dissertation
Copyright Database copyright ProQuest LLC; ProQuest does not claim copyright in the individual underlying works.
Copyright_xml – notice: Database copyright ProQuest LLC; ProQuest does not claim copyright in the individual underlying works.
DBID 050
053
0BH
0MN
AAFGM
ABUWG
ADZZV
AFKRA
AGAJT
AQTIP
AZQEC
BENPR
CBPLH
CCPQU
DWQXO
EU9
G20
M8-
OK5
PHGZM
PHGZT
PIMPY
PKEHL
PQCXX
PQEST
PQQKQ
PQUKI
PRINS
DatabaseName Dissertations & Theses Europe Full Text: Health & Medicine
Dissertations & Theses Europe Full Text: Science & Technology
ProQuest Dissertations and Theses Professional
Dissertations & Theses @ University of Chicago
ProQuest Central Korea - hybrid linking
ProQuest Central (Alumni)
ProQuest Central (Alumni) - hybrid linking
ProQuest Central UK/Ireland
ProQuest Central Essentials - hybrid linking
ProQuest Women's & Gender Studies - hybrid linking
ProQuest Central Essentials
ProQuest Central
ProQuest Dissertations & Theses Global: The Sciences and Engineering Collection
ProQuest One Community College
ProQuest Central
ProQuest Dissertations & Theses A&I
ProQuest Dissertations & Theses Global
ProQuest Dissertations and Theses A&I: The Sciences and Engineering Collection
Dissertations & Theses @ Big Ten Academic Alliance
ProQuest Central Premium
ProQuest One Academic
Publicly Available Content Database
ProQuest One Academic Middle East (New)
ProQuest Central - hybrid linking
ProQuest One Academic Eastern Edition (DO NOT USE)
ProQuest One Academic (retired)
ProQuest One Academic UKI Edition
ProQuest Central China
DatabaseTitle Publicly Available Content Database
Dissertations & Theses @ University of Chicago
Dissertations & Theses Europe Full Text: Health & Medicine
ProQuest One Academic Middle East (New)
ProQuest Central Essentials
ProQuest One Academic Eastern Edition
ProQuest Central (Alumni Edition)
ProQuest One Community College
ProQuest Dissertations & Theses: Open
ProQuest Dissertations & Theses Global: The Sciences and Engineering Collection
ProQuest Dissertations and Theses Professional
ProQuest Central China
ProQuest Dissertations and Theses A&I: The Sciences and Engineering Collection
ProQuest Dissertations & Theses Global
Dissertations & Theses Europe Full Text: Science & Technology
ProQuest Central
ProQuest One Academic UKI Edition
ProQuest Central Korea
Dissertations & Theses @ CIC Institutions
ProQuest Central (New)
ProQuest One Academic
ProQuest Dissertations & Theses A&I
ProQuest One Academic (New)
DatabaseTitleList Publicly Available Content Database
Database_xml – sequence: 1
  dbid: PIMPY
  name: Publicly Available Content Database
  url: http://search.proquest.com/publiccontent
  sourceTypes: Aggregation Database
DeliveryMethod fulltext_linktorsrc
Discipline Computer Science
ExternalDocumentID 3038408171
Genre Dissertation/Thesis
GroupedDBID 050
053
0BH
0MN
8R4
8R5
ABUWG
AFKRA
AZQEC
BENPR
CBPLH
CCPQU
DWQXO
EU9
G20
M8-
OK5
PHGZM
PHGZT
PIMPY
PKEHL
PQEST
PQQKQ
PQUKI
PRINS
Q2X
ID FETCH-LOGICAL-p777-5c46b981713f78da68a3d5479e7f514ce0a6e4dfd2b2699e15fbae2bb2c1b5c13
IEDL.DBID PIMPY
ISBN 1303228564
9781303228568
IngestDate Mon Jun 30 03:19:38 EDT 2025
IsOpenAccess true
IsPeerReviewed false
IsScholarly false
Language English
LinkModel DirectLink
MergedId FETCHMERGED-LOGICAL-p777-5c46b981713f78da68a3d5479e7f514ce0a6e4dfd2b2699e15fbae2bb2c1b5c13
Notes SourceType-Dissertations & Theses-1
ObjectType-Dissertation/Thesis-1
content type line 12
OpenAccessLink https://www.proquest.com/publiccontent/docview/1418234801?pq-origsite=%requestingapplication%
PQID 1418234801
PQPubID 18750
ParticipantIDs proquest_journals_1418234801
PublicationCentury 2000
PublicationDate 20130101
PublicationDateYYYYMMDD 2013-01-01
PublicationDate_xml – month: 01
  year: 2013
  text: 20130101
  day: 01
PublicationDecade 2010
PublicationYear 2013
Publisher ProQuest Dissertations & Theses
Publisher_xml – name: ProQuest Dissertations & Theses
SSID ssib000933042
Score 1.6130619
Snippet Immutability greatly simplifies the implementation of parallel languages. In the absence of mutable state the language implementation is free to perform...
SourceID proquest
SourceType Aggregation Database
SubjectTerms Computer science
Title Parallel functional programming with mutable state
URI https://www.proquest.com/docview/1418234801
hasFullText 1
inHoldings 1
isFullTextHit
isPrint
link http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwrV1JSwMxFH7Y1oN4qCsutczBa-gkk8lyElyqHiyD9FBPJduAYBe7-PtNphkUFE8ek1zCC_ne_j6AS4utdCxLEeVMIkq0RpJygpzhmBrlN_WGbIIPBmI0kkVsj17GssoaEyug3kx7DnXbHoR7dmZCxLyHqbeLszD65Gr-jgKHVMi1RkKNBrTC4K20Ca3i8al4-cV7D8hNiMgZjWOf6rX4gcmVoum3__eKe7B7-y3fvg9bbnoA7ZrJIYkf-xBIoRaBVOUtCXpuEx5MYunWxCu3JIRrk8l6FRqtkqoJ6QiG_bvhzQOKbApozjlHuaFMS4G9U1pyYRUTKrM55dLx0htNxqWKOWpLSzRhUjqcl1o5_3bEYJ0bnB1DczqbuhNILLNYO1xmVnsdSDJdUuEk1pgqIb3FcgqdWj7j-COW4y9xnP19fA47pKKcCGGODjRXi7W7gG3zsXpdLrrQur4bFM9daNyTtBsf-BM6XbTb
linkProvider ProQuest
linkToHtml http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMw1V3JTsMwEB2VFgnEoaxiKeADHCNqx7HjA-JAqVp1UQ49lFMUL5GQ6EIXEB_FP2KniUACceuBYxIpcjzjeeOXGT-AK421MMyve5Qz4VEipScoJ55RHFOV2JtyJTbB-_1wOBRRCT6KXhhXVlnExCxQ64lyHPkNpjYT9t1hJ3fTF8-pRrm_q4WExsotOub9zW7Z5rfthrXvNSHNh8F9y8tVBbwp59wLFGVShNhuzlIe6oSFia8DyoXhqU0elKknzFCdaiIJE8LgIJWJsd9AFJaBwr597QZUqPX1ehkqUbsXPf5CDzhoICQMGM3PlSquwx9BP0OyZvWfzcEu7DS-VQzsQcmM96FaaFGgPDQdAImSmZOFeUYOqVcEJ8qLz0YWnpEjnNFouXCtYihrozqEwTpGfQTl8WRsjgFpprE0OPW1tChOfJnS0AgsMU1CYXOuE6gVBojzNT2Pv2b_9O_Hl7DVGvS6cbfd75zBNskENBxpU4PyYrY057CpXhdP89lF7j8I4jVb6xPcUQRT
linkToPdf http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMw1V1bS8MwFD7MTUR8mFe8TM2DPoYtaZo0DyLoNhyTUmQPeytNk4LgLu6i-NP8dyZdi4Limw8-NoWS9kvPd87JOfkALjTR0nCvhZngEjOqFJZMUGxSQVia2EG1EpsQYRgMhzKqwHvZC-PKKkubmBtqPUldjrxJmPWEPXfYSTMryiKidvd6-oydgpTbaS3lNFZLpG_eXm34Nr_qtS3Wl5R2O4PbO1woDOCpEAL7KeNKBsQGapkIdMKDxNM-E9KIzDoSqWkl3DCdaaool9IQP1OJse9DU6L8lHj2sWtQE56NeapQu-mE0cMPqQJHE5QGPmfFGVPldfCNAHJW69b_8ffYhq32l0qCHaiY8S7US40KVJisPaBRMnNyMU_IMfgq8YmKorSRpW3kEtFotFy4FjKUt1ftw-AvZn0A1fFkbA4Baa6JMiTztLLsTj2VscBIoghLAml9sSNolGDExb8-jz-ROP799jlsWIji-17YP4FNmutquFxOA6qL2dKcwnr6snicz86KpYQg_mOwPgB0hgzt
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%3Adissertation&rft.genre=dissertation&rft.title=Parallel+functional+programming+with+mutable+state&rft.DBID=050%3B053%3B0BH%3B0MN%3BAAFGM%3BABUWG%3BADZZV%3BAFKRA%3BAGAJT%3BAQTIP%3BAZQEC%3BBENPR%3BCBPLH%3BCCPQU%3BDWQXO%3BEU9%3BG20%3BM8-%3BOK5%3BPHGZM%3BPHGZT%3BPIMPY%3BPKEHL%3BPQCXX%3BPQEST%3BPQQKQ%3BPQUKI%3BPRINS&rft.PQPubID=18750&rft.au=Bergstrom%2C+Lars&rft.date=2013-01-01&rft.pub=ProQuest+Dissertations+%26+Theses&rft.isbn=1303228564&rft.externalDBID=HAS_PDF_LINK&rft.externalDocID=3038408171
thumbnail_l http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=9781303228568/lc.gif&client=summon&freeimage=true
thumbnail_m http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=9781303228568/mc.gif&client=summon&freeimage=true
thumbnail_s http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=9781303228568/sc.gif&client=summon&freeimage=true