Представители Microsoft в последнее время много говорили о необходимости определённых фундаментальных изменений в проектировании и разработке программного обеспечения, чтобы приспособится к увеличению количества ядер в клиентских системах.
В Microsoft Research существует несколько проектов, сосредоточенных на разных аспектах проблемах многоядерных систем. Самым новым, и по видимому, самым далеко идущим из них, является MS-ManiC. На странице сайта Microsoft Research проекту MS-ManiC (Memory Systems for Many Cores (Система памяти для множества ядер) дана следующая характеристика: «Проект сосредоточен на проектировании архитектуры масштабируемой системы памяти для будущих многоядерных процессоров. Система памяти - не единственное узкое место в производительности многопроцессорных систем, но её дизайн может привести к серьёзной энергетической неэффективности, непредсказуемости и дырам в безопасности. Наша цель – проектирование масштабируемой и сбалансированной системы памяти, использующей единый программно-аппаратный подход. Мы заинтересованы в проектировании высокопроизводительной, энергоэффективной и безопасной системы памяти».
Звучит амбициозно. Какую форму должна принять такая система памяти и когда она перейдёт из исследовательской стадии в стадию готового продукта? Об этом ни слова. Фактически на сайте MS-ManiC очень мало какой-либо информации, кроме ссылок на свежеопубликованный доклад под названием «Performance Attacks: Denial of Memory Service in Multi-Core Systems» (Атаки на производительность: Отказ в обслуживании памяти в многоядерных системах), который является результатом 16-го симпозиума USENIX Security Symposium, прошедшего в августе этого года. Доклад написан двумя исследователями Microsoft - Томасом Москиброда (Thomas Moscibroda), членом Microsoft Distributed Systems and Security Research Group, и Онуром Мутлу (Onur Mutlu), членом Systems and Networking Research Group.
Есть еще проект в Microsoft Research в сфере массового параллелизма и распределённых вычислений, за которым следят различные сетевые издания – Microsoft Dryad. Dryad – это непосредственный конкурент технологии MapReduce от Google. Согласно сайту, Dryad – это инфраструктура, которая позволит программисту использовать ресурсы компьютерного кластера или центра обработки и хранения данных для выполнения программ с параллельными вычислениями. Программист Dryad может использовать тысячи компьютеров, каждый из которых будет с несколькими ядрами или процессорами, при этом не имея никаких знаний о параллельном программировании. В настоящее время эта система развёртывается в оперативной промышленной системе, как часть одного из конвейеров Microsoft AdCenter по обработке данных».
К сожалению, на домашней странице проекта Dryad не так много информации, но есть одна занимательная архитектурная диаграмма, иллюстрирующая как Dryad вписывается в кластерную архитектуру Windows. Также там есть немного новой информации о DryadLINQ, который «генерирует выкладки Dryad из LINQ Language-Integrated Query расширений в C#».
Вот интересно, как и когда MS-ManiC и Dryad перейдут из чисто исследовательских инициатив в коммерческие продукты?