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...
Saved in:
| Main Author: | |
|---|---|
| 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 |

