Программирование на 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

Реклама :




Чтобы добиться настоящего параллелизма, можно так модифицировать програм­му, как показано на рис. 10.17. Вместо использования в цикле for общей переменной dot_product мы задействовали локальную переменную local_dot_ product, в которой накапливается частичное скалярное произведение, вычисляемое каждым из пото­ков. Вход в критическую секцию, где каждый поток обновляет общую переменную dot_product, производится только по окончании цикла. После такой модификации циклы for обоих потоков действительно могут выполняться параллельно.

Приведенный пример легко распространить на большее количество процессо­ров. С этой целью достаточно создать больше потоков. В цикле for на основе зна­чения переменной id будет определяться диапазон элементов, используемых для вычислений каждым потоком.

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


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