Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Vladimir Kiriansky is active.

Publication


Featured researches published by Vladimir Kiriansky.


symposium on code generation and optimization | 2006

Thread-Shared Software Code Caches

Derek L. Bruening; Vladimir Kiriansky; Timothy Garnett; Sanjeev Banerji

Software code caches are increasingly being used to amortize the runtime overhead of dynamic optimizers, simulators, emulators, dynamic translators, dynamic compilers, and other tools. Despite the now-wide spread use of code caches, techniques for efficiently sharing them across multiple threads have not been fully explored. Some systems simply do not support threads, while others resort to thread-private code caches. Although thread-private caches are much simpler to manage, synchronize, and provide scratch space for, they simply do not scale when applied to many-threaded programs. Thread-shared code caches are needed to target server applications, which employ hundreds of worker threads all performing similar tasks. Yet, those systems that do share their code caches often have brute-force, inefficient solutions to the challenges of concurrent code cache access: a single global lock on runtime system code and suspension of all threads for any cache management action. This limits the possibilities for cache design and has performance problems with applications that require frequent cache invalidations to maintain cache consistency. In this paper, we discuss the design choices when building thread-shared code caches and enumerate the difficulties of thread-local storage, synchronization, trace building, in-cache lookup tables, and cache eviction. We present efficient solutions to these problems that both scale well and do not require thread suspension. We evaluate our results in DynamoRIO, an industrial-strength dynamic binary translation system, on real-world server applications. On these applications our thread-shared caches use an order of magnitude less memory and improve throughput by up to four times compared to thread-private caches.


international conference on parallel architectures and compilation techniques | 2016

Optimizing Indirect Memory References with milk

Vladimir Kiriansky; Yunming Zhang; Saman P. Amarasinghe

Modern applications such as graph and data analytics, when operating on real world data, have working sets much larger than cache capacity and are bottlenecked by DRAM. To make matters worse, DRAM bandwidth is increasing much slower than per CPU core count, while DRAM latency has been virtually stagnant. Parallel applications that are bound by memory bandwidth fail to scale, while applications bound by memory latency draw a small fraction of much-needed bandwidth. While expert programmers may be able to tune important applications by hand through heroic effort, traditional compiler cache optimizations have not been sufficiently aggressive to overcome the growing DRAM gap. In this paper, we introduce milk - a C/C++ language extension that allows programmers to annotate memory-bound loops concisely. Using optimized intermediate data structures, random indirect memory references are transformed into batches of efficient sequential DRAM accesses. A simple semantic model enhances programmer productivity for efficient parallelization with OpenMP. We evaluate the Milk compiler on parallel implementations of traditional graph applications, demonstrating performance gains of up to 3×.


international conference on parallel architectures and compilation techniques | 2018

Cimple: instruction and memory level parallelism: a DSL for uncovering ILP and MLP

Vladimir Kiriansky; Haoran Xu; Martin C. Rinard; Saman P. Amarasinghe

Modern out-of-order processors have increased capacity to exploit instruction level parallelism (ILP) and memory level parallelism (MLP), e.g., by using wide superscalar pipelines and vector execution units, as well as deep buffers for inflight memory requests. These resources, however, often exhibit poor utilization rates on workloads with large working sets, e.g., in-memory databases, key-value stores, and graph analytics, as compilers and hardware struggle to expose ILP and MLP from the instruction stream automatically. In this paper, we introduce the IMLP (Instruction and Memory Level Parallelism) task programming model. IMLP tasks execute as coroutines that yield execution at annotated long-latency operations, e.g., memory accesses, divisions, or unpredictable branches. IMLP tasks are interleaved on a single thread, and integrate well with thread parallelism and vectorization. Our DSL embedded in C++, Cimple, allows exploration of task scheduling and transformations, such as buffering, vectorization, pipelining, and prefetching. We demonstrate state-of-the-art performance on core algorithms used in in-memory databases that operate on arrays, hash tables, trees, and skip lists. Cimple applications reach 2.5× throughput gains over hardware multithreading on a multi-core, and 6.4× single thread speedup.


usenix security symposium | 2002

Secure Execution via Program Shepherding

Vladimir Kiriansky; Derek L. Bruening; Saman P. Amarasinghe


Archive | 2003

Secure execution of a computer program

Vladimir Kiriansky; Derek L. Bruening; Saman P. Amarasinghe


Archive | 2003

Secure execution of a computer program using a code cache

Derek Bruening; Vladimir Kiriansky; Saman P. Amarasinghe


Archive | 2003

Execution Model Enforcement Via Program Shepherding

Vladimir Kiriansky; Derek L. Bruening; Saman P. Amarasinghe


arXiv: Distributed, Parallel, and Cluster Computing | 2016

Optimizing Cache Performance for Graph Analytics.

Yunming Zhang; Vladimir Kiriansky; Charith Mendis; Matei Zaharia; Saman P. Amarasinghe


international conference on big data | 2017

Making caches work for graph analytics

Yunming Zhang; Vladimir Kiriansky; Charith Mendis; Saman P. Amarasinghe; Matei Zaharia


arXiv: Programming Languages | 2018

Cimple: Instruction and Memory Level Parallelism.

Vladimir Kiriansky; Haoran Xu; Martin C. Rinard; Saman P. Amarasinghe

Collaboration


Dive into the Vladimir Kiriansky's collaboration.

Top Co-Authors

Avatar

Saman P. Amarasinghe

Massachusetts Institute of Technology

View shared research outputs
Top Co-Authors

Avatar

Derek L. Bruening

Massachusetts Institute of Technology

View shared research outputs
Top Co-Authors

Avatar

Yunming Zhang

Massachusetts Institute of Technology

View shared research outputs
Top Co-Authors

Avatar

Charith Mendis

Massachusetts Institute of Technology

View shared research outputs
Top Co-Authors

Avatar

Haoran Xu

Massachusetts Institute of Technology

View shared research outputs
Top Co-Authors

Avatar

Martin C. Rinard

Massachusetts Institute of Technology

View shared research outputs
Top Co-Authors

Avatar

Matei Zaharia

Massachusetts Institute of Technology

View shared research outputs
Researchain Logo
Decentralizing Knowledge