Да, вы можете использовать cycle
в loop1
.Этот цикл будет выполняться каждым потоком независимо, и условные переходы в контексте каждого потока не создают никаких проблем.
Просто не забудьте сделать j
приватным!Только i
будет автоматически закрыто.
Кстати, OpenMP позволяет использовать cycle
даже для parallel do
; документ утверждает, что
С помощью оператора CYCLE может быть свернута только итерация самого внутреннего связанного цикла.
Так что в вашем случае вы могли быиспользуйте cycle
даже во внешнем цикле, который является вашим единственным циклом , связанным с параллельным участком (т. е. не существует нескольких collapse
-d циклов).