Будьте готовы к 12-ядерным процессорам!


Новые процессоры AMD Opteron 6100 имеют двенадцать ядер на процессор и до четырех процессоров на машину. Что ваше приложение будет делать с 48 ядрами?

Когда-то многопоточные программы предназначались для умных программистов или, по крайней мере, для программистов, которые думали, что они умны, но, как и бывает в подобных случаях, их программы обычно работали не так, как они ожидали …

Параллельное программирование – сложная задача, но с момента появления многоядерных процессоров каждый программист столкнулся с возрастающим давлением, требующим написания многопоточных программ. Частично это связано с изначальной причиной того, что «умные» программисты использовали потоки, чтобы сделать свои пользовательские интерфейсы более отзывчивыми. Шаблон простого фонового рабочего потока был даже доступен как часть платформы .NET и подхвачен программистами Visual Basic. Действительно, многопоточность практически необходима для приложений, использующих замену форм Windows, то есть WPF, поскольку она не поощряет использование совместной многозадачности, как это типично для команды doevents.

Однако по-настоящему большое давление в пользу перехода на многопоточность связано с растущей доступностью многоядерных процессоров. Двухъядерный процессор может фактически запускать приложение, использующее два потока, правильно синхронизированное и реализованное, конечно, быстрее, чем его однопоточная версия. Если двухъядерные процессоры теоретически обещали удвоить скорость кода, то как мы можем противостоять соблазну новой линейки AMD Opteron 6100 с количеством ядер от восьми до двенадцати на процессор. На данный момент это превосходит последний Intel Xeon 5600 с его шестью ядрами, но история показывает, что разрыв будет временным.

Новый процессор AMD также делает четырехпроцессорные (4P) машины потенциально такими же дешевыми, как двухпроцессорные (2P) машины. 6100 Opterons будут работать с машинами 1P, 2P или 4P без надбавки к цене. Итак, в принципе, вы можете начать думать о запуске вашего приложения на машинах с 12–48 доступными ядрами. До недавнего времени только специалисты в области параллельной обработки имели возможность писать программы для массивов из 48 процессоров – теперь это должны делать все мы.

Ясно одно – если мы собираемся использовать преимущества такого большого количества процессоров, нам понадобятся инструменты, которые намного проще в использовании, чем библиотеки потоковой передачи, такие как Intel’s Threaded Building Blocks (TFF). В настоящее время стоит обратить внимание на такие технологии, как Intel Parallel Studio и Microsoft Task Parallel Library (часть .NET 4.0).

Суть в том, нравится вам это или нет, но теперь мы все параллельные программисты.


Добавить комментарий