![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| redwhite90 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 332 Регистрация: 14.7.2011 Репутация: нет Всего: нет |
подскажите пожалуйста как можно еще распараллелить?
вот код перемножения двух матриц. и вообще правильно ли я распараллелил?
Добавлено через 37 секунд правильно ли указал shared и private Добавлено через 4 минуты и 51 секунду первое знакомство с open mp просто |
|||
|
||||
| Silent |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 252 Регистрация: 3.10.2006 Репутация: нет Всего: 9 |
Синтаксически все верно, а вот логически - никакого прироста производительности не будет. Потому как ты распараллелил внутренний цикл, и у тебя параллельно считаются c[i][j]+=a[i][k] * b[k][j] - то бишь ты str*stlb раз входишь в параллельную секцию и выходишь из нее.
Надо параллелить сверху вниз:
Ну а если пойти чуть подальше, то еще лучше поменять два внутренних цикла местами (по j и k), тем самым изменишь паттерн доступа к памяти (из массива b данные станут выбираться последовательно).
Тут для оптимизации - целое раздолье =) |
||||
|
|||||
| redwhite90 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 332 Регистрация: 14.7.2011 Репутация: нет Всего: нет |
спасибо за ответ.
но тогда ведь из массива a данные перестанут выбираться последовательно, или я что-то не так понял |
|||
|
||||
| Silent |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 252 Регистрация: 3.10.2006 Репутация: нет Всего: 9 |
||||
|
||||
| redwhite90 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 332 Регистрация: 14.7.2011 Репутация: нет Всего: нет |
понял
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |