Здавалка
Главная | Обратная связь

Флинн таксономиясы. 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);

MPI деген не?

MPI-бағдарлама - бұл параллель ара-қатынас жасайтын процестер жиынтығы. Бағдарламаның параллель бөлігін құра отырып, барлық процестер бір рет қана туындайды. MPI-бағдарламаның орындалуы барысында қосымша процестердің туындауына немесе бар процестердің жойылуына жол берілмейді (MPI-2.0-де мұндай мүмкіндік бар). MPI-да ешқандай жалпы айнымалылар болмаса деректер жоқ, әрбір процесс өзінің адрестік кеңістігінде жұмыс істейді. Процестер арасындағы ара-қатынастың негізгі тәсілі хабарламаны айқын жіберу болып табылады.

Бағдарлама параллель процестерінің ара-қатынасын таратпау (локализация) үшін процестер топтарын құруға болады. Бұл жағдайда олардың қатынас жасауы үшін жеке ортасы— коммуникатор ұсынылады. Құрылатын топтар құрамы еркін түрде алынады. Топтар бірдей болуы, қиылысуы да қиылыспауы да және бірі бірінің ішіне толық кіруі де мүмкін. Процестер ара-қатынасы тек қандай да бір коммуникатордың ішінде ғана орын алады, әртүрлі коммуникаторлармен жіберілген хабарламалар қиылыспайды және бір-біріне кедергі келтірмейді.

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

Егер топта п процесс болса, онда кезкелген процестің осы топтағы нөмірі 0-ден п-1-ге дейінгі аралықта жатады. Осы сияқты сызықты нөмірлеу, бағдарлама процестерінің логикалық ара-қатынасын әрқашан бірдей көрсете бермейді. Мысалы, процестер берілген есептің мағынасына байланысты тікбұрышты тордың тораптарында орналасуы және олар өздерінің тікелей көршілерімен ғана ара-қатынас жасауы мүмкін. Мұндай жағдайды, сәйкес процестердің виртуалды топологиясын суреттей отырып пайдаланушы өзінің бағдарламасында жеңіл көрсете алады.

 







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.