Параллельный цикл OpenMP с оператором break

Я знаю, что вы не можете использовать оператор break для цикла OpenMP, но мне было интересно, есть ли какой-нибудь обходной путь, который все еще дает преимущества от параллелизма. По сути, у меня есть цикл for, который перебирает элементы большого вектора в поисках одного элемента, удовлетворяющего определенному условию. Однако есть только один элемент, который будет удовлетворять условию, поэтому, как только он будет найден, мы сможем выйти из цикла. Заранее спасибо

for(int i = 0; i <= 100000; ++i)
  {
    if(element[i] ...)
     {
          ....
          break;
      }
   }
22
задан Tudor 20 March 2012 в 19:53
поделиться