правильная реализация openmp с for, if и else - PullRequest
0 голосов
/ 22 февраля 2012

Мой вопрос касается ситуации в псевдокоде ниже, поскольку в моей ситуации можно использовать одну параллельную область для всего кода или я должен просто разделить параллельные области из-за операторов if и else

for loop
    {
        //some code , possible reduction here
    }

    if something
    {  
        for (loop 1)
        { 
            //some code2, another exasperated reduction here                         
        }
    }
    else 
    {
        for (loop 2)
        { 
           //some code 3 , special function here
        }
    }

  if (another case)
  {
    for (for loop 3)
    {
        // some code 4, another special function
    }
  }
}

1 Ответ

1 голос
/ 22 февраля 2012

Да, вы можете использовать одну параллельную область для всего кода.Просто убедитесь, что учтены все сокращения, происходящие во всех возможных ветвях выполнения.

...