مانع همگامسازی (علوم رایانه)
مانع(barrier) ابزاری برای همگام سازی فعالیت تعدادی از ریسمانها است. وقتی یک ریسمان به یک نقطه مانع میرسد، نمیتواند ادامه یابد تا زمانی که همه ریسمانهای دیگر نیز به این نقطه برسند. وقتی آخرین ریسمان به نقطه مانع میرسد، همه ریسمانها آزاد میشوند و میتوانند اجرای همروند را از سر بگیرند.
مثال
به عنوان مثالی از یک مشکل که نیاز به موانع دارد، یک مشکل شایع آرام شدن(relaxation) در فیزیک یا مهندسی را در نظر بگیرید. معمولاً یک ماتریس وجود دارد که دارای برخی مقادیر اولیه است. این مقادیر ممکن است دما را در نقاط مختلف ورق فلز نشان دهند. این ایده ممکن است برای محاسبه مدت زمانی باشد که طول میکشد تا اثر شعله ای که در یک گوشه قرار گرفتهاست در سراسر ورق پخش میشود. با شروع مقادیر فعلی، تغییری در ماتریس اعمال میشود تا نسخه دوم ماتریس بدست آید، به عنوان مثال، با استفاده از قوانین ترمودینامیک، بعداً میبینید که همه دماها ΔT چیست. سپس این فرایند بارها و بارها تکرار میشود و دما را در نقاط نمونه به عنوان تابعی از زمان با گرم شدن ورق میدهد. الگوریتم در طول زمان توالی ای از ماتریسها را تولید میکند، که هر کدام برای یک زمان مشخص هستند. حال تصور کنید که ماتریس بسیار بزرگ است (به عنوان مثال ۱ میلیون در ۱ میلیون)، بنابراین برای سرعت بخشیدن به محاسبات به فرآیندهای موازی (احتمالاً روی چندین پردازنده) نیاز است. فرآیندهای مختلف بر روی قسمتهای مختلف ماتریس کار میکنند، عناصر جدید ماتریس را با استفاده از عناصر قدیمی مطابق قوانین فیزیک محاسبه میکنند. با این حال، تا زمانی که پیمایش n کامل نشود، یعنی تا زمانی که همه فرایندها کار فعلی خود را تمام نکنند، هیچ فرآیندی نمیتواند پیمایشn + 1 را شروع شود.
راه دستیابی به این هدف این است که هر فرایند را طوری برنامهریزی کنیم تا پس از پایان سهم پیمایش فعلی خود، یک عملیات مانع را اجرا کند. وقتی کار همه فرایندها تمام شد، ماتریس جدید (ورودی پیمایش بعدی) به پایان میرسد و همه فرایندها بهطور همزمان آزاد میشوند تا پیمایش بعدی شروع شود.