Кіріспе

Алгоритм Компьютерлік ғылымда банктік жоспарлау - паралельді жүйелер үшін жоспарлау алгоритмі, ол әр түрлі процессорларда бір мезгілде жұмыс істеу үшін байланысты желілерді немесе процестерді жоспарлайды. Әдетте бұл бір процеске жататын желілер болады, бірақ олар әртүрлі процестерден болуы мүмкін, онда процестердің өндіруші-тұтынушы қатынасы болуы мүмкін немесе бірдей MPI бағдарламасынан шығуы мүмкін. Топтық жоспарлау екі немесе одан да көп желілер немесе процестер бір-бірімен байланыс жасаса, олардың барлығы бір уақытта байланысуға дайын болатынына кепілдік беру үшін қолданылады. Егер олар топтық жоспарланбаса, онда біреу басқасына хабар жіберуді немесе қабылдауды күте алады, ал ол ұйықтап жатқан кезде, керісінше. Процессорлар артық жазылып, топтық жоспарлау бір-бірімен байланысатын процестер немесе желілер тобында қолданылмайтын жағдайда, әрбір байланыс оқиғасы контексттік ауыстырғыштың үстіне түседі. Банданың жоспарлануы Остерхоут матрицасы деп аталатын дерек құрылымына негізделген. Бұл матрицада әрбір жол уақыт кесіндісін, ал әрбір баған процессорды білдіреді. Әрбір жұмыстың желілері немесе процестері матрицаның бір жолына жинақталады. Орындау кезінде барлық тораптарда бір қатардағы процестерден келесі қатардағы процестерге ауысу үшін үйлестірілген контекстті ауыстыру орындалады. Банданың кестесі басқаларға қарағанда қатаң. Бұл бір процестің барлық желілерін бір мезгілде орындауға мәжбүрлейді, ал косплантация фрагменттерге мүмкіндік береді, олар топтамалардың жиынтығы, олар топтың қалған бөлігімен бір мезгілде орындалмайды. Грантты жоспарлау бірнеше қатарлы машиналарда, әсіресе CM 5 қосылым машинасында іске асырылды және өндіріс режимінде қолданылды.

Банктер қапшығы (BoG)

Бандалық жоспарлауда, бір-бірден карталау болады, яғни әрбір тапсырма процессорға карталанады. Әдетте жұмыс орындары тәуелсіз топтар ретінде қарастырылады, бірақ топтардың жиынтығымен барлық топтар біріктіріліп, жүйеге бірге жіберілуі мүмкін. Жүйеде жұмыс орындалған кезде, бір BoG-ға жататын барлық топтар өз орындарын аяқтамайынша, орындау ешқашан аяқталмайды. Басым тапсырмалар келіп түскенде, жауап беру уақыты бұдан да төмендейді. Жүйеге басымдықты жұмыс келген сайын, ол жұмыс басқа жұмыстарға қарағанда, тіпті өңдеушілерде орындалып жатқан жұмыстарға қарағанда басымдыққа ие болады. Бұл жағдайда, басымдықты жұмыс келгенде, жүйеде орындалып жатқан суб-кешен тоқтатылады және барлық жетістіктер жоғалады және қайтадан жасалуы керек. Жұмыс тоқтатылуы Банктің жауап беру уақытын одан әрі кешіктіреді.

Ең үлкен бандит бірінші қызмет еткен (LGFS)

Жоғарыда көрсетілген орындау схемасында жұмыс көлемін ұлғайтуға сәйкес келетін тапсырмалар кезекке қойылады, ең үлкен топқа жататын тапсырмалар бірінші рет жоспарланады, бірақ орындаудың бұл әдісі кішігірім жұмыстардың ресурстарын аштыққа ұшыратады, сондықтан өңдеушілердің саны салыстырмалы түрде аз жүйелерде орындауға жарамсыз. Блоктау жағдайы: үзілген жұмыстарға тағайындалған процессорлар бұғатталады және зақымдалған процессорлардан жұмыстар тазаланмайынша өз кезегінде басқа жұмыстарды орындай алмайды.

Солдан оңға негізделген алгоритмдер

Бұл алгоритм - ең жақсы сәйкес алгоритмнің өзгертілген нұсқасы. Ең жақсы сәйкес келетін алгоритмде ПЭ-лер ретті түрде бөлінеді, бірақ бұл алгоритмде ПЭ-лерді әр түрлі жұмыстарға тағайындалған ПЭ-лердің әртүрлі топтарының арасындағы ауыспалылықты азайту үшін екі жақтан да енгізуге болады. 1. Жасырын Өлшемі бойынша сол жақтан оңға. Мұнда, ПЭ-ді жұмыстың көлеміне байланысты реттілікпен және кері реттілікпен енгізуге болады. Егер жұмыс көлемі кіші болса, ПЭ солдан оңға, ал егер жұмыс көлемі үлкен болса, ПЭ оңдан солға енгізіледі. 2. Қауіпсіздік. Сол жақтан оңға қарай. Алдыңғы алгоритмнен айырмашылығы, таңдауы жұмыстың көлеміне байланысты болған, бұл жерде таңдау слотқа байланысты. Енді, бос орындар толтырылып жатқаны, яғни сол жақтан немесе оң жақтан толтырылып жатқаны ретінде көрсетіледі. ЭБ-тер жұмысқа бірдей ретімен беріледі. Екі жақтағы тесік саны шамамен бірдей, сондықтан жаңа тесік ашылғанда, бағыт екі бағыттағы тесік санының негізінде көрсетіледі.

Жүкке негізделген алгоритмдер

Қуаттылық негізделген және солдан оңға негізделген алгоритмдер жеке ЖЭ-дегі жүктемені қамтымайды. Жүкке негізделген алгоритмдер әр түрлі жұмыстарға тағайындалған ПЭ жиынтықтарының бір-біріне ауыспалылығын қадағалап отыра отырып, жеке ПЭ-ге жүктемені ескереді. 1. Жасырын Ең төменгі максималды жүктеме. Бұл схемада ПЭ-лер әрбір жұмыс орындарына жүктелетін жүктемеге байланысты сұрыпталады. Слоттағы бос ПЭ-нің болуы слоттың сыйымдылығын анықтайды. Егер ПЭ желілері бар жұмыс орындарына бөлінсе, жүктеме тәртібіне (соңғысы) ПЭ кез келген ПЭ-нің болуы мүмкін ең жоғары жүктемені анықтайды. Кез келген ПЭ-ге ең төменгі ең жоғары жүктемесі бар тесік таңдалады және тесікке ең аз жүктемесі бар бірнеше еркін ПЭ қолданылады. 2. Қауіпсіздік. Минималды орташа жүктеме. Бұрынғы схемадан айырмашылығы, онда СО-ның ең төменгі ең жоғары жүктемесі негізінде слоттар таңдалды, бұл жерде СО-ның ең төменгі жүктемесі бойынша орташа жүктемесі таңдалады.

Бадди негізделген алгоритм

Бұл алгоритмде ПЭ жеке емес, кластерлерде тағайындалады. ПЭ-лер алдымен екіге көбейтілген топтарға бөлінеді. Топтың әрбір мүшесіне бақылаушы тағайындалады, ал n-тің көлеміне сәйкес келетін жұмыс келгенде, ол 2[lg 2] өлшеміне сәйкес келетін бақылаушыға тағайындалады (n-ден үлкен немесе оған тең 2 ең кіші күші). Басқарушы алдымен барлық пайдаланылған слоттарды сұрыптап, содан кейін 2[lg 2] жалғасқан еркін процессорлардың топтарын анықтайды. Егер бақылаушының кейбір слоттарда барлық ПЭ бос болса, онда тек жаңадан келген жұмыс осы бақылаушыға беріледі. Әйтпесе жаңа орын ашылады.

Көшіруге негізделген алгоритм

Жоғарыда аталған барлық алгоритмдерде бастапқы орналастыру саясаты белгіленеді және жұмыс орындары осыған байланысты ЖО-ға бөлінеді. Алайда, бұл схема жұмыс орындарын бір топ ПЭ-ден екінші топ ПЭ-ге көшіреді, бұл өз кезегінде жүйенің жұмыс істеу бөлігін жақсартады.