
- •Параллельді архитектураның классификациясы
- •OpenMp негізгі принциптері
- •5. OpenMp технологиясындағы программалаудың принципиалды сұлбасы
- •44 Сурет. ОреnМр: бағдарламаның орындалу процесі
- •6. Амдал заңы. Үдеулігі (жеделдету). Тиімділік
- •7. Суперскалярлы және векторлы процессорлар.
- •8. Флинн таксономиясы. Sisd, simd архитектурасы.
- •9. Флинн таксономиясы. Misd, mimd архитектурасы.
- •10. Simd үлгісіне программа мысалдар
- •11. Mpi деген не?
8. Флинн таксономиясы. Sisd, simd архитектурасы.
Флин классификациясы ағын түсінігіне негізделеді. Ағын - процессорда өңделетін командалар немесе деректер тізбегі. Командалар мен деректер ағымы санына байланысты Флин архитектураны 4 класқа бөледі.
SISD (Single Instruction stream/Single Date stream) – командалардың жеке ағыны және деректердің жеке ағыны
SIMD (Single Instruction stream/Multiple Date stream) - командалардың жеке ағыны және деректердің көптеген ағыны . SISD класынан айырмашылығы, мұндай архитектураларда векторлық командалар енетін командалардың бір ағыны сақталады. Ал бұл өз кезегінде бірден көптеген берілгендермен, мысалы, вектор элементтерімен, бір арифметикалық операцияны орындауға мүмкіндік береді. Векторлық операцияларды орындау тәсілі арнайы айтылмайды, сондықтан вектор элементтерін өңдеу процессорлық матрица арқылы, мысалы, ILLIAC IV – тегі сияқты немесе конвейер көмегімен, мысалы, Cray-1 машинасындағы сияқты жүргізілуі мүмкін.
SISD класына VAX 11/780 типі сияқты бірпроцессорлы тізбекті компьютерлер кіреді. Алайда, бұл класқа, егер сәйкес команда үшін векторды бүтін бөлінбейтін берілген деп қарастыратын болсақ, онда векторлы-конвейерлік машиналарды да енгізуге болады. Бұл жағдайда SISD класына Cray-16, CYBER 205, FACOM VP машиналары және көптеген т.б машиналар да жатады.
SIMD класына даусыз процессорлық матрицалар: ILLIAC IV, ICL DAP, Goodyear Aerospase MPP, Connection Machine 1 және т.б. кіреді. Мұндай жүйелерде процессорлық элементтер жиынын ортақ басқару құрылғысы қадағалайды. Әрбір бекітілген уақыт мезетінде, әрбір процессорлық элемент, басқару құрылғысынан бірдей команданы қабылдап, оны өздерінің локальды берілгендеріне орындайды.
9. Флинн таксономиясы. Misd, mimd архитектурасы.
MIMD командалардың көптеген ағыны және деректердің көптеген ағыны.
Бұл класта, есептеу жүйесінде бір кешенге біріктірілген, командаларды өңдейтін бірнеше құрылғы бар деп есептеледі және олардың әрқайсысы өз командалар ағынымен және деректер ағынымен жұмыс істейді. Оған көп процессорлы векторлы супер ЭЕМ ғана емес, басқа да көп процессорлы компьютерлер жатады. Көптеген қазіргі супер ЭЕМ-ың архитектурасы MIMD болып табылады.
MISD (Multiple Instruction stream/Single Date stream) - командалардың көптеген ағыны және деректердің жеке ағыны
MIMD класы өте кең, себебі оған барлық мүмкін мультипроцессорлық жүйелер: Cm*, C.mmp, Cray Y-MP, Denelcor HEP, BBN Butterfly, Intel Paragon, Cray T3D және көптеген басқа машиналар енеді.
Флин ұсынған бұл классификация сызбасы, бүгінгі күні ең көп қолданылуда екенін айта кету керек. Егер компьютер SIMD немесе MIMD класына кіреді деп айтылса, онда оның жұмысының бірден базалық қағидалары түсінікті және кейбір жағдайларда осының өзі жеткілікті болады.
10. Simd үлгісіне программа мысалдар
SIMD (Single Instruction stream/Multiple Date stream) - командалардың жеке ағыны және деректердің көптеген ағыны . SISD класынан айырмашылығы, мұндай архитектураларда векторлық командалар енетін командалардың бір ағыны сақталады. Ал бұл өз кезегінде бірден көптеген берілгендермен, мысалы, вектор элементтерімен, бір арифметикалық операцияны орындауға мүмкіндік береді. Векторлық операцияларды орындау тәсілі арнайы айтылмайды, сондықтан вектор элементтерін өңдеу процессорлық матрица арқылы, мысалы, ILLIAC IV – тегі сияқты немесе конвейер көмегімен, мысалы, Cray-1 машинасындағы сияқты жүргізілуі мүмкін.
SIMD класына даусыз процессорлық матрицалар: ILLIAC IV, ICL DAP, Goodyear Aerospase MPP, Connection Machine 1 және т.б. кіреді. Мұндай жүйелерде процессорлық элементтер жиынын ортақ басқару құрылғысы қадағалайды. Әрбір бекітілген уақыт мезетінде, әрбір процессорлық элемент, басқару құрылғысынан бірдей команданы қабылдап, оны өздерінің локальды берілгендеріне орындайды.
SPMD
#include<stdio.h>
#include<mpi.h>
int main(int argc, char **argv)
{ int size, rank;
MPI_Init(&argc, &argv);
MPI_Comm_size(MPI_COMM_WORLD, &size);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
printf("SIZE = %d RANK = %d\n",size,rank);
MPI_Finalize();
return(0);