Программирование на 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.16 новый поток создается посредством инструкции create_thread. Вызвав процедуру do_dot, этот поток завершает свою работу. Опе­рационная система присваивает новому потоку идентификационный номер 1. Да­лее первый процессор выполняет инструкцию do_dot (a,b) как поток 0. Инструк­ция id := mypid()  присваивает переменной id идентификационный номер потока. С помощью переменной id в цикле for мы определяем, какая половина векторов а и b должна обрабатываться данным потоком.

Критической секцией процедуры do_dot является код, изменяющий значение переменной dot_product. Каждый поток должен получать монопольный доступ к указанной переменной. Для этого используется описанный в разделе 10.6.1 ме­ханизм блокировок. Поток 0 не идет далее инструкции-барьера barrier в процеду­ре do_dot, пока другой поток не достигнет той же синхронизационной точки. Это необходимо для того, чтобы оба потока завершили свои вычисления до того, как поток 0 сможет напечатать конечный результат. Инструкцию-барьер можно реа­лизовать двумя способами. Простейший подход заключается в использовании общей переменной, такой как done (рис


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