آزمون بانرجی

از ویکی‌پدیا، دانشنامهٔ آزاد

در تئوری کامپایلر ، آزمون بانرجی یک آزمون وابستگی است. آزمون بانرجی فرض می‌کند که همه شاخص‌های حلقه مستقل هستند، اما در واقعیت، این اغلب نادرست است. آزمون بانرجی یک آزمون محافظه کارانه است. یعنی وابستگی را که وجود ندارد قطع نمی کند.

این بدان معنی است که تنها چیزی که آزمون می تواند تضمین کند عدم وجود وابستگی است.

ضد وابستگی شکسته شده است وابستگی واقعی شکسته شده است
درست وجود ندارد



ضد وابستگی ها
وجود ندارد



وابستگی های واقعی
نادرست ممکن است وجود داشته باشد یا نباشد


ضد وابستگی ها
ممکن است وجود داشته باشد یا نباشد



وابستگی های واقعی

فرم کلی[ویرایش]

برای یک حلقه از فرم:

    for(i=0; i<n; i++) {
        c[f(i)] = a[i] + b[i]; /* عبارت s1 */
        d[i] = c[g(i)] + e[i];    /* عبارت s2 */
    }

یک وابستگی واقعی بین عبارت s1 و عبارت s2 وجود دارد اگر و فقط اگر :

یک ضد وابستگی بین عبارت s1 و عبارت s2 وجود دارد اگر و فقط اگر :

برای یک حلقه از فرم:

   for(i=0; i<n; i++) {
        c[i] = a[g(i)] + b[i]; /* عبارت s1 */
        a[f(i)] = d[i] + e[i];    /* عبارت s2 */
    }

یک وابستگی واقعی بین عبارت s1 و عبارت s2 وجود دارد اگر و فقط اگر :

مثال[ویرایش]

نمونه تست بانرجی.

حلقه ای که برای وابستگی آزموده میشود  :

    for(i=0; i<10; i++)  {
        c[i+9] = a[i] + b[i]; /*عبارت s1*/
        d[i] = c[i] + e[i];    /*عبارت s2*/
    }

بنابراین،

و

آزمایش برای ضد وابستگی[ویرایش]

بطوریکه

بطوریکه

که می دهد:

پس، محدودیت ها بر هستند :

واضح است که -9 خارج از کران است ، بنابراین ضد وابستگی شکسته می شود.

تست درستی وابستگی[ویرایش]

بطوریکه

آنگاه داریم :

در حال حاضر، محدودیت ها روی هستند :

واضح است که -9 داخل کران بدست آمده است ، بنابراین وابستگی واقعی شکسته نمی شود.

نتیجه[ویرایش]

از آنجا که ضد وابستگی شکسته شد، می‌توان ادعا کرد که ضد وابستگی بین گزاره‌ها وجود ندارد.

وقتی وابستگی درست (واقعی) نقض نشده است ، نمی دانیم که آیا وابستگی واقعی بین گزاره ها وجود دارد یا خیر.

بنابراین، حلقه قابل موازی سازی است، اما عبارات باید به ترتیب وابستگی واقعی (بالقوه) آنها اجرا شوند.

همچنین ببینید[ویرایش]

منابع[ویرایش]

  • رندی آلن و کن کندی بهینه سازی کامپایلرها برای معماری های مدرن: رویکردی مبتنی بر وابستگی
  • لاستوتسکی، الکس. محاسبات موازی در شبکه های ناهمگن