|
|
Harsha Vardhan Simhadri
Senior Principal Researcher, Microsoft Azure
I enjoy developing new algorithms motivated by real-world applications and systems.
My PhD thesis developed parallel algorithms and run-times with
provable guarantees for multi-core processors. Subsequently, I worked with an amazing team
at Microsoft Research India and developing new ML operators and architectures for tiny IoT and
edge devices (EdgeML).
In 2018, we started the DiskANN project for
Approximate Nearest Neighbor Search (ANNS)
to address the large gap between research and practice. We developed
the first practical SSD-based
ANNS system that can search a billion points in few milliseconds, real-time accurate updates and
fast predicated vector queries via Filtered-DiskANN
that incorporate vector and predicate data into index construction.
These ideas are widely deployed at scale in Microsoft for
web and enterprise document search, advertisements and recommendation systems,
Windows
Copilot runtime,
and have influcenced many vector databases
[DataStax Jvector,
pgvectorscale,
Pinecone Graph Algorithms],
and hardware accelerated designs
[Intel
OptaNNE for pmem,
BANG for GPUs].
Recently, I joined Azure Data and have been working on a Rust re-write of DiskANN that
inter-operates with databases (e.g., CosmosDB NoSQL, PostgreSQL), key-value stores, and
plain old memory buffers and file systems.
This project is the foundation for vector indices in Azure Databases
such as CosmosDB
NoSQL.
Along the way, we realized that there were precious few realistic datasets and benchmarks.
So we created and curated new datasets via big-ann-benchmarks for the research community.
We organized two competitions based on these datasets at
NeurIPS'21 and
NeurIPS'23.
The first focused on billion-scale indices on standard and specialized hardware,
while the second focused on practical variants of vector search such as streaming, sparse and
filtered search.
We are open to ongoing dataset and algorithm contributions to this effort.
Here is a short overview on DiskANN and a recording from Northwestern IDEAL
workshop.
Publications
-
Results of the Big ANN: NeurIPS'23 competition
(with Harsha Vardhan Simhadri, Martin Aumüller, Amir Ingber, Matthijs Douze, George Williams, Magdalen Dobson Manohar, Dmitry Baranchuk, Edo Liberty, Frank Liu, Ben Landrum, Mazin Karjikar, Laxman Dhulipala, Meng Chen, Yue Chen, Rui Ma, Kai Zhang, Yuzheng Cai, Jiayang Shi, Yizhuo Chen, Weiguo Zheng, Zihao Wan, Jie Yin, Ben Huang)
-
ParlayANN: Scalable and Deterministic Parallel Graph-Based Approximate Nearest Neighbor
Search Algorithms
(with Magdalen Dobson, Zheqi Shen, Guy E. Blelloch, Laxman Dhulipala, Yan Gu, Yihan Sun)
-
Filtered-DiskANN: Graph Algorithms for Approximate Nearest Neighbor Search with
Filters
WWW'23 (with Siddharth Gollapudi, Neel Karia, Varun Sivashankar, Ravishankar Krishnaswamy,
Nikit Begwani, Swapnil, Raz, Yiyong Lin, Yin Zhang, Neelam Mahapatro, Premkumar Srinivasan,
Amit Singh)
-
Results of the NeurIPS'21 Challenge on Billion-Scale Approximate Nearest Neighbor
Search
(with George Williams, Martin Aumüller, Matthijs Douze, Artem Babenko,
Dmitry Baranchuk, Qi Chen, Lucas Hosseini, Ravishankar Krishnaswamy, Gopal Srinivasa,
Suhas Jayaram Subramanya, Jingdong Wang)
-
FreshDiskANN: A Fast and Accurate Graph-Based ANN Index for Streaming Similarity
Search
(with Aditi Singh, Suhas Jayaram Subramanya and Ravishankar Krishnaswamy)
-
RNNPool: Efficient Non-linear Pooling for RAM Constrained Inference (code)
NeurIPS'20 (with Oindrila Saha, Aditya Kusupati, Manik Varma and Prateek Jain)
-
DROCC: Deep Robust One-Class Classification (code)
ICML'20 (with Sachin Goyal, Aditi Raghunathan, Moksh Jain and Prateek Jain)
-
DiskANN: Fast Accurate Billion-point Nearest Neighbor Search on a Single Node (code)
NeurIPS'19 (with Suhas Jayaram Subramanya, Devvrit, Rohan Kadekodi and Ravishankar Krishnawamy)
-
Shallow RNN: Accurate Time-series Classification on Resource Constrained Devices
NeurIPS'19 (Don Dennis, Durmus Alp, Emre Acar, Vikram Mandikal, Vinu Sankar Sadasivan, Venkatesh
Saligrama and Prateek Jain)
-
GesturePod: Programmable Gesture Recognition for Augmenting Assistive Devices
(code)
ACM UIST'19 (with Shishir Patil, Don Kurian Dennis, Chirag Pabbaraju, Rajanikant Deshmukh, Manik
Varma, Prateek Jain)
-
Word2Sense : Sparse Interpretable Word Embeddings
ACL'19 (with Abhishek Panigrahi, Chiranjib Bhattacharyya)
-
BLAS-on-flash : An Efficient Alternative for Large Scale ML Training and Inference?
(code)
NSDI'19 (with Suhas Jayaram Subramanya, Srajan Garg, Anil Kag, Venkatesh Balasubramanian)
- Multiple Instance Learning for Efficient Sequential Data
Classification on Resource-Constrained Devices
(code)
NeurIPS'18 (with Don Kurian Dennis, Chirag Pabbaraju, Prateek Jain)
- Provably Efficient Scheduling of Dynamically Allocating Programs on
Parallel Cache Hierarchies
HiPC '17 (with Guy Blelloch, Phillip Gibbons)
- ProtoNN: Compressed and Accurate kNN for Resource-scarce Devices
(code)
ICML '17
(with Chirag Gupta, Arun Sai Suggala, Ankit Goyal,
Bhargavi Paranjape, Ashish Kumar, Saurabh Goyal, Raghavendra Udupa, Manik Varma, Prateek Jain)
- Extending the Nested Parallel Model to the Nested
Dataflow Model with Provably Efficient Schedulers
ACM SPAA'16 (with David Dinh and Yuan Tang)
- Write-Avoiding Algorithms
(poster)
(conference version)
IPDPS '16
(with Erin Carson, James Demmel, Laura Grigori, Nicholas Knight,
Penporn Koanantakool and Oded Schwartz)
- Experimental Analysis of Space-Bounded Schedulers
(conference version)
(code)
ACM SPAA '14 (with Guy E. Blelloch, Jeremy T. Fineman, Phillip B. Gibbons and Aapo Kyrola)
Invited to the ACM Transaction on Parallel Computing best papers issue, 2016, 3(1).
- Program-Centric Cost Models for Locality
ACM MSPC'13 workshop (with Guy E. Blelloch, Jeremy T. Fineman and Phillip B. Gibbons)
- Brief announcement: the problem based benchmark suite
ACM SPAA '12 (with Julian Shun, Guy E. Blelloch, Jeremy T. Fineman, Phillip B. Gibbons, Aapo
Kyrola, and Kanat Tangwongsan)
- Parallel and I/O efficient set covering algorithms
ACM SPAA '12 (with Guy E. Blelloch and Kanat Tangwongsan)
- Scheduling Irregular Parallel Computations on Hierarchical Caches
(Tech Report)
ACM SPAA '11 (with Guy E. Blelloch, Jeremy T. Fineman and Phillip B. Gibbons)
Tech Report: CMU-CS-10-154
- Low Depth Cache Oblivious Algorithms
(conference version)
Tech Report: CMU-CS-09-134 (with Guy E. Blelloch and Phillip B. Gibbons)
ACM SPAA '10
- Combinable Memory-Block Transactions
ACM SPAA '08 (with Guy E. Blelloch and Phillip B. Gibbons)
- Towards optimal and efficient perfectly secure message
transmission
Theory of Cryptography Conference 2007 (with Mattias Fitzi, Mathew Franklin and Juan Garay)
Thesis
Program-Centric Cost Models for Locality and Parallelism
Students I have worked with
Grace Dinh,
Chirag Gupta,
Srajan Garg,
Don Dennis,
Shishir Patil,
Suhas Jayaram Subramanya,
Abhishek Panigrahi,
Saching Goyal, Moksh Jain, Oindrila Saha, Aditi Singh
Teaching Assistant
-
15-750: Graduate Algorithms (Spring 2011)
-
15-499: Parallel Algorithms (Spring 2009)
Earlier
2013-2016: Postdoctoral Fellow, CS Department, Lawrence Berkeley National Lab.
2007-2013: Ph.D., CS Department, Carnegie Mellon University, Advisor: Guy Blelloch
2003-2007: B.Tech, IIT Madras, Major: CS, Minor: Physics.
|