Исследовательский блог Intel недавно обсудил направление, которое разработчики должны учитывать в ближайшие годы.
Анвар Гулум из Intel описывает, как разработчики прислушивались к заявлениям Intel о том, что в будущем они все больше ориентируются на многоядерные процессоры. В настоящее время они предлагают разработчикам программировать для как можно большего числа ядер, даже если это больше ядер, чем есть в существующих продуктах.
В конечном итоге, совет, который я предложу, заключается в том, что разработчики должны начать думать о десятках, сотнях и тысячах ядер уже сейчас в своем конвейере разработки и развертывания алгоритмов. Это начинается на довольно ранней стадии разработки; обычно основная логика приложения должна подвергаться влиянию, поскольку она определяет поведение асимптотического параллелизма.
Многоядерная обработка является текущей тенденцией в современных процессорах. Каждое «ядро» действует независимо от других и, по сути, может считаться собственным индивидуальным процессором. Все выпускаемые Mac теперь имеют как минимум два ядра, в то время как Mac Pro высокого класса оснащен 8 ядрами на двух 4-ядерных процессорах. Грядущий процессор Intel Nehalem представит до 8 ядер на процессор. При объединении в двухпроцессорную конфигурацию мы можем увидеть Mac Pro с 16 ядрами в ближайшем будущем.
Хотя каждое ядро действует независимо от других, двухъядерный процессор не обязательно в два раза быстрее одноядерного из-за неэффективности при разделении задач. Признавая эту тенденцию к многоядерности, Apple объявила, что основная функция (Grand Central) следующей версии Mac OS X (Snow Leopard) будет специально сосредоточена на оптимизации для многоядерной обработки.