суббота, 26 мая 2007 г.

Лед тронулся…?

Производитель процессоров больше не может ждать, когда мы – программисты начнем разрабатывать параллельный софт, для того чтобы многоядерные процессоры стали по настаящему востребованными. Об этой тенденции говорил Эдвард Ли (университет Беркли) в своей статье «Проблемы с потоками»:

“Интересно, что сами производители процессоров ратуют за многопоточное программирование, стараясь всячески продвинуть его в программистские массы. Их Эдвард Лидействия обусловлены тем, что с их точки зрения многопоточное программирование позволит использовать параллелизм (многоядерность), который они собираются продавать.
Так, например, Intel проводит активную компанию по поддержке обучения студентов многопоточному программированию. Если эта компания будет иметь успех, то следующее поколение программистов будет ещё более рьяно использовать потоки, что приведет к ещё более удручающим последствиям.”

Замечу, что Intel уже достаточно давно обращает внимание на продвижение идей параллелизма (и инструментов их поддерживающих) в программистские массы. Однако, будучи участником одного из таких семинаров (СПб, окт.2006) я не заметил каких-либо действительно современных предложений от Intel по решению проблем параллельного ПО. Оговорюсь, что под «действительно современными предложениями» я имею в виду то, о чем кажется, говорят все вокруг - более выразительные средства управления параллелизмом. На семинаре же Intel говорил об использовании OpenMP, о программировании на уровне мониторов\блокировок и о поддержке многопоточного программирования в .NET. Поэтому эта новостная заметка на EETimes привлекла мое внимание:

Интервью с главой лаборатории Intel по разработке микропроцессоров в Хиллсборо (Оригон, США) – Шекхар Боркар (Shekhar Y. Borkar).
Шекхар Боркар
Сегодня с развитием многоядерных процессоров должность разработчика параллельного ПО становится самой востребованной в Intel’овских исследовательских лабораториях по разработке микропроцессоров. Команда, численностью 250 человек, постоянно занимается разработкой прототипов DSL-ей(domain-specific languages) для описания параллелизма, а также параллельных версий существующих языков и приложений.

«В прошлом программы все работали быстрее и быстрее с увеличением частоты процессора, однако сегодня все изменилось – у нас больше не получиться получить прирост производительности «за так», халява кончилась - говорит Шекхар Боркар - Разработка параллельного ПО и распространение идей параллелизма в индустрии - «вот основная цель моей исследовательской группы. Очевидно, что параллельность ПО будет «удваиваться» каждые два года (или что-то около этого) – согласно закону Мура». 200 из 250 разработчиков лаборатории Боркара занимаются проблемами параллельного программирования. «К примеру сейчас - говорит Боркар - мы занимаемся проблемой внедрения языковых конструкций, описывающих параллелизм по данным, в интерпретируемые языки, такие как Ruby».

Наиболее перспективной областью исследований, по мнению Боркара, являются DSL-и – небольшие специализированные языки, предназначенные для описания параллелизма в таких областях как компьютерная графика, сетевые приложения, разработка отладчиков и библиотек. К примеру, Intel сейчас занимается разработкой нового языка описания сетевых (TCP\IP) взаимодействий в «более параллельном» стиле.

Компания также ведет разработку прототипов приложений в таких областях как распознавание и рендеринг в реальном времени. Считается, что поиск параллельных решения этих прикладных задач наиболее прост (тривиален). «Все, что вы делаете при распознавании или рендеринге в играх, так это работаете с матрицами – но параллельная обработка матриц хорошо известна нам ещё со времен суперкомпьютеров» - говорит Боркар, проработавший несколько лет в суперкомпьютерном подразделении Intel, сегодня уже почившим в бозе.

В ходе нашей беседы Шекхар не раз говорил о том, что считает, что разработчики всех уровней (от архитектора ПО – до кодера) должны обратить своё внимание на проблемы параллелизма: «Вокруг наших программ колышутся обширные поля параллелизма, жаждущие начала хорошей жатвы. Мы сейчас во многом выступаем в качестве проповедников параллелизма для индустрии и университетов. Однако мы понимаем, что такие координальные изменения требуют времени – около года или двух».

Сегодня такие университеты как Беркли, Стэнфорд, MIT, Иллинойский университет хорошо понимают необходимость обучения своих студентов и бакалавров технологиям параллельной разработки. «Изменение индустрии ПО происходит уже сейчас» - считает Шекхар Боркар.

Источник – EETimes