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

Реклама :




shared integer array a[l...N], b[l...N]

shared integer dot_product

shared lock dot_product_lock

shared barrier done

…..

read a[l...N] from vector_a

read b[l...N] from vector_b

dot_product :=0

create_thread (do_dot, a, b)

do_dot (a, b)

print dot_product

…..

do_dot (integer array x[l...N], integer array y[l...N])

private integer local_dot_product

private integer id

id := mypid()

local_dot_product := 0

for k :-(id*N/2) + 1 to (id+l)*N/2

local_dot_product := local_dot_product + x[k] * y[k]

end

lock (dot_product_lock)

dot_product :- dot_product + local_dot_product

unlock (dot_product_lock)       ,

barrier (done)

end

Рис. 10.17. Эффективная программа для вычисления скалярного произведения на двух процессорах в системе с общей памятью

Система с передачей сообщений

В случае распределенной памяти каждый процессор обращается к собственной памяти. Если выполнять нашу программу на двух процессорах в такой системе, векторы должны быть явно разделены на две части, каждая из которых будет хра­ниться в памяти одного процессора. Каждая копия программы будет иметь дос­туп только к своим данным. Архитектура для выполнения таких приложений на­зывается архитектурой с одной программой и несколькими потоками данных (Sin­gle Program, Multiple Data, SPMD)


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