نام پژوهشگر: سیما جهانی
سیما جهانی شهریار لطفی
حلقهها سهم بسیار زیادی در اجرای برنامههای محاسباتی دارند، بنابراین موازیسازی آنها در تسریع برنامهها بسیار مهم است. موازیسازی حلقهها در چهار مرحله انجام میگیرد: 1) تحلیل وابستگی دادهای و یکنواختسازی فضای تکرار: وابستگی بین تکرارهای حلقه و بردارهای وابستگی مشخص شده و به مجموعهای از بردارهای وابستگی پایه تبدیل میشود. 2) کاشیبندی: فضای یکنواخت وابستگی تکرارهای حلقه به قطعاتی به نام کاشی با حداقل وابستگی افراز میشود. 3) تولید کد موازی: تعیین کاشیهای مستقل که میتوانند به صورت موازی و همزمان اجرا شوند. 4) زمانبندی حلقه: کد موازی حاصل در قالب گراف وظایف ، زمانبندی میشود. مساله، تعیین اندازه و شکل بهینه برای کاشیها است به قسمیکه وابستگی بین یک کاشی و کاشیهای همسایه کمینه گردد و از حداکثر حافظهی محلی پردازندهها استفاده شود. مسئله کاشیبندی، یک مسئله چند جملهای غیر قطعی– سخت است و لذا الگوریتمهای غیر قطعی جواب مناسبی در مدت زمان کوتاهتر نسبت به الگوریتمهای قطعی ارائه میدهند.