Bastian Hagedorn , Archibald Samuel Elliott , Henrik Barthels, Rastislav Bodik , Vinod Grover September 2020 Paper Parallel Architectures and Compilation Techniques (PACT) Abstract: High GPU performance can only be achieved if a kernel efficiently uses the multi-layered compute and memory hierarchies. For example, accelerators such as NVIDIA’s Tensor Cores require specific mappings of threads to…
Phitchaya Mangpo Phothilimthana , Archibald Samuel Elliott , An Wang, Abhinav Jangda , Bastian Hagedorn , Henrik Barthels, Samuel J. Kaufman , Vinod Grover, Emina Torlak , Rastislav Bodik April 2019 Paper Architectural Support for Programming Languages and Operating Systems (ASPLOS) Abstract: Utilizing memory and register bandwidth in modern architectures may require irregular data placement and…
Vincent T. Lee, Archibald Samuel Elliott , Armin Alaghi, Luis Ceze February 2019 Technical Report Abstract: Stochastic computing (SC) is a high density, low-power computation technique which encodes values as unary bitstreams instead of binary-encoded (BE) values. Practical SC implementations require deterministic or pseudo-random number sequences which are optimally correlated to generate…
Archibald Samuel Elliott , Andrew Ruef, Michael Hicks , David Tarditi September 2018 Paper IEEE Cybersecurity Development (SecDev) Abstract: This paper presents Checked C, an extension to C designed to support spatial safety, implemented in Clang and LLVM. Checked C's design is distinguished by its focus on backward-compatibility, incremental conversion, developer control, and enabling highly…
Archibald Samuel Elliott October 2017 Checked C Technical Report Number 2 Abstract: Checked C is an extension to C that aims to provide a route for programmers to upgrade their existing C programs to a safer language without losing the low-level control they enjoy. Checked C currently only addresses unsafe code with spatial memory violations such as buffer overruns and out-of-bounds memory…
Archibald Samuel Elliott August 2015 Extended Abstract ICFP 2015 Student Research Competition Abstract: Concurrent programming is notoriously difficult, due to needing to reason not only about the sequential progress of any algorithms, but also about how information moves between concurrent agents. What if programmers were able to reason about their concurrent programs and statically verify both…
Archibald Samuel Elliott April 2015 Bachelors Dissertation Supervised by Edwin Brady at the University of St Andrews. Won the Lockheed Martin Award for Software Engineering at the Young Software Engineer of the Year Awards , 2015 Abstract: Concurrent programming is notoriously difficult, due to needing to reason not only about the sequential progress of any algorithms, but also about how…
Russell Brown, Sean Cribbs , Christopher Meiklejohn , Sam Elliott April 2014 Workshop Paper Principles and Practice of Eventual Consistency Abstract: Conflict-Free Replicated Data-Types (CRDTs) provide greater safety properties to eventually-consistent distributed systems without requiring synchronization. CRDTs ensure that concurrent, uncoordinated updates have deterministic outcomes via the…
Christopher Brown , Marco Danelutto, Kevin Hammond, Peter Kilpatrick , Archibald Elliott September 2013 Journal Paper International Journal of Parallel Programming Abstract: This paper presents a new programming methodology for introducing and tuning parallelism in Erlang programs, using source-level code refactoring from sequential source programs to parallel programs written using our skeleton…
Archibald Elliott , Christopher Brown , Marco Danelutto, Kevin Hammond August 2012 Early Draft Never Submitted Presented at IFL 2012 Abstract: With the increasing shift towards parallel programming, parallel programs are still notoriously difficult to implement. Indeed parallelism is usually made even more difficult by programmers typically using sequential or small-scale parallel programming…