Программирование на JAVA

Навигация

Технология Hyper-Threading от Intel

Производительности всегда мало

0 1

Hyper-Threading

2 3

Углубляемся в технологию

4 5

Максимум эффективности от Hyper-Threading

6 7

Архитектура IA-64

8 9

Архитектура Е2К

10 11 12 13 14 15

Большие компьютерные системы

Виды параллельной обработки

16 17 18 19 20 21 22

Матричная обработка данных

23 24 25 26

Архитектура мультипроцессорных систем общего назначения

27 28 29

Коммуникационные сети

30 31 32 33 34 35 36 37 38 39 40 41 42 43

Организация памяти в мультипроцессорных системах

44 45 46

Программный параллелизм и общие переменные

47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62

Мультикомпьютерные системы

63 64 65

Общая память и передача сообщений

66 67 68 69 70 71 72 73 74

Производительность мультипроцессорных систем

75 76 77 78 79 80 81 82

Использование технологии параллельного программирования MPI-2

Введение

83 84 85

Кластерные системы и стандарт параллельного программирования MPI

86 87 88 89 90 91 92 93 94 95 96 97 98 99

Математические проблемы параллельных вычислений

100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122

Реклама :




Кроме того, предположим, что наш процессор может выполнять любую операцию за один такт и может распределять операции по всем трем устройствам одновременно. Давайте представим, что к этому процессору на выполнение отправляется поток из следующих инструкций:

1+1 10+1 Сохранить предыдущий результат

Рисунок 9.6.3 иллюстрирует уровень загруженности исполнительных устройств (белым цветом обозначается незадействованное устройство, ярко-зеленым (серым) – работающее устройство):

ALU

FPU

Load/

Store

1

2

3

Clock Cycle

Рис. 9.6.4.

Итак, вы видите, что в каждый такт используется только 33% всех исполнительных устройств. В этот раз FPU остается вообще незадействованным. В соответствии с данными Intel, большинство программ для IA-32 x86 используют не более 35% исполнительных устройств процессора Pentium 4.

Представим себе ещё один поток, отправим его на выполнение процессору. На этот раз он будет состоять из операций загрузки данных, сложения и сохранения данных, зеленый (серый) цвет. Они будут выполняться в следующем порядке:

ALU

FPU

Load/

Store

1

2

3

Clock Cycle

Рис. 9.6.5.

И снова загруженность исполнительных устройств составляет лишь на 33%.

Хорошим выходом из данной ситуации будет параллелизм на уровне инструкций (Instruction Level Parallelism - ILP). В этом случае одновременно выполняются сразу нескольких инструкций, поскольку процессор способен заполнять сразу несколько параллельных исполнительных устройств. К сожалению, большинство x86 программ не приспособлены к ILP в должной степени. Поэтому приходится изыскивать другие способы увеличения производительности. Так, например, если бы в системе использовалось сразу два процессора, то можно было бы одновременно выполнять сразу два потока. Такое решение называется параллелизмом на уровне потоков (thread-level parallelism, TLP). К слову сказать, такое решение достаточно дорогое.

Какие же ещё существуют способы увеличения исполнительной мощи современных процессоров архитектуры x86?


<< назад вперед >>