170 похожих чатов

Всем сяп! Подскажите пж, не понимаю, что за бред. Есть функция

умножения матрицы (вектор векторов) на вектор, в котором при паралельном выполнении ловлю сегфолт. Если запускаю последовательно - все ок. В чем проблема? Выход из индексов не вижу

vector<double> matrix_vec_mul(vector<vector<double>> m, vector<double> b) {
vector<double> res;
res.reserve(b.size());

#pragma omp parallel for shared(b, m, res) default(none)
for (int i = 0; i < b.size(); ++i) {
double row_res = 0;
for (int j = 0; j < b.size(); ++j) {
row_res += m.at(i).at(j) * b.at(j);
}
res.insert(res.begin() + i, row_res);
}

return res;
}

13 ответов

4 просмотра

А ты точно хочешь копировать матрицы при вызове фукнции ?

Max-A Автор вопроса

У тебя с постановкой задачи нет тут проблем ?

Так а сегфолт же поймал - можно сразу в дебагере глянуть, что там и как...

Max-A Автор вопроса
Ilya Zviagin
Так а сегфолт же поймал - можно сразу в дебагере ...

В дебаг версии CLion запускаю - только out of bounds, а где - хрен пойми

res тут не может быть shared никак...

Ты тут будешь параллельно вставлять в res. Это недопустимо.

Max-A Автор вопроса
Max-A Автор вопроса
Ilya Zviagin
Где ?

Res, в конце Мы ж I-loop параллелим

res.insert(res.begin() + i, row_res); эту операцию нельзя делать параллельно

Max-A Автор вопроса
Max A
Res, в конце Мы ж I-loop параллелим

#pragma omp parallel for shared(b, m, res) default(none) for (int i = 0; i < b.size(); ++i) { double row_res = 0; for (int j = 0; j < b.size(); ++j) { row_res += m.at(i).at(j) * b.at(j); } res.insert(res.begin() + i, row_res); } Вот это параллелицо

Похожие вопросы

Обсуждают сегодня

я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
в сях есть множество как в питоне? для удаление дубликатов
Linus
25
читать файл максимально быстро? странный вопрос))
zamtmn
53
How to create an OS in C? what to study?
Linus
18
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
Всем доброго вечера! Хочу поделиться своим злоключением с человеком, который, как оказалось сюда тоже скидывал свое резюме. Жаль, что я вашу группу не нашел раньше… человек ки...
Роман Ахмедзянов
4
а как бы вылезти из ИО, что то типа IO -> Ether или в какую сторону смотреть ? что то туплю
Fedor
9
Компания Elif ищет менеджера проектов, который будет заниматься поиском и ведением новых проектов. Прежде чем приступить к работе, вам нужно пройти наш недельный курс, где вы ...
Elif
5
Привет, кто может сделать юзербота с апи? Задачи: - создавать группы - создавать каналы - задавать для созданных каналов аватарку или эмоджи, имя группы - добавлять в группы...
Lencore
11
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Карта сайта