Neden != operatör OpenMP ile İzin Verilmiyor?
Aşağıdaki kodu derlenmiş çalışıyordum
#pragma omp parallel shared (j)
{
#pragma omp for schedule(dynamic)
for(i = 0; i != j; i )
{
// do something
}
}
Bu hata alıyorum:hata: geçersiz denetleme yüklem.
reference guide ve buna paralel için öyle diyor openMP kontrol "sadece" aşağıdaki operatörler sağlar: < <= ^< . =.
Neden i != j
izin yok anlamıyorum. Önceden hesaplamak yineleme için atanan her iş parçacığı sayısı için openMP gerekir çünkü eğer statik zamanlama olsaydı anlardım. Ama bu örneğin böyle bir durumda sınırlama anlayamıyorum. Herhangi bir ipucu ?
EDİT: eğer sadece koymak isterdim for(i = 0; i != 100; i )
, yaparsam bile "<" veya "&;= lt" .
CEVAP
.
Bu konu hakkında OpenMP geliştiriciler için bir e-posta, ben cevap gönder :
İmzalı tamsayı için, davranış etrafında sarın tanımsızdır. Eğer izin verirsek !=, programcılar beklenmedik tripcount alabilirsiniz. Sorun derleyici kodu bir gezi için döngü sayısını hesaplamak için oluşturmak olup olmadığını.
Basit bir döngü gibi
for( i = 0; i < n; i )
derleyici var 'n' yinelemesi . belirleyebilirsiniz ^strong>n>=0ve yineleme sıfırn < 0.
Bir döngü gibi
for( i = 0; i != n; i )
yine, bir derleyici olduğunu belirlemek mümkün 'n' yineleme, olmalıdırn >= 0;n < 0kaç tane var bilmiyoruz.
Bir döngü gibi
for( i = 0; i < n; i = 2 )
derleyici kodu hesaplamak için yolculuk count (döngü yineleme sayısı) olarak oluşturabilirn ^ Eğer floor((n 1)/2). = 0ve 0n < 0.
Bir döngü gibi
for( i = 0; i != n; i = 2 )
derleyici olup olmadığını belirleyemez 'ben' hiç vuracaktır ''. n N bir tek sayı bulunur??
Bir döngü gibi
for( i = 0; i < n; i = k )
derleyici yolculuk olarak saymak hesaplamak için kod üretebilirfloor((n k-1)/k) n >= 0ve 0n < 0derleyici döngü saymak gerekir. çünkü; bu durumda, eğer&; 0 . lt k yasal OpenMP bir program değil.
Bir döngü gibi
for( i = 0; i != n; i = k )
derleyici bile, yukarı veya aşağı sayma ise bilmiyor. Eğer anlamaz 'ben' hiç vuracaktır ''. n Sonsuz bir döngü olabilir.
Credites: BİRİNCİ OpenMP
Neden süper.süper.() metodu, Java İzin...
Neden “senkronize” Java 8'de İzin Veri...
Otomatik referans sayma altında, neden...
Neden belirli Unicode karakterler içer...
XmlHttpRequest hata: Origin null Acces...