The Very Large Scale Computing Lab (VLSC) is trying to solve some of the critical software and hardware challenges of building large-scale services. These services may encompass tens of geo-distributed data centers, each of which can contain tens of thousands of servers. Compounded by challenges of scale and distribution, services also have very high availability and responsiveness requirements, and they are under continual development and evolution.
Currently, VLSC has focused on three research directions:
- Reconfigurable computing. The imminent end of Moore’s Law has stimulated considerable interest in alternative computing models, which use the abundant transistors to build something other than a conventional, general-purpose processor. At Microsoft, I helped start the Catapult project, which made an FPGA accelerator for the Bing search engine. At EPFL, we are looking at using FPGAs as computing accelerators.
- Genomic computing. Next-generation genome sequencing technology has reached a point at which it is becoming cost-effective to sequence all patients. Biobanks and researchers face an oncoming deluge of genomic data, whose processing requires new and scalable bioinformatics architectures and systems. Processing raw genetic sequence data is computationally expensive, and datasets are large. Current software systems can require many hours to process a single genome and generally run only on a single computer. Our research has found ways to apply massively parallel clusters to these challenges.
- Non-volatile memory. New non-volatile memory (NVM) technologies allow direct, durable data storage in an application’s heap. Durable random-access memory can simplify the construction of reliable applications that do not lose data at system shutdown or power failure. Taking advantage of non-volatility is not as simple as just keeping data in NVM. Without programming support, it is challenging to write correct, efficient code that permits recovery after a power failure. The restart mechanism must find a consistent state in durable storage, which may have last written at an arbitrary point in a program’s execution.
My research career started in programming languages and compilers, so, to me, all problems are programming problems. Over my career, I’ve collaborated closely with computer architects, software engineers, and OS researchers. My research is cross-disciplinary and considers hardware and software as complements that should be studied and advanced together.