-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
328 lines (270 loc) · 14.7 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
<html>
<head>
<title>Harsha Simhadri</title>
<meta name="description" content="homepage of Harsha Vardhan Simhadri">
<meta name="keywords"
content="Harshavardhan, Harsha, harsha vardhan, simhadri, Microsoft Research, LBNL, LBL, cmu, carnegie mellon university, iitm, computer science, DiskANN home page">
<STYLE TYPE="text/css">
BODY {
font-family: arial;
}
</STYLE>
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-21436654-1']);
_gaq.push(['_trackPageview']);
(function () {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
</head>
<body>
<table border="0">
<tr height=10pt></tr>
<tr>
<td valign=top>
<img src="pic/hv-small.jpg" width="250"><br><br>
<img src="pic/LBL_CRT.JPG" width="250"><br><br>
<img src="pic/gates.JPG" width="250"><br><br>
<!--img src="pic/hillman-skeleton.JPG" width="250"--><br><br>
<!--img src="pic/sfprt-hf.jpg" width="250"--><br>
</td>
<td width=10pt></td>
<td>
<h2>
<font color="purple">Harsha Vardhan Simhadri</font>
</h2>
<p>
Senior Principal Researcher, Microsoft Azure
</p>
<p>
<a href="mailto:[email protected]"><img src="pic/email.svg" height="32" alt="email"></a>
<a href="https://www.linkedin.com/in/harsha-vardhan-simhadri-66988a27/"><img
src="pic/LinkedIn_logo.png" height="26" alt="LinkedIn page"></a>
<a href="https://www.microsoft.com/en-us/research/people/harshasi/"><img
src="pic/Microsoft_logo.svg" height="28" alt="Microsoft Research Wegpage"></a>
<a href="https://github.com/harsha-simhadri"><img src="pic/GitHub_Logo.png" height="32"
alt="GitHub"></a>
<a href="http://www.informatik.uni-trier.de/~ley/db/indices/a-tree/s/Simhadri:Harsha_Vardhan.html"><img
src="pic/dblp_logo.png" height="32" alt="DBLP"></a>
</p>
<p>
I enjoy developing new algorithms motivated by real-world applications and systems.
My <a href="pubs/thesis.pdf">PhD thesis</a> 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 (<a href="https://github.com/Microsoft/EdgeML">EdgeML</a>).
</p>
<p>
In 2018, we started the <a href="https://github.com/Microsoft/DiskANN">DiskANN project</a> for
Approximate Nearest Neighbor Search (ANNS)
to address the large gap between research and practice. We developed
the first practical <a href="" pubs/DiskANN19.pdf">SSD-based</a>
ANNS system that can search a billion points in few milliseconds, real-time accurate <a
href="https://arxiv.org/abs/2105.09613">updates</a> and
fast predicated vector queries via <a href="pubs/Filtered-DiskANN23.pdf">Filtered-DiskANN
</a> that incorporate vector and predicate data into index construction.
</p>
<p>
These ideas are widely deployed <a
href="https://www.youtube.com/watch?time_continue=1&v=BnYNdSIKibQ">at scale in Microsoft</a> for
web and enterprise document search, advertisements and recommendation systems,
<a
href="https://blogs.windows.com/windowsdeveloper/2024/05/21/unlock-a-new-era-of-innovation-with-windows-copilot-runtime-and-copilot-pcs/">Windows
Copilot runtime</a>,
and have influcenced many vector databases
[<a href="https://github.com/jbellis/jvector">DataStax Jvector</a>,
<a href="https://github.com/timescale/pgvectorscale">pgvectorscale</a>,
<a href="https://www.pinecone.io/blog/hnsw-not-enough/">Pinecone Graph Algorithms</a>],
and hardware accelerated designs
[<a
href="https://www.intel.com/content/www/us/en/developer/articles/technical/winning-neurips-billion-scale-ann-search-challenge.html">Intel
OptaNNE for pmem</a>,
<a href="https://arxiv.org/html/2401.11324v2">BANG for GPUs</a>].
</p>
<p>
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 <a href="https://learn.microsoft.com/en-us/azure/cosmos-db/nosql/vector-search">CosmosDB
NoSQL</a>.
</p>
<p>
Along the way, we realized that there were precious few realistic datasets and benchmarks.
So we created and curated new datasets via <a
href="http://big-ann-benchmarks.com/">big-ann-benchmarks</a> for the research community.
We organized two competitions based on these datasets at
<a href="https://big-ann-benchmarks.com/neurips21.html">NeurIPS'21</a> and
<a href="https://github.com/harsha-simhadri/big-ann-benchmarks/tree/main/neurips23">NeurIPS'23</a>.
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.
</p>
<p>
Here is a short <a href="pubs/ANNS-talk-Sep22.pptx">overview</a> on DiskANN and a recording from <a
href="https://www.ideal.northwestern.edu/events/theory-in-practice-workshop/">Northwestern IDEAL
workshop</a>.
</p>
<p>
<strong>Publications</strong>
<UL>
<LI><a href="https://arxiv.org/abs/2409.17424">
Results of the Big ANN: NeurIPS'23 competition</a><BR>
(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) </LI>
<LI><a href="https://dl.acm.org/doi/abs/10.1145/3627535.3638475">
ParlayANN: Scalable and Deterministic Parallel Graph-Based Approximate Nearest Neighbor
Search Algorithms</a><BR>
(with Magdalen Dobson, Zheqi Shen, Guy E. Blelloch, Laxman Dhulipala, Yan Gu, Yihan Sun) </LI>
<LI><a href="pubs/Filtered-DiskANN23.pdf">
Filtered-DiskANN: Graph Algorithms for Approximate Nearest Neighbor Search with
Filters</a><BR>
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) </LI>
<LI><a href="https://arxiv.org/abs/2205.03763">
Results of the NeurIPS'21 Challenge on Billion-Scale Approximate Nearest Neighbor
Search</a><BR>
(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) </LI>
<LI><a href="https://arxiv.org/abs/2105.09613">
FreshDiskANN: A Fast and Accurate Graph-Based ANN Index for Streaming Similarity
Search</a><BR>
(with Aditi Singh, Suhas Jayaram Subramanya and Ravishankar Krishnaswamy) </LI>
<LI><a href="pubs/RNNPool20.pdf">
RNNPool: Efficient Non-linear Pooling for RAM Constrained Inference</a> (<a
href="https://github.com/Microsoft/EdgeML">code</a>)<BR>
NeurIPS'20 (with Oindrila Saha, Aditya Kusupati, Manik Varma and Prateek Jain) </LI>
<LI><a href="pubs/DROCC20.pdf">
DROCC: Deep Robust One-Class Classification</a> (<a
href="https://github.com/Microsoft/EdgeML">code</a>)<BR>
ICML'20 (with Sachin Goyal, Aditi Raghunathan, Moksh Jain and Prateek Jain) </LI>
<LI><a href="pubs/DiskANN19.pdf">
DiskANN: Fast Accurate Billion-point Nearest Neighbor Search on a Single Node</a> (<a
href="https://github.com/Microsoft/DiskANN">code</a>)<BR>
NeurIPS'19 (with Suhas Jayaram Subramanya, Devvrit, Rohan Kadekodi and Ravishankar Krishnawamy)
</LI>
<LI><a href="pubs/SRNN19.pdf">
Shallow RNN: Accurate Time-series Classification on Resource Constrained Devices </a><BR>
NeurIPS'19 (Don Dennis, Durmus Alp, Emre Acar, Vikram Mandikal, Vinu Sankar Sadasivan, Venkatesh
Saligrama and Prateek Jain) </LI>
<LI><a
href="https://www.microsoft.com/en-us/research/publication/gesturepod-programmable-gesture-recognition-augmenting-assistive-devices/">
GesturePod: Programmable Gesture Recognition for Augmenting Assistive Devices</a>
(<a
href="https://github.com/Microsoft/EdgeML/tree/master/Applications/GesturePod/onMKR1000">code</a>)
<BR>
ACM UIST'19 (with Shishir Patil, Don Kurian Dennis, Chirag Pabbaraju, Rajanikant Deshmukh, Manik
Varma, Prateek Jain)
</LI>
<LI><a href="pubs/acl19.pdf">
Word2Sense : Sparse Interpretable Word Embeddings</a><BR>
ACL'19 (with Abhishek Panigrahi, Chiranjib Bhattacharyya) </LI>
<LI><a href="pubs/nsdi19_final.pdf">
BLAS-on-flash : An Efficient Alternative for Large Scale ML Training and Inference?</a>
(<a href=https://github.com/Microsoft/Blas-on-flash>code</a>)<BR>
NSDI'19 (with Suhas Jayaram Subramanya, Srajan Garg, Anil Kag, Venkatesh Balasubramanian) </LI>
<LI><a href="pubs/emi-rnn-nips18.pdf">Multiple Instance Learning for Efficient Sequential Data
Classification on Resource-Constrained Devices</a>
(<a href="https://github.com/Microsoft/EdgeML/tree/master/tf/examples/EMI-RNN">code</a>)<BR>
NeurIPS'18 (with Don Kurian Dennis, Chirag Pabbaraju, Prateek Jain) </LI>
<LI><a href="pubs/hipc17.pdf">Provably Efficient Scheduling of Dynamically Allocating Programs on
Parallel Cache Hierarchies</a><br>
HiPC '17 (with Guy Blelloch, Phillip Gibbons)</LI>
<LI><a href="pubs/protonn.pdf">ProtoNN: Compressed and Accurate kNN for Resource-scarce Devices</a>
(<a href="https://github.com/Microsoft/EdgeML/tree/master/cpp">code</a>)</LI>
ICML '17
(with Chirag Gupta, Arun Sai Suggala, Ankit Goyal,
Bhargavi Paranjape, Ashish Kumar, Saurabh Goyal, Raghavendra Udupa, Manik Varma, Prateek Jain) </LI>
<LI> <a href="http://arxiv.org/abs/1602.04552"> Extending the Nested Parallel Model to the Nested
Dataflow Model with Provably Efficient Schedulers </a> <BR>
ACM SPAA'16 (with David Dinh and Yuan Tang) </LI>
<LI> <a href="pubs/EECS-2015-163.pdf">Write-Avoiding Algorithms</a>
(<a href="pubs/ASPIRE-2015-summer-poster.pdf">poster</a>)
(<a href="pubs/wa-ipdps16.pdf">conference version</a>)<br>
IPDPS '16
(with Erin Carson, James Demmel, Laura Grigori, Nicholas Knight,
Penporn Koanantakool and Oded Schwartz) </LI>
<LI> <a href="pubs/topc16.pdf">Experimental Analysis of Space-Bounded Schedulers</a>
(<a href="pubs/spaa14-SBFGK.pdf">conference version</a>)
(<a href="https://github.com/harsha-simhadri/sbsched">code</a>) <br>
ACM SPAA '14 (with Guy E. Blelloch, Jeremy T. Fineman, Phillip B. Gibbons and Aapo Kyrola) <BR>
Invited to the ACM Transaction on Parallel Computing best papers issue, 2016, 3(1). </LI>
<LI> <a href="pubs/mspc13-BFGS.pdf">Program-Centric Cost Models for Locality</a> <br>
ACM MSPC'13 workshop (with Guy E. Blelloch, Jeremy T. Fineman and Phillip B. Gibbons) </LI>
<LI> <a href="pubs/spaa12-SBFGKST.pdf">Brief announcement: the problem based benchmark suite</a><br>
ACM SPAA '12 (with Julian Shun, Guy E. Blelloch, Jeremy T. Fineman, Phillip B. Gibbons, Aapo
Kyrola, and Kanat Tangwongsan) </LI>
<LI> <a href="pubs/spaa12-setcover.pdf"> Parallel and I/O efficient set covering algorithms</a><br>
ACM SPAA '12 (with Guy E. Blelloch and Kanat Tangwongsan) </LI>
<LI> <a href="pubs/spaa11.pdf">Scheduling Irregular Parallel Computations on Hierarchical Caches</a>
(<a href="pubs/CMU-CS-10-154-BFGS.pdf">Tech Report</a>) <br>
ACM SPAA '11 (with Guy E. Blelloch, Jeremy T. Fineman and Phillip B. Gibbons) <BR>
Tech Report: CMU-CS-10-154 </LI>
<LI> <a href="pubs/CMU-CS-09-134.pdf">Low Depth Cache Oblivious Algorithms</a>
(<a href="pubs/spaa10-BGS.pdf">conference version</a>)<br>
Tech Report: CMU-CS-09-134 (with Guy E. Blelloch and Phillip B. Gibbons) <br>
ACM SPAA '10 </LI>
<LI> <a href="pubs/spaa08-BGH.pdf">Combinable Memory-Block Transactions</a><br>
ACM SPAA '08 (with Guy E. Blelloch and Phillip B. Gibbons) </LI>
<LI> <a href="pubs/tcc07-FFGH.pdf"> Towards optimal and efficient perfectly secure message
transmission</a><br>
Theory of Cryptography Conference 2007 (with Mattias Fitzi, Mathew Franklin and Juan Garay)
</LI>
</UL>
</p>
<p>
<strong>Thesis</strong><BR>
<a href="pubs/thesis.pdf">Program-Centric Cost Models for Locality and Parallelism</a> <br>
</p>
<!--
<p>
<strong>Preprints </strong>
<UL>
<LI> <a href="http://arxiv.org/abs/1512.02737"> Using Symmetry to Schedule Matrix Multiplication</a><BR>
</UL>
</p>
-->
<p>
<strong>Students I have worked with</strong><BR>
Grace Dinh,
<a href="https://aigen.github.io/">Chirag Gupta</a>,
<a href="https://www.cse.iitb.ac.in/~garg/">Srajan Garg</a>,
<a href="https://dkdennis.xyz/">Don Dennis<a>,
<a href="https://shishirpatil.github.io/">Shishir Patil</a>,
<a href="https://suhasjs.github.io/">Suhas Jayaram Subramanya</a>,
<a href="https://abhishekpanigrahi1996.github.io/">Abhishek Panigrahi</a>,
Saching Goyal, Moksh Jain, Oindrila Saha, Aditi Singh
<p>
<strong>Teaching Assistant</strong>
<UL>
<LI> <a href="http://www.cs.cmu.edu/afs/cs/academic/class/15750-s11/www/">
15-750</a>: Graduate Algorithms (Spring 2011)
<LI> <a href="http://www.cs.cmu.edu/afs/cs/academic/class/15499-s09/www/">
15-499</a>: Parallel Algorithms (Spring 2009)
</UL>
</p>
<p>
<strong>Earlier</strong><br>
2013-2016: Postdoctoral Fellow, CS Department, Lawrence Berkeley National Lab. <BR>
2007-2013: Ph.D., CS Department, Carnegie Mellon University, Advisor: <a
href="http://www.cs.cmu.edu/~guyb/">Guy Blelloch</a> <BR>
2003-2007: B.Tech, IIT Madras, Major: CS, Minor: Physics.
</p>
</td>
</tr>
</table>
<hr width="90%" size="1" color="grey">
<script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
try {
_uacct = "UA-7201574-1";
urchinTracker();
} catch (err) { }</script>
</body>
</html>