594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
|
||||||
1 | ||||||
Распараллелить скалярное произведение векторов08.11.2012, 23:22. Показов 12176. Ответов 4
Задание - распараллелить скалярное произведение векторов.
вектора vec1 и vec2 заполняются не рандомом для однозначности результата. в общем все работает,но препод впихнул симуляцию задержки 1го потока (в нашем случае который выполняет 10ую итерацию), и все накрывается. не знаю как это исправить (место обозначено (!!!)). пробывал поставить барьеры - не работает. как решить проблему? нельзя убирать слип.
1
|
|
08.11.2012, 23:22 | |
Ответы с готовыми решениями:
4
Скалярное произведение векторов Скалярное произведение векторов
|
![]() 2380 / 1664 / 279
Регистрация: 29.05.2011
Сообщений: 3,399
|
||||||
11.11.2012, 02:20 | 2 | |||||
А редукцию использовать тоже нельзя?
1
|
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
|
|
18.11.2012, 00:39 [ТС] | 3 |
grizlik78, да, я думаю. конкретно в OpenMP с редукцией не работал, и вообще слабо разбираюсь в сабже... мне интересно как это решает проблему торможения потока. ...
0
|
![]() 2380 / 1664 / 279
Регистрация: 29.05.2011
Сообщений: 3,399
|
|
18.11.2012, 00:59 | 4 |
Строго говоря, даже если убрать задержку в исходном варианте, то и тогда программа может выдавать неправильный результат. И в моём случае она выдаёт то 40, то 38, то 36... Это происходит из-за конкурирующего изменения одной переменной. Один из потоков может при вычислении tmp прочитать значение res раньше другого потока, а изменить значение res позже, затирая тем самым результат второго потока. А при наличии задержки это происходит практически гарантировано. Редукция — стандартный механизм для таких случаев, когда каждый поток вычисляет независимо свою частичную сумму, а объединением частичных сумм в полную занимается уже код OpenMP.
1
|
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
|
|
22.11.2012, 21:39 [ТС] | 5 |
grizlik78, Спасибо !
0
|
22.11.2012, 21:39 | |
22.11.2012, 21:39 | |
Помогаю со студенческими работами здесь
5
[Геометрия]Скалярное произведение векторов
Найти скалярное и векторное произведение векторов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |