Please consider a donation to the Higher Intellect project. See https://preterhuman.net/donate.php or the Donate to Higher Intellect page for more info. |
Difference between revisions of "Microsoft Research"
Line 36: | Line 36: | ||
==Systems and Architecture== | ==Systems and Architecture== | ||
===Database=== | ===Database=== | ||
+ | [[File:Db.gif|right]] | ||
The charter of the Microsoft Research Database Group is to increase the usefulness of database systems to both business users and individuals by creating, extending, and applying database technology. To that end, we consult with the database product groups at Microsoft and have initiated two exploratory research projects. We are located in Redmond, Washington, which is in the greater Seattle area. | The charter of the Microsoft Research Database Group is to increase the usefulness of database systems to both business users and individuals by creating, extending, and applying database technology. To that end, we consult with the database product groups at Microsoft and have initiated two exploratory research projects. We are located in Redmond, Washington, which is in the greater Seattle area. | ||
+ | |||
+ | ====Projects==== | ||
+ | * '''AutoAdmin:''' The long term goal of AutoAdmin is to make database systems self-administering and self-tuning in all their dimensions. Initially, the project is focusing on the physical database design problem (index and materialized view selection). Surajit Chaudhuri, Paul Larson, and Vivek Narasayya collaborate on the AutoAdmin project. | ||
+ | * '''Phoenix:''' The long term goal is to improve application availability and error handling robustness. Initially, the project is focusing on exploiting database recovery techniques for enabling applications to survive system crashes. David Lomet and Roger Barga work on the Phoenix project. | ||
===Graphics=== | ===Graphics=== | ||
+ | [[File:Graphics.gif|right]] | ||
Our research addresses a wide range of topics in 3D graphics and animation. These range from low level graphics technology concerning how to quickly and accurately draw primitives such as triangles to the screen, to high level graphics issues such as how to create and control human-like figures in a virtual 3D setting. We believe that interactive 3D graphics and animation will be an important component of future user interfaces directed towards business, consumer and entertainment applications. Our projects include advanced rendering approaches, image based rendering, multi-resolution representations and modeling techniques, geometry compression, and human figure animation. We are also working to define declarative methods of specifying complex, interactive temporal behavior, as well as defining an overall systems architecture to support high performance interactive graphics. | Our research addresses a wide range of topics in 3D graphics and animation. These range from low level graphics technology concerning how to quickly and accurately draw primitives such as triangles to the screen, to high level graphics issues such as how to create and control human-like figures in a virtual 3D setting. We believe that interactive 3D graphics and animation will be an important component of future user interfaces directed towards business, consumer and entertainment applications. Our projects include advanced rendering approaches, image based rendering, multi-resolution representations and modeling techniques, geometry compression, and human figure animation. We are also working to define declarative methods of specifying complex, interactive temporal behavior, as well as defining an overall systems architecture to support high performance interactive graphics. | ||
===Scalable Servers=== | ===Scalable Servers=== | ||
+ | [[File:Scalable.gif|right]] | ||
Billions of clients will need millions of servers. Most servers will be tiny, but some will be huge. Ideally, the whole spectrum can be built from modular components. We are exploring techniques to build large servers as arrays of commodity processors, disks, and interconnects - Scalable Networks and Platforms (SNAP) . The resulting computer cluster should be as easy to program, manage, and use as a single system. In addition, by using spare modules and redundant storage, the cluster should mask component failures and so provide highly-available services. We are working with the NTclusters group to help define the requirements for clusters. We are working with the SQLserver database team to add fault-tolerance, scaleability, and parallelism to SQLserver. And, we are working with the Distributed Transaction Coordinator to help add ACID transactions to NT and Microsoft's Component Object Model (COM) infrastructure. In each case, we are building prototypes to demonstrate our ideas. | Billions of clients will need millions of servers. Most servers will be tiny, but some will be huge. Ideally, the whole spectrum can be built from modular components. We are exploring techniques to build large servers as arrays of commodity processors, disks, and interconnects - Scalable Networks and Platforms (SNAP) . The resulting computer cluster should be as easy to program, manage, and use as a single system. In addition, by using spare modules and redundant storage, the cluster should mask component failures and so provide highly-available services. We are working with the NTclusters group to help define the requirements for clusters. We are working with the SQLserver database team to add fault-tolerance, scaleability, and parallelism to SQLserver. And, we are working with the Distributed Transaction Coordinator to help add ACID transactions to NT and Microsoft's Component Object Model (COM) infrastructure. In each case, we are building prototypes to demonstrate our ideas. | ||
− | We believe you can build supercomputers as a cluster of commodity hardware and software modules. A cluster is a collection of independent computers that is as easy to use as a single computer. Managers see it as a single system, programmers see it as a single system, and users see it as a single system. The software spreads data and computation among the nodes of the cluster. When a node fails, other nodes provide the services and data formerly provided by the missing node. When a node is added or repaired, the cluster software migrates some data and computation to that node. | + | We believe you can build supercomputers as a cluster of commodity hardware and software modules. A cluster is a collection of independent computers that is as easy to use as a single computer. Managers see it as a single system, programmers see it as a single system, and users see it as a single system. The software spreads data and computation among the nodes of the cluster. When a node fails, other nodes provide the services and data formerly provided by the missing node. When a node is added or repaired, the cluster software migrates some data and computation to that node. |
+ | |||
+ | ===Systems and Networking=== | ||
+ | [[File:Sn.gif|right]] | ||
+ | The Systems and Networking Research Group in Redmond explores advanced and speculative systems and networks and systems-related problems. We build real systems and networks to test and evaluate the ideas we explore. | ||
+ | |||
+ | Systems and Networking research is also conducted both at our Cambridge, U.K. and Bay Area research labs. | ||
+ | |||
+ | ====Projects==== | ||
+ | * '''Millennium:''' We are building a new self-organizing, self-tuning distributed system. A short position paper describes our long-term goals for the project. | ||
+ | * '''Consumer Real-Time:''' This project's goal is to make it possible to develop independent real-time applications independently, while enabling their predictable concurrent execution, both with each other and with non-real-time applications. This is related to the earlier Rialto work, but using Windows NT instead of the Microsoft Interactive TV kernel. | ||
+ | * '''IPv6:''' We are building a prototype implementation of IP version 6 (the next generation Internet Protocol). Please see our web page. | ||
+ | * '''MCoM:''' We are investigating issues in providing location-transparent and location-aware tether-less access to distributed information via heterogeneous computing and wireless communication devices. Our goal is to create a software architecture with an accompanying set of algorithms that allows the system to adapt to the radical differences in the communication substrate. The adaptation will be transparent to the user so that applications are not only unaware of the device's mobility but can also benefit from it. As part of this project we are building hardware that enables HPCs and PDAs to form both managed and ad-hoc multimedia wireless networks while dealing with continuous and on-off wireless connectivity. | ||
+ | * '''MMLite''' is an object architecture that stresses adaptability, minimalism, and reusability. Components that are typically designed-into an operating system, such as virtual memory management and interprocess communication, will be loadable in this system. We explore object mutation for interposition, dynamic software upgrades, runtime code generation, code specialization, and object mobility. An initial version is used in some DirectX accelerator boards. | ||
+ | * '''Gigabit Networking:''' We are building systems support for gigabit networking. One contribution was helping to author the specification for the Virtual Interface Architecture. | ||
=See Also= | =See Also= |
Revision as of 00:20, 4 October 2020
Microsoft Research (MSR) is dedicated to basic and applied research in computer science. We develop new technologies for improving the way computers interact with people. We have outstanding researchers in a wide variety of disciplines, both from leading academic institutions and industrial research labs. We are committed to supporting and participating in the worldwide research community, and we collaborate with many universities worldwide.
We founded Microsoft Research in 1991 because we felt that the growth of the PC software industry and Microsoft in particular created a unique opportunity to do basic and applied research in computer science which could make a positive difference in people's lives and set new directions for the field. We started small, with a handful of scientists working primarily in natural language technology and programming environments. MSR has since grown to include over a dozen research groups and nearly 200 researchers in areas as diverse as speech recognition, decision theory and 3D graphics and animation. Our impact on Microsoft's products has already been felt. If you use Microsoft Windows 95 and Microsoft Office 97 you have likely taken advantage of features which have been enhanced by technology developed within Microsoft Research.
Our researchers actively serve on conference program committees, editorial boards and advisory panels. They publish at conferences, in journals, and write for magazines that serve the research community. We believe that such professional service is an important component of our work.
Research Areas
Advanced Interactivity and Intelligence
Decision Theory and Adaptive Systems
The Decision Theory & Adaptive Systems Group (DTAS) is investigating the use of probability and utility theory to enhance computer applications and platforms. Explicit consideration of user preferences and key uncertainties associated with particular tasks and contexts is a central element of DTAS projects. The group has a special focus on extending the flexibility and responsiveness of operating systems and user interfaces. Areas of attention include automated reasoning and inference under uncertainty, learning models from data, data mining and knowledge discovery in databases, information retrieval, automated diagnosis and decision support, and automated learning for custom-tailoring software to user work patterns and preferences.
Projects
- Information access and management. We are pursuing principles and applications of technologies that allow users to access, filter, and manage information. As part of our early work in this area, DTAS developed the algorithms and assessment methods used in the Answer Wizard, a free-text help facility unveiled in Office '95 products.
- Intelligent user interfaces. DTAS is working on methods, languages, and architectures for integrating multiple sources of information to enhance user interfaces. DTAS' Lumiere Project has focused on the construction and integration of Bayesian models of a user's needs for assistance. Lumiere research led to the Office Assistant, a Bayesian help system in Office '97. Ongoing work on intelligent user interfaces includes integrating consideration of acoustic and visual events into analyses of user goals.
- Diagnostics and troubleshooting. We have developed and applied diagnostic reasoning methods to a range of problems, extending from software debugging to troubleshooting software and hardware systems. In our collaboration with Microsoft Technical Support, we have developed decision-theoretic troubleshooters that are available via the worldwide web. Visit Microsoft Technical Support Troubleshooters to access several decision-theoretic troubleshooters that have been deployed in an operational setting. Another diagnostics project, named Aladdin, has explored the application of decision-theoretic case-based reasoning to troubleshooting and customer support, the result of a collaboration between DTAS and Microsoft Technical Support.
- Learning models from data. Several research and development efforts focus on the development of methods for building predictive models from data. Some of this work builds on foundations of Bayesian statistics.
- Data mining and knowledge discovery in databases. Drawing upon related work in learning, we are investigating methods, tools, and applications of data mining and discovery in databases (KDD) for discovering useful relationships in large datasets.
- Optimization of computational processes. We are exploring the use of flexible computational methods and decision theory to identify bottlenecks, and to optimize the functionality of operating systems and applications.
Natural Language Processing
Natural Language Processing should make it possible for people to use computers in much the same way that they would use a human assistant to get their work done. This is not easy for the machine. It's ironic that natural language, the symbol system that is easiest for humans to learn and use, is hardest for a computer to master. Long after machines have proven capable of inverting large matrices with speed and grace, they still fail to master the basics of our spoken and written languages.
The goal of the NLP group is to design and build a computer system that will analyze, understand, and generate natural languages. Our system takes input text, and moves through various stages of linguistic processing, from lexical/morphological analysis through syntax, semantics, and eventually pragmatics and discourse. Our approach makes heavy use of the information available in online dictionaries and other written works, from which we are able to extract a rich knowledge base, which can then be used to bootstrap into increasingly more advanced stages of machine understanding. The programming system, and the underlying linguistic principles, apply to all natural languages. We are empirically oriented, and do not follow any of the currently received linguistic theories in detail. However, we are happy to use good linguistic ideas wherever they can be found.
Speech Technology
The Microsoft Speech Technology Group engages in research and development of spoken language technologies. We are interested in not only creating the state of the art spoken language components but also how these disparate components come together to form a unified, consistent integration in the multimodal computing environment. Below is a list of projects we are pursuing to help us reach our vision of a fully speech enabled multimodal conversational computer.
Projects
- (Whisper) Speech Recognition
- (Whistler) Speech Synthesis (Text-to-Speech)
- (LEAP) Spoken Language Understanding
- (Dr. Who) Multimodal Conversational User Interface
Systems and Architecture
Database
The charter of the Microsoft Research Database Group is to increase the usefulness of database systems to both business users and individuals by creating, extending, and applying database technology. To that end, we consult with the database product groups at Microsoft and have initiated two exploratory research projects. We are located in Redmond, Washington, which is in the greater Seattle area.
Projects
- AutoAdmin: The long term goal of AutoAdmin is to make database systems self-administering and self-tuning in all their dimensions. Initially, the project is focusing on the physical database design problem (index and materialized view selection). Surajit Chaudhuri, Paul Larson, and Vivek Narasayya collaborate on the AutoAdmin project.
- Phoenix: The long term goal is to improve application availability and error handling robustness. Initially, the project is focusing on exploiting database recovery techniques for enabling applications to survive system crashes. David Lomet and Roger Barga work on the Phoenix project.
Graphics
Our research addresses a wide range of topics in 3D graphics and animation. These range from low level graphics technology concerning how to quickly and accurately draw primitives such as triangles to the screen, to high level graphics issues such as how to create and control human-like figures in a virtual 3D setting. We believe that interactive 3D graphics and animation will be an important component of future user interfaces directed towards business, consumer and entertainment applications. Our projects include advanced rendering approaches, image based rendering, multi-resolution representations and modeling techniques, geometry compression, and human figure animation. We are also working to define declarative methods of specifying complex, interactive temporal behavior, as well as defining an overall systems architecture to support high performance interactive graphics.
Scalable Servers
Billions of clients will need millions of servers. Most servers will be tiny, but some will be huge. Ideally, the whole spectrum can be built from modular components. We are exploring techniques to build large servers as arrays of commodity processors, disks, and interconnects - Scalable Networks and Platforms (SNAP) . The resulting computer cluster should be as easy to program, manage, and use as a single system. In addition, by using spare modules and redundant storage, the cluster should mask component failures and so provide highly-available services. We are working with the NTclusters group to help define the requirements for clusters. We are working with the SQLserver database team to add fault-tolerance, scaleability, and parallelism to SQLserver. And, we are working with the Distributed Transaction Coordinator to help add ACID transactions to NT and Microsoft's Component Object Model (COM) infrastructure. In each case, we are building prototypes to demonstrate our ideas.
We believe you can build supercomputers as a cluster of commodity hardware and software modules. A cluster is a collection of independent computers that is as easy to use as a single computer. Managers see it as a single system, programmers see it as a single system, and users see it as a single system. The software spreads data and computation among the nodes of the cluster. When a node fails, other nodes provide the services and data formerly provided by the missing node. When a node is added or repaired, the cluster software migrates some data and computation to that node.
Systems and Networking
The Systems and Networking Research Group in Redmond explores advanced and speculative systems and networks and systems-related problems. We build real systems and networks to test and evaluate the ideas we explore.
Systems and Networking research is also conducted both at our Cambridge, U.K. and Bay Area research labs.
Projects
- Millennium: We are building a new self-organizing, self-tuning distributed system. A short position paper describes our long-term goals for the project.
- Consumer Real-Time: This project's goal is to make it possible to develop independent real-time applications independently, while enabling their predictable concurrent execution, both with each other and with non-real-time applications. This is related to the earlier Rialto work, but using Windows NT instead of the Microsoft Interactive TV kernel.
- IPv6: We are building a prototype implementation of IP version 6 (the next generation Internet Protocol). Please see our web page.
- MCoM: We are investigating issues in providing location-transparent and location-aware tether-less access to distributed information via heterogeneous computing and wireless communication devices. Our goal is to create a software architecture with an accompanying set of algorithms that allows the system to adapt to the radical differences in the communication substrate. The adaptation will be transparent to the user so that applications are not only unaware of the device's mobility but can also benefit from it. As part of this project we are building hardware that enables HPCs and PDAs to form both managed and ad-hoc multimedia wireless networks while dealing with continuous and on-off wireless connectivity.
- MMLite is an object architecture that stresses adaptability, minimalism, and reusability. Components that are typically designed-into an operating system, such as virtual memory management and interprocess communication, will be loadable in this system. We explore object mutation for interposition, dynamic software upgrades, runtime code generation, code specialization, and object mobility. An initial version is used in some DirectX accelerator boards.
- Gigabit Networking: We are building systems support for gigabit networking. One contribution was helping to author the specification for the Virtual Interface Architecture.