Bundled VM artifact to accompany paper entitled SC-Haskell: Sequential Consistency in Languages That Minimize Mutable Shared Heap

dc.contributor.authorVollmer, Michael
dc.contributor.authorScott, Ryan G.
dc.contributor.authorMusuvathi, Madanlal
dc.contributor.authorNewton, Ryan R.
dc.date.accessioned2016-12-19T15:44:39Z
dc.date.available2016-12-19T15:44:39Z
dc.date.issued2017-02
dc.descriptionA single ".ova" file encompassing an Ubuntu-based (v. 16.04) virtual machine (VM). This VM is the "artifact" used in the artifact evaluation of the corresponding PPoPP17 paper. It contains the complete software, such as example programs and benchmark programs, necessary to reproduce the results of the paper. Scripts are included in the virtual machine to automatically run benchmarks and compare their results. Download the VM by clicking the link below under "Link(s) to data and video for this item."en
dc.description.abstractA core, but often neglected, aspect of a programming language design is its memory (consistency) model. Sequential consistency~(SC) is the most intuitive memory model for programmers as it guarantees sequential composition of instructions and provides a simple abstraction of shared memory as a single global store with atomic read and writes. Unfortunately, SC is widely considered to be impractical due to its associated performance overheads. Perhaps contrary to popular opinion, this paper demonstrates that SC is achievable with acceptable performance overheads for mainstream languages that minimize mutable shared heap. In particular, we modify the Glasgow Haskell Compiler to insert fences on all writes to shared mutable memory accessed in nonfunctional parts of the program. For a benchmark suite containing 1,279 programs, SC adds a geomean overhead of less than 0.4\% on an x86 machine. The efficiency of SC arises primarily due to the isolation provided by the Haskell type system between purely functional and thread-local imperative computations on the one hand, and imperative computations on the global heap on the other. We show how to use new programming idioms to further reduce the SC overhead; these create a virtuous cycle of less overhead and even stronger semantic guarantees (static data-race freedom).en
dc.description.sponsorshipNSF award 1453508en
dc.identifier.urihttps://hdl.handle.net/2022/21166
dc.language.isoenen
dc.publisherSheridan Communications on behalf of ACM. Proceedings of 22nd annual ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP17)en
dc.relation.isversionofhttp://dx.doi.org/10.1145/3018743.3018746en
dc.relation.isversionofhttps://datacore.iu.edu/concern/data_sets/sq87bw01den
dc.relation.urihttp://purl.dlib.indiana.edu/iusw/data/2022/21166/SC-Haskell-evaluation-VM-PPoPP17.ova
dc.relation.urihttps://doi.org/10.5072/FK22J6FG6Cen
dc.rightsCreative commons attribution 4.0 (CC BY 3.0), except where other licenses apply in included Ubuntu VM.en
dc.rights.urihttps://creativecommons.org/licenses/by/3.0/en
dc.titleBundled VM artifact to accompany paper entitled SC-Haskell: Sequential Consistency in Languages That Minimize Mutable Shared Heapen
dc.typeSoftwareen

Files

Collections

Can’t use the file because of accessibility barriers? Contact us with the title of the item, permanent link, and specifics of your accommodation need.