SORU
9 Kasım 2012, Cuma


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
15 Kasım 2012, PERŞEMBE


.

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

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • AlaskanGrizzly

    AlaskanGrizz

    30 EKİM 2009
  • Stanislav Petrov

    Stanislav Pe

    7 ŞUBAT 2009
  • TheJoeycool2010

    TheJoeycool2

    12 Temmuz 2010