1.1 Многоядерные системы

В течение 30 лет одним из основных методов повышения быстродействия настольных компьютеров было увеличение тактовой частоты процессора, а для этого сделать основную ячейку — комплементарную пару транзисторов (технологический процесс) как можно более быстродействующей или как можно меньших размеров. Причем быстродействие ячейки тем выше, чем тоньше технологический процесс. Прошло 30 лет — и теперь тактовая частота процессоров в большинстве настольных компьютеров составляет от 1 до 4 ГГц. В 2005 году, когда стало ясно, что дальнейший быстрый рост тактовой частоты CPU проблематичен, производители CPU стали предлагать процессоры с двумя вычислительными ядрами вместо одного. На данном этапе, гонка за уменьшением размера ячейки всё еще продолжается. Но теперь ее целью стало разместить как можно большее количество ячеек на кристалле, для получения возможности усложнение структуры процессора (в том числе увеличение количества ядер и объема кэша) что позволяет увеличить производительность. Вторая причина движения — снижение потребляемой ключом и соответственно процессором мощности. Существенный рост тактовых частот остановился. В последующие годы производители стали выпускать CPU с тремя, четырьмя, шестью и восьмью ядрами. Произошла так называемая многоядерная революция.





ГодТактовая частота Модель



1978 4.77 MHz Intel 8086



1985 25 MHz Intel 80386



1989 50 MHz Intel 80486



1993 200 MHz Intel Pentium



1997 450 MHz Intel Pentium II



2000 1.1 GHz Intel Pentium III



2004 3.46 GHz Intel Pentium 4



2005 3.8 GHz Intel Pentium 4



Переход на многоядерные процессоры



2006 2.33 GHz Intel Core Duo T2700



2007 2.66 GHz Intel Core 2 Duo E6700



2007 3 GHz Intel Core 2 Duo E6800



2008 3.33 GHz Intel Core 2 Duo E8600



2009 3.06 GHz Intel Core i7 950



2011 3.33 GHz Intel Core i7 980 (6 Cores)




Таблица 1.1: Эволюция процессоров.

Максимальное ускорение, которое можно получить от распараллеливания программы на N процессоров(ядер), дается законом Амдала:

S = -----1-----
         P-
(1+ P )+ N

В этой формуле P – это часть времени выполнения программы, которая может быть распараллелена на N процессоров. Отсюда видно, что при увеличении числа процессоров N максимальное ускорение стремится к 1(1 - P). Что значит, если мы можем распараллелить 34 всей программы, то максимальное ускорение составит 4 раза. Именно поэтому важно использование хорошо распараллеливаемых алгоритмов и методов.