Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Nalini Vasudevan

dblp:51/5725 · DBLP profile ↗
← Back
10ranked-venue papers
7as first author
0since 2021 · last 2016
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 6 · 4 first-authorSystems, architecture and hardware · 4 · 3 first-authorTheory of computation · 2 · 2 first-authorApplied, interdisciplinary, general and emerging computing · 1

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
2 papers
Compilers and program optimization · 74% Concurrent programming · 13% Program analysis · 13%
Computer architecture, parallel and distributed computing, and storage systems
1 paper
Processor architecture and microarchitecture · 87% Parallel and multicore computing · 13%

Topics — the 8 heaviest of 8, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Compilers and program optimization › vectorization
irregular loop vectorization
0.212016
FlexVec: auto-vectorization for irregular loops · PLDI 2016
Compilers and program optimization
vectorization
0.212016
FlexVec: auto-vectorization for irregular loops · PLDI 2016
Processor architecture and microarchitecture
instruction set architecture
0.212016
FlexVec: auto-vectorization for irregular loops · PLDI 2016
Processor architecture and microarchitecture › SIMD
SIMD extensions
0.212016
FlexVec: auto-vectorization for irregular loops · PLDI 2016
Concurrent programming › message passing
ada rendez-vous
0.112010
Buffer Sharing in Rendezvous Programs · IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 2010
Compilers and program optimization › memory optimization
memory footprint reduction
0.112010
Buffer Sharing in Rendezvous Programs · IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 2010
Program analysis › concurrent program analysis
static analysis of concurrent programs
0.112010
Buffer Sharing in Rendezvous Programs · IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 2010
Parallel and multicore computing › data parallelism
SIMD vectorization
0.112016
FlexVec: auto-vectorization for irregular loops · PLDI 2016

Methods — techniques the papers use, named apart from their topics

dependence analysis · 0.5code generation · 0.5static analysis · 0.1buffer lifetime analysis · 0.1
YearPublicationVenuePosition
2016 FlexVec: auto-vectorization for irregular loops
abstract
Traditional vectorization techniques build a dependence graph with distance and direction information to determine whether a loop is vectorizable. Since vectorization reorders the execution of instructions across iterations, in general instructions involved in a strongly connected component (SCC) are deemed not vectorizable unless the SCC can be eliminated using techniques such as scalar expansion or privatization. Therefore, traditional vectorization techniques are limited in their ability to efficiently handle loops with dynamic cross-iteration dependencies or complex control flow interweaved within the dependence cycles. When potential dependencies do not occur very often, the end-result is under utilization of the SIMD hardware. In this paper, we propose FlexVec architecture that combines new vector instructions with novel code generation techniques to dynamically adjusts vector length for loop statements affected by cross-iteration dependencies that happen at runtime. We have designed and implemented FlexVec's new ISA as extensions to the recently released AVX-512 ISA. We have evaluated the performance improvements enabled by FlexVec vectorization for 11 C/C++ SPEC 2006 benchmarks and 7 real applications with AVX-512 vectorization as baseline. We show that FlexVec vectorization technique produces a Geomean speedup of 9% for SPEC 2006 and a Geomean speedup of 11% for 7 real applications.
Sara S. Baghsorkhi, Nalini Vasudevan, Youfeng Wu
PLDI2
2010 Simple and fast biased locks
abstract
Locks are used to ensure exclusive access to shared memory locations. Unfortunately, lock operations are expensive, so much work has been done on optimizing their performance for common access patterns. One such pattern is found in networking applications, where there is a single thread dominating lock accesses. An important special case arises when a single-threaded program calls a thread-safe library that uses locks.
Nalini Vasudevan, Kedar S. Namjoshi, Stephen A. Edwards
PACT1
2010 Buffer Sharing in Rendezvous Programs
abstract
Most compilers focus on optimizing performance, often at the expense of memory, but efficient memory use can be just as important in constrained environments such as embedded systems. This paper presents a memory reduction technique for rendezvous communication, which is applied to the deterministic concurrent programming language SHIM. It focuses on reducing memory consumption by sharing communication buffers among tasks. It determines pairs of buffers that can never be in use simultaneously and use a shared region of memory for each pair. The technique produces a static abstraction of a SHIM program's dynamic behavior, which is then analyzed to find buffers that are never occupied simultaneously. Experiments show the technique runs quickly on modest-sized programs and can sometimes reduce memory requirements by half.
Nalini Vasudevan, Stephen A. Edwards
IEEE Trans. Comput. Aided Des. Integr. Circuits Syst.1
2009 Compile-Time Analysis and Specialization of Clocks in Concurrent Programs
Nalini Vasudevan, Olivier Tardieu, Julian Dolby, Stephen A. Edwards
CC1
2009 Compositional deadlock detection for rendezvous communication
abstract
Concurrent programming languages are growing in importance with the advent of multi-core systems. However, concurrent programs suffer from problems, such as data races and deadlock, absent from sequential programs. Unfortunately, traditional race and deadlock detection techniques fail on both large programs and small programs with complex behaviors.
Baolin Shao, Nalini Vasudevan, Stephen A. Edwards
EMSOFT2
2009 Buffer sharing in CSP-like programs
abstract
Most compilers focus on optimizing performance, often at the expense of memory, but efficient memory use can be just as important in constrained environments such as embedded systems.
Nalini Vasudevan, Stephen A. Edwards
MEMOCODE1
2008 Programming Shared Memory Multiprocessors with Deterministic Message-Passing Concurrency: Compiling SHIM to Pthreads
abstract
Multicore shared-memory architectures are becoming prevalent and bring many programming challenges. Among the biggest are data races: accesses to shared resources that make a program's behavior depend on scheduling decisions beyond its control. To eliminate such races, the SHIM concurrent programming language adopts deterministic message passing as it sole communication mechanism. We demonstrate such language restrictions are practical by presenting a SHIM to C-plus-Pthreads compiler that can produce efficient code for shared-memory multiprocessors. We present a parallel JPEG decoder and FFT exhibiting 3.05 and 3.3times speedups on a four-core processor.
Stephen A. Edwards, Nalini Vasudevan, Olivier Tardieu
DATE2
2008 A deterministic multi-way rendezvous library for haskell
abstract
The advent of multicore processors requires mainstream concurrent programming languages with high level concurrency constructs and effective debugging techniques. Unfortunately, many concurrent programming languages are non-deterministic and allow data races.
Nalini Vasudevan, Satnam Singh, Stephen A. Edwards
IPDPS1
2008 Static Deadlock Detection for the SHIM Concurrent Language
abstract
Concurrent programming languages are becoming mandatory with the advent of multi-core processors. Two major concerns in any concurrent program are data races and deadlocks. Each are potentially subtle bugs that can be caused by non-deterministic scheduling choices in most concurrent formalisms. As an alternative, the SHIM concurrent language guarantees the absence of data races by eschewing shared memory, but a SHIM program may still deadlock if a program violates a communication protocol. We present a model-checking-based static deadlock detection technique for the SHIM language. Although SHIM is asynchronous, its semantics allow us to model it synchronously without losing precision, greatly reducing the state space that must be explored. This plus the obvious division between control and data in SHIM programs makes it easy to construct concise abstractions. Experimentally, we find our procedure runs in only a few seconds for modest-sized programs, making it practical to use as part of a compilation chain.
Nalini Vasudevan, Stephen A. Edwards
MEMOCODE1
2007 Comparative Analysis of Neural Network Techniques Vs Statistical Methods in Capacity Planning
abstract
Capacity planning is a technique which can be used to predict the computing resource needs of an organization for the future after studying current usage patterns. This is of special import for adaptive enterprises, given the large infrastructure and large number of users. Determining resource needs beforehand can be very beneficial because it is a proactive approach and helps prevent resource crunches and service level violations. Accuracy of the predicted values, however, depends upon the methods used for the forecast and also upon the accuracy of the historical data. Historical data in the capacity planning sense is system performance data. Most of the approaches used for such a prediction make use of statistical methods or are based on queuing theory. This paper compares the traditional statistical based methods with a method based on neural networks. The training set for the neural network consists of historical values of a metric (for example CPU utilization percentage) for which the prediction is to be done. The advantages of this method over other methods have also been discussed. From the predicted information, we illustrate how capacity planning is done.
Nalini Vasudevan, Gowri C. Parthasarathy
SERA1