По мнению ведущих аналитических и софтверных компаний, в ближайшие пару лет бизнесу потребуется выделять значительные финансовые средства на глобальную переквалификацию программистов по всему миру. Дело здесь в растущей популярности многоядерных компьютерных процессоров, требующих принципиально иного подхода к разработке программ. "На сегодня в мире существует явная нехватка разработчиков, способных создать программный код для параллельных компьютерных вычислений, выполняемых различными ядрами одного процессора. Нужно уделить самое приоритетное внимание академическому образованию, которое является важнейшим поставщиков молодых кадров из среды разработчиков", - говорит Ден Рид, директор подразделения масштабируемых вычислений Microsoft.
Возможно, не всем ныне действующим программистам удастся освоить новые технологии и придется бросать программирование и уходить на завод или стройку.
Если в предыдущие десятилетия программирование для различных процессоров по большому счету отличалось незначительно, так как у процессора было одно ядро, которого работало все быстрее и быстрее, то теперь таких ядер стало 2, 4 и в ближайшей перспективе появятся системы с 6 и 8 ядрами на одном кристалле. Такой подход требует иных программных алгоритмов и иной логики выполнения программ.
Отметим, что данная программа не является делом отдаленного будущего. Так, компании Intel и AMD уже полностью пересматривают всю линейку выпускаемых низкоуровневых компиляторов, а корпорация Microsoft намерена коренным образом переработать ядро Windows для того, чтобы оно поддерживало многопоточное ветвление выполняемого кода.
"Условно говоря, разные подходы можно сравнить с гоночной машиной и автобусом. Первая способна ехать очень быстро, но везет лишь одного человека, в то же время автобус едет куда медленнее, но он может везти десятки человек", - говорит Рид.
По словам аналитиков компании Forrester Research, на сегодня у процессоров почти не растут тактовые частоты, которые замерли на отметке в 2-3 ГГц, однако наращивается количество вычислительных ядер, поэтому необходимы программы, которые будут учитывать эту особенность и загружать мощности процессора по всем ядрам, не а по одному.
Вместе с тем, все специалисты говорят, что разработка кода для многоядерных процессоров - это более трудоемкий процесс, чем создание обычного "одномерного" кода. Однако этого усложнения не миновать, особенно в серверном софте, так как прогнозам аналитиков к 2009 году на рынке серверов появятся 8-ядерные процессоры, а далее прирост будет происходить еще более высокими темпами.
По словам Майка Лидена, технического директора компании TopCoder (создает продукты для разработчиков под маркой Borland), сегодня ситуация складывается таким образом, что мультипоточное программирование остается прерогативой мизерной прослойки среды разработчиков.
В Forrester говорят, что ведущие компании, такие как Intel, Microsoft, AMD и IBM уже начали работать над проблемой популяризации многоядреного программирования, но сегодня их усилия минимальны, а на принятие этой концепции в массах понадобятся не менее 5-6 лет. Майк Лиден говорит, что сама по себе концепция многопоточного программирования в мире разработчиков не нова. Первая статья по созданию нескольких потоков в рамках одного кода появилась в библиотеке MSDN еще в 1993 году, но с тех пор параллельные коды не нашли широкого применения в университетской среде и довольно ограниченно применялись в бизнесе.
Вместе с тем, многие говорят о появлении нового поколения программных платформ, например таких как RapidMind, которые анализируют обычный программный код, например на С++, и через абстрактный слой команд и нитей разбивают его множество потоков. Однако профессионалы называют такое решение чисто идеологическим и совсем не идеальным.