32 подводных камня OpenMP при программировании на Си++
От: Analytic2007 Россия https://www.viva64.com/ru/pvs-studio/
Дата: 26.06.08 13:48
Оценка:
Добрый день.
Предлагаю для чтения и обсуждения новую статью в духе "20 ловушек переноса Си++ — кода на 64-битную платформу". На этот раз мы обратили взор в сторону технологии OpenMP. Предлагаю вашему вниманию:
Алексей Колосов, Евгений Рыжков, Андрей Карпов. 32 подводных камня OpenMP при программировании на Си++.
http://www.viva64.com/articles/32_OpenMP_traps_%28rus%29.html
Будем благодарны критике, замечаниям, отзывам, информации о других схожих ошибках.
Пишите в форум или karpov#del#@viva64.com.
С уважением, Андрей Карпов.
openmp c++
Re: 32 подводных камня OpenMP при программировании на Си++
От: Chorkov Россия  
Дата: 27.06.08 14:07
Оценка:
Здравствуйте, Analytic2007, Вы писали:

A>Будем благодарны критике, замечаниям, отзывам, информации о других схожих ошибках.


Однажды я наступил на грабли "выброс исключения из параллельного цикла":

    #pragma omp parallel for 
    for(int i=0; i<10; ++i)
    {
        if((i%3)==0)
            trow std::exception("Шеф, усё пропало!");
    }


Причем вызов функции бросающей исключение может быть достаточно хорошо замаскирован, а писать catch в каждом цикле ну очень лениво .

А самое неприятное, что иногда все работает нормально (исключение бросается дальше), а иногда unhadled exception.
openmp trow exception
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.