Data Oblivious Algorithms for Multicores
Vijaya Ramachandran, Elaine Shi

TL;DR
This paper develops data-oblivious algorithms optimized for realistic multicore processors using the binary fork-join model, achieving optimal or near-optimal efficiency for sorting and various graph algorithms, with practical implementation considerations.
Contribution
It introduces the first data-oblivious algorithms for multicores modeled by binary fork-join, matching or surpassing insecure algorithms in efficiency and providing practical variants.
Findings
Data-oblivious sorting achieves optimal work and cache complexity with O(log n log log n) span.
Applications like list ranking and minimum spanning forest have data-oblivious algorithms matching insecure counterparts.
Practical sorting variants are proposed with near-optimal performance and small constant factors.
Abstract
As secure processors such as Intel SGX (with hyperthreading) become widely adopted, there is a growing appetite for private analytics on big data. Most prior works on data-oblivious algorithms adopt the classical PRAM model to capture parallelism. However, it is widely understood that PRAM does not best capture realistic multicore processors, nor does it reflect parallel programming models adopted in practice. In this paper, we initiate the study of parallel data oblivious algorithms on realistic multicores, best captured by the binary fork-join model of computation. We first show that data-oblivious sorting can be accomplished by a binary fork-join algorithm with optimal total work and optimal (cache-oblivious) cache complexity, and in O(log n log log n) span (i.e., parallel time) that matches the best-known insecure algorithm. Using our sorting algorithm as a core primitive, we show…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
