LEKSIONE PER SISTEMET E SHPERNDARA DHE PARALELE. Pjesa e Pare Sistemet Paralele DEGA INFORMATIKE. Neki Frasheri
|
|
- Χριστιανός Νικολάκος
- 7 χρόνια πριν
- Προβολές:
Transcript
1 LEKSIONE PER SISTEMET E SHPERNDARA DHE PARALELE Pjesa e Pare Sistemet Paralele DEGA INFORMATIKE Neki Frasheri Tirane,
2 Table of Contents HYRJE3 Sistemet sekuenciale dhe paralele3 Nevoja per perpunime paralele4 Perpunimi paralel i te dhenave4 HYRJE NE OpenMP5 ARKITEKTURAT PARALELE8 Arkitektura SISD8 Arkitektura SIMD8 Arkitektura GPU9 Arkitektura HyperThread11 Arkitektura MIMD11 Arkitektura CPU Multi-core12 Arkitektura GRID13 ARKITEKTURA E KUJTESAVE15 Kategorizimi i Kujtesave15 Sistemet paralele me kujtese te perbashket16 Kujtesa ne sistemet GPU17 Kujtesa e Jashtme dhe Skedaret18 KOMUNIKIMI MIDIS PROCESEVE20 Paralelizimi i te Dhenave dhe Rasti i OpenMP20 OpenMP21 RPC (Remote Procedure Call)21 MESSAGE PASSING INTERFACE (MPI)25 Krijimi i proceseve paralele MPI26 Komunikimi Midis Proceseve MPI26 Parametrat e Procedurave ne MPI28 ZHVILLIMI I PROGRAMEVE PARALELE32 Coptimi dhe Paralelizimi i Algoritmit32 Kompleksiteti i Algoritmeve Paralele39 2
3 HYRJE Sistemet sekuenciale dhe paralele Kompjuteri i Fon Nojman: perbehet nga CPU dhe Kujtesa ne Kujtese mbahet vargy i instruksioneve dhe te dhenat cdo instruksion ne CPU vepron mbi nje te dhene nga Kujtesa instruksionet ekzekutohen njeri pas tjetrit ~ sekuencialisht ne CPU Programimi klasik presupozon ekzekutim sekuencial te instrucksioneve Sot procesoret kane te pakten 2 core (alias CPU ) Programet ekzekutohen si procese te pavarur sekuenciale ne core e ndryshme A mund te thyhet principi i sekuencialitetit? Pjeserisht po Shembull: Mbledhja e dy vektoreve c[i] = a[i] + b[i]; per i=1,2,,n Rradha e punes ne sistemin sekuencial: 1 i=1 => CPU 2 a[i] => CPU 3 CPU + b[i] => CPU 4 CPU => c[i] 5 i=i+1 => CPU 6 perseritje e grupit te instruksioneve <1:6> Ku: CPU ketu perfaqeson regjister ne procesor Koha e ekzekutimit eshte T = n * DT ku DT ~ koha e ekzekutimit te grupit te instruksioneve <1:6> Veprimi i mbledhjes te dy elementeve ne pozicionin i eshte veprim i pavarur dhe mund te kryhet pavaresissht nga mbledhjet e tjera Po te disponojme numer te mjaftueshem CPU-sh mund te kryejme secilen nga mbledhjet ne nje CPU te vecante dhe koha e ekzekutimit do te shkurtohej n here: T1 = T / n = DT 3
4 Nevoja per perpunime paralele modelime dhe simulime ekonomike klimatologji: dinamika e atmosferes dhe oqeaneve biologji: dinamika dhe bashkeveprimi i molekulave komplekse fizike: bashkeveprimi i nje numri te madh trupash etj Shembull: Inversioni i anomalive te gravitetit ne gjeofizike Matet intensiteti i gravitetit ne siperfaqen e Tokes dhe perftohet nje matrice 2D ~ anomalia Kerkohet shperndarja e densitetit te mases nentoke ~ nje matrice prismatike 3D qe perfaqeson gjeoseksionin Problemi eshte i keq-pozuar - zgjidhja nuk eshte as e vetme as e qendrueshme Ne nje sistem me 1000 procesore per nje gjeoseksion 3D me permasa 4x4x2 km i coptuar ne matricen 3D me 2,099,601 elemente qe perfqesojne kuboide me permasa 50x50x50m te nentokes u deshen 27 ore llogaritje Per te njejtin model por me kuboide me permasa 25m do te duhej nje vit llogaritjesh ne sistemin me 1000 procesore Rendi i veprimeve eshte O(N^8), ku N eshte numri i elementeve ne nje brinje te gjeoseksionit prizmatik Perpunimi paralel i te dhenave Konsiston ne coptimin e grupeve te veprimeve dhe ekzekutimin e tyre ne procesore / core te vecanta, dhe me pas ne integrimin e copave rezultateve ne nje te vetme Eventualisht kjo mund te kerkoje modifikimin e algoritmit llogarites Jo cdo algoritem pranon / mund te paralelizohet Mundesia e paralelizimit dhe rruga per realizimin e tij varen nga: algoritmi (mundesia e ndarjes ne copa paralele te pavarura) arkitektura e bashkesise se procesoreve arkitektura e kujteses (dhe lidhja e saj me procesoret) gjuha e programimit Shembull: a) mbjedhja e dy vektoreve paralelizohet lehte c[i] = a[i] + b[i] b) shuma e termave te nje vektori paralelizohet me veshtiresi S = Σ a[i] 4
5 thread thread thread proces proces proces HYRJE NE OpenMP Librari me modulet per manaxhimin e thread paralele Gjuhet e programimit C dhe FORTRAN Sistemet MS-Windos dhe Linux Kompilimi behet duke shtuar parametrin -fopenmp : gcc -fopenmp programc -o program Ekzekutimi behet normalisht Koncepti baze: paralelizimi realizohet duke krijuar (klonuar) thread paralele qe mund te ekzekutohen ne core te ndryshme (kur ka me shume thread se core kemi konkurence per kapjen e kohes te CPU duke cenuar efektin e paralelizimit) Dallimi midis procese dhe thread ne perdorimin e kujteses: proceset perdorin hapesira vetiake te kujteses thread ndajne te njejten hapesire kujtese Thread paralele krijohen duke klonuar (kujto konanden fork ne Linux) procesin rrenje (qe krijohet kur programi leshohet per ekzekutim): Procesi baze v v v fork join v v v Thread paralel join Thread paralel join Thread paralel join Thread paralel join 5
6 Ku: v ~ kod qe ekzekutohet vetem ne procesin baze (sekuencial) ~ kodi qe ekzekutohet sekuencialisht por i perseritur ne thread paralele Strukture qe paralelizohet relativisht lehte eshte cikli For ne rastin kur iteracionet e tij jane te pavarur nga njeri tjetri Shembull: Paralelizohet lehte: Paralelizohet me veshtiresi: Shembull: for i=1 to n c[i] = a[i] + b[i] for i=1 to n s = s + a[i] Ne disa raste me ndryshime te vogla iteracionet mund te behen te pavarur: Iteracione te ndervarur: for i=1 to n j = j + 5 c[j] = a[j] + b[j] Iteracione te pavarur: for i=1 to n j = i * 5 c[j] = a[j] + b[j] Analiza e shumes te vektoreve: Kodi i shumes te dy vektoreve: Numri i iteracioneve: Numri i thread paralele: Cdo thread duhet te kryeje: for i = 1 to n c[i] = a[i] + b[i] n m k = int(n/m) iteracione thread 0 for i=1 to k >>>>>>>>>>>>>>x>>>>>>>>>>>>>>>>>>x>>>>>>>>>>>>> for i=k+1 to 2k thread 1 ->>>>>>>>>>>>>>>>>>- for i=2k+1 to 3k thread 2 ->>>>>>>>>>>>>>>>>>- for i=(m-1)k+1 to n thread 3 ->>>>>>>>>>>>>>>>>>- Kodi i nevojshem per klonimin e thread dhe ribashkimin e tyre ndertohet nga kompilatori Programisti e kontrollon procesin e ndertimit te kodit te paralelizueshem duke perdorur direktiven PRAGMA: 6
7 Shembull: Shembull: #pragma omp parallel num_threads(m) Mbledhja e dy vektoreve #pragma omp parallel num_threads(m) for (i=0; i<n; i++) c[i] = a[i] + b[i]; Riformulim i mbledhjes te dy vektoreve #pragma omp parallel num_threads(m) for (i=0; i<n; i++) { S = a[i] + b[i]; c[i] = S } Problem me variablin lokal S : thread paralele duhet te konkurojne per kapjen e tij Zgjidhja (kujto variablat lokale te procedurave) eshte duke e deklaruar variablin lokal S si privat per cdo thread: #pragma omp parallel num_threads(m) private(s,) for (i=0; i<n; i++) { S = a[i] + b[i]; c[i] = S } 7
8 ARKITEKTURAT PARALELE Arkitektura SISD SISD ~ Single Instruction Single Data ~ arkitektura klasike sekuenciale: CPU >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> RAM Ku: koha ~ kalimi i nje instruksioni nga RAM ne CPU ~ shkembim i nje te dhene midis RAM dhe CPU Rasti i mbledhjes te dy vektoreve: Konsierojme problemin te thjeshtezuar: nje instruskion mbledhjeje c[i] = a[i] + b[i] shume cifte te dhenash te pavarura mbi te cilat vepron instruksioni i mpledhjes Per rastet e nje situate te tille per veprime elementare ne CPU, kjo e fundit eshte ndertuar sipas parimit te konvejerit te punes ~ pipeline / SIMD: Arkitektura SIMD SIMD ~ Single Instruction Multiple Data Arkitektura njihet dhe me emrin vektoriale, e specializuar per veprimet me vektoret Ndertimi i brenshem i CPU me blloqe (koncepti i firmare ~ mikro-instruksione): IN OUT Instruksioni ekzekutohet i shumefishuar si vargje mikro-instruksionesh dhe paralelisht me njeri tjetrin mikro-instruksioni i seciles kopje te instruksionit ne nje bllok te CPU, cdo kopje e instruksiont trajton nje te dhene te veten: instruksioni ~ mi-1 => mi-2 => mi-3 => mi-4 IN mi-1 data4 mi-2 data3 mi-3 data2 mi-4 data1 OUT 8
9 KUJTESA E PERBASHKET Figura me poshte tregon zhvendosjen e te dhenave neper blloqet e mikro-instruksioneve te CPU: Instruksioni si varg mikro-instruksionesh Koha data1 hyn ne CPU mi-1 mi-2 mi-3 mi-4 data1 data2 hyn ne CPU data2 data1 data3 hyn ne CPU data3 data2 data1 data4 hyn ne CPU data4 data3 data2 data1 Procesoret Intel kane arkitekture pipeline Optimizimi i kodit per shfrytezimin e paralelizimit mund te behet duke perdorur kompilatoret Intel Arkitektura GPU Procesoret grafike (GPU ~ Graphic Processing Unit) te nivelit te larte NVIDIA dhe AMD RAEDON shfrytezojne konceptin SIMD per te pershpejtuar veprimet e renderizimit te imazheve ne levizje core core core core core cache core core core core core cache core core core core core cache core core core core core cache core core core core core cache core core core core core cache Si e tille GPU mund te perdoret per llogaritje paralele sipas logjikes SIMD i njejti kod GPU ekzekutohet ne secilen core te GPU me te dhena te ndryshme Programimi behet duke perdorur zgejrimet e gjuhes C: OpenCL CUDA (rasti i NVIDIA) Programisti karton kodin kernel qe duhet te ekzekutohet ne core-t e GPU dhe duhet te parashikoje transferimin e te dhenave nga RAM ne kujtesen e GPU 9
10 BUS CPU RAM CPU Kodi kernel Te dhenat Ku: ~ CPU kontrollon shkembimet midis RAM dhe GPU ~ transferim kodi dhe te dhenash midis RAM dhe GPU Shembull: Mbledhja e dy vektoreve Kodi klasik: for i = 1 to n c[i] = a[i] + b[i] Kodi kernel per GPU ne parim do te ishte (i thjeshtezuar): c[i] = a[i] + b[i] qe do te perseritej ne secilen core te GPU me vleren perkatese te indeksit i (ne kete shembull detajet e programimit te GPU nuk jane paraqitur) Ekzekutimi i kodit klasik do te kerkonte 99% te kohes te CPU, ndersa ekzekutimi me ndihmen e nje GPU me 48 core ekrkoi vetem 3% kohe te CPU Per te punuar me GPU duhet: te instalohen gjuhet perkatese (OpenCL dhe / ose CUDA) te programohet vecas kodi per CPU dhe vecas kodi per GPU te parashikohen shkembimet e te dhenave midis RAM dhe GPU 10
11 Arkitektura HyperThread Ne disa kategori procesoresh Intel eshte realizuar e ashtuquajtura teknologji hyperthread Arkitektura e nje CPU klasike (nje core e vetme) eshte: mjedisi i thread ALU Kur thread i zene vendin njeri tjetrit ne CPU, duhet te ndrohet dhe mjedisi i therad (vlerat e regjistrave, tabelat e faqeve te kujteses etj), gje qe kerkon njefare kohe Ne CPU hyperthread eshte shumefishuar elektronika e mjedisit te thread: mjedisi i thread mjedisi i thread ALU Ne kete menyre CPU mban njekohesisht 2 (ose me shume (?)) mjedise per thread te ndryshem, duke mundesuar pershpejtimin e shkembimit te thread ne CPU (shmanget koha e shkembimit te mjediseve) Nga pikpamja e shpejtesise te punes, nje core me dy hyperthread punon sikur te ishte nje core e gjysem Arkitektura MIMD MIMD ~ Multiple Instruction Multiple Data Rasti kalsik i kesaj arkitekture do te ishte nje makine me shume procesore / core te lidhur njeri me tjetrin ne formen e nje matrice: 11
12 Pergjithesisht makina te tilla jane te ralla dhe perdoren per perpunime speciale Programimi i tyre, sistemet operative dhe gjuhet e programimit jane teper te nderlikuara Sot perdoren gjeresisht sisteme paralele me te thjeshta cluster me CPU te lidhura midis tyre ne nje BUS Makina te tilla kane zakonisht disa CPU, secila me nje ose disa core: RAM RAM RAM RAM RAM CPU CPU CPU CPU CPU Rrjeti lokal i nje laboratori mund te trajtohet si nje makine paralele e tille ~ cluster me CPU (shiko dhe arkitekturen grid) Problemi me kete arkitekture eshte shkembimi i te dhenave midis CPU-ve Brenda nje nyjeje CPU+RAM mund te punohet me thread paralele qe ndajne te njejten zone kujtese, ndersa shkembimi i te dhenave midis nyjeve (e thene ndryshe midis proceseve) kerkon mekanizma te vecante Nje i tille eshte MPI Message Passing Interface Zgjidhja MPI konsiston ne klonimin e proceseve (perfshi kujtesen), duke krijuar nga procesi baze (i startuar me fillimin e ekzekutimit te programit) nje grup procesesh analoge paralele qe ekzekutohen ne CPU te ndryshme Programisti mund te kontrolloje rrjedhen e ekzekutimit duke mundesuar qe procese te ndryshme te ekzekutojne copa kodi te ndryshme, duke realizuar perafersisht logjiken MIMD MPI eshte nje librari plotesuese per gjuhet C dhe FORTRAN, qe permban modulet e klonimit te proceseve dhe procedurat e shkembimit te mesazheve midis proceseve Kompilimi behet me komanden mpicc dhe ekzekutimi me komanden mpirun Arkitektura CPU Multi-core Arkitektura multi-core konsiston ne CPU te perbere nga disa njesi te vecanta te pavarura perpunimi, e thene ndryshe disa CPU ne nje chip te vetem: core core core core cache cache cache cache CACHE BUS RAM Sot shumica e PC-ve kane CPU me dy ose me shume core 12
13 Arkitektura GRID Grid eshte nje sistem paralel i perbere nga disa nyje CPU+RAM te lidhura ne rrjet lokal ~ cluster me PC Cdo nyje / PC eshte teresisht e pavarur dhe ka sistemin e vet operativ te zakonshem (MS- Windos ose Linux) Shpesh rrjetat lokale konfigurohen te punojne si grid gjate nates MPI mund te perdoret per komunikimin midis proceseve ne nyjet e ndryshme, por ekzekutimi i nje programi paralel ne nje cluster te tille kerkon mbeshtetjen nga middleare i nevojshem per te klonuar proceset ne makina te pavarura Per me teper mbi grid dhe middleare perkates shiko sistemet CONDOR dhe GLOBUS Midleueri grid duhet te zgjithe tre detyra: a) te verifikoje certifikatat e perdoruesve dhe te sistemeve qe bashkeveprojne ne grid, te monitoroje gjendjen e sistemit, te mbaje historikun e ngjarjeve dhe vellimin e puneve te kryera nga perdoruesit b) te mare kerkesat per ekzekutim nga perdoruesit dhe, duke u bazuar ne informacionin mbi ngarkesen e castit te segementeve (cluster ) te vecanta te grid, te dergoje punet per ekzekutim ne segmentet me pak te ngarkuar c) te mbaje regjistrin me skedaret e rezervuar ne pika te ndryshme te sistemit, te ofroje mundesine e kapjes te skedareve nga perdoruesit, dhe te sinkronizoje permbajtjen e kopjeve shumefishe User Interface Intranet / Internet Siguria + Monitorimi dispecer 13
14 Segmentet / cluster grid perbehen nga : 1 LAN 2 Computer Element (CE ~ host i dispetcerit lokal) 3 Storage Element (SE ~ sistemi qe ofron hapesire disku) 4 Monitoring node (MON) 5 Work Node (WN ~ kompjuterat qe ekzekutojne punet) 6 Softueri: (a) Administratori i puneve (pbs, torque, maui ) (b) Administratori i skedareve (gridftp ) (c) Sistemi i informacionit (bdii ) (d) Sistemi i monitorimit (mon ) Grid i shperndare ka topologji te ngjashme si ne figure: dispecer global monitorues global segmente grid Dispeceri global komunikon me nje cluster grid vetem me CE dhe SE Siguria ne sistemet grid bazohet ne certifikatat elektronike Cdo perdorues dhe cdo nyje kopjuterike me te drejta per shkembime me dispetcerin (CE, SE, MON) duhet te kete certifikaten e vet te leshuar nga autoritete CA te njohur nga sistemi Per te shmangur perdorimin e vazhdueshem te nje certifikate, qe sjell rezikun e zberthimit te saj nga pale te treta, ndiqet praktika e perdorimit te certifikatave te perkoheshme Me ndihmen e certifikates permanente sistemi qe do te komunikoje me dike gjeneron nje certifikate te perkoheshme (e quajtur dhe proxy ) dhe e perdor ate per pune gjate nje sesioni brenda nje afati kohor te caktuar (zakonisht ~ 24 ore) Cdo kompjuter pune (WN) mund te jete multi-core Paralelizimi ne grid eshte i mundur kur te dhenat fillestare te aplikimit mund te coptohen dhe perpunohet ne menyre te pavarur ne WN te dnryshme, ose kur perdoret MPI qe mundeson shkembimin e te dhenave midis proceseve ne WN te ndryshme 14
15 ARKITEKTURA E KUJTESAVE Kategorizimi i Kujtesave Perseritje: Thread dhe Procese Nje nga dallimet midis thread dhe procese eshte puna me kujtesen: Kujtesa e perbashket RAM RAM RAM kujtese vetiake kujtese vetiake kujtese vetiake proces_0 proces_1 proces_2 thread_0 thread_1 thread_2 Thread ndajne te njejten zone kujtese, ndoshta duke patur dhe dicka personale Thread mund te komunikojme midis tyre nepermjet kujteses kryesore te perbashket Proceset perdorin [seksione] te vecanta kujtese Proceset mund te komunikojne midis tyre me ndihmen e sistemit te shfrytezimit Perfundime: Kategorizimi i kujtesave E pare ne kendveshtimin e harduerit, si thread dhe procese jane kode ne ekzekutim ne ne ndonje CPU (alias core)komunikimi midis CPU dhe RAM behet nepermjet kujtesave cache te cdo CPU: RAM cache cache cache cache core_0 core_1 core_2 Ne nje CPU mund te ndodhet nje cache e perbashket per te tera core-t dhe cdo core te kete cache e vet Kjo logjike mund te shtrihet ne sistemet e shperndara Si rregull ne sistemet e shperndara cdo nyje (computer node) ka RAM e vet, dhe nuk ka komunikim direkt midis RAM ne nyjet e vecanta, pervetse nepermjet sistemeve te shfrytezimit dhe midleuerit te nevojshem Ne rastin e nje cluster me PC kemi: PC_a PC_b PC_c core_0 core_1 core_0 core_1 core_0 core_1 cache cache cache cache cache cache cache cache cache RAM RAM RAM OS + Midleuer LAN 15
16 E pare ne teresi, cdo core ka cache e vet, grupet PC me core kane kujtesa dhe cache te perbashketa grupet PC me core kane RAM te perbashket Perfundimi: dallohen tre kategori kujesash: 1 kujtesa e shperndare 2 kujtesa e ndare/perbashket [shared] 3 kujtesa cache a) vetiake e cdo core b) e perbashket si CPU Problem me kujetsen e ndare: konkurimi per kapjen e kujteses nga thread/procese konkurente (ne te njekten CPU) Ky kategorizim percakton dhe teknikat e programimit paralel (dhe ne pergjithesi te programimit te sistemeve te shperndara): 1 Shkembimet midis proceseve ne CPU te ndryshme dhe kujteses te shperndare behen vetem nepermjet midleuerit - MPI 2 Shkembimet midis thread ne nje CPU dhe kujteses te ndare/perbashket behen si nepermjet midleuerit MPI dhe OpenMP 3 Cache kontrollohet nga hardueri duhet mare ne konsiderate per te patur performance ne kohe Optimizimi i punes mund te realizohet nese midis CPU perdoret MPI dhe midis core ne nje CPU perdoret OpenMP, vecanerisht nese hardueri eshte i tipit multithread Sistemet paralele me kujtese te perbashket Ndersa ne sistemet cluster cdo CPU ka pak core, kemi dhe sisteme paralele te integruara ku shume core (qindra ) ndajne te njejten RAM: RAM core core core core core core core core core core Ndersa ne nje cluster duhet te perdorim MPI per komunikimin midis proceseve, nje sistem te tille me kujetse te perbashket mund te punohet edhe vetem me OpenMP Por platforma te tilla jane te 16
17 pakta Ne shumicen e rasteve sistemet paralele bazohen ne cluster Kujtojme se sistemet cloud pergjithesisht realizohen ne cluster Ne dallim nga cluster tradicional si grup PC i lidhur ne LAN, ne sistemet paralele te ketij lloji per lidhjen midis tyre te CPU perdoren sitch me gjeresi bande disa [dhjetra] Gbps Kujtesa ne sistemet GPU Organizimi tipik i arkitektures GPU: core core core core core core core core cache core core core core core core core core cache core core core core core core core core cache core core core core core core core core cache BUS CPU Cfare mund te thuhet: RAM Kujtesa e Perbashket Core jane grupuar ne blloqe, cdo bllok ka kujtesen e vet ( cache ) => e vogel Bashkesia e blloqeve ndan kujtesen e perbashket => e madhe Kodi paralel duhet te kopjohet nga RAM ne kujtesen e GPU per tu ekzekutuar sipas SIMD neper core Te dhenat dhe rezultate duhet te shkembehen midis RAM dhe kujteses te GPU Thread brenda nje blloku duhet te konkurojne per kapjen e cache, nderkohe qe core ne pergjithesi duhet te konkurojne per kapjen e kujteses te perbashket Problemi eshte ne shkrim!!! Shfrytezimi efektiv i kapaciteteve paralele te GPU kerkoj jo vetem algoritmimin duke konsideruar paralelizimin SIMD, por dhe koston nga shfrytezimi i kujteses: shkembimi i te dhenave midis RAM dhe GPU shfrytezimi i kujteses te GPU nga thread 17
18 Kujtesa e Jashtme dhe Skedaret Kujtesa e jashtme nenkupton disqet magnetike (Hard Disk Devices) dhe paisjet e tjera si CD dhe USB-memory-stick Ne sistemet paralele te tipit cluster nyjet kompjuter (me Sistemin e Shfrytezimit OS dhe Sistemin e Skedareve FS vetiake) te vecanta kane disqet e tyre te vecanta dhe komunikimi me to mund te behet nepermjet NFS (Netork File System) RAM RAM RAM RAM RAM RAM CPU CPU CPU CPU CPU CPU HDD HDD HDD HDD HDD HDD OS/FS OS/FS OS/FS OS/FS OS/FS OS/FS N F S L A N Pavaresisht nga shkalla e integrimit te sistemit paralel dhe perdorimi i NFS, puna me skedaret paraqet problemin e konkurences disa thread / procese paralele punojne ne kuadrin e te njejtit algoritem per te njejtin problem dhe probabiliteti qe te lexojne dhe shkruajne ne njejtet skedare eshte i larte Rezikshemria e kompromentimit te te dhenave nga konkurenca e pa kontrolluar varion ne varesi te menyres te kapjes te skedareve: Menyra e Kapjes N procese ne lexim N procese ne lexim 1 proces ne shkrim N procese ne shkrim Rezikshmeria Nuk ka E mesme E larte Problematika Nuk ka Mund te shkaktoje prishje te sinkronizimit te punes midis proceseve Proceset mund te prishin te dhenat e njeri tjetrit Problem tjeter eshte ndarja e nje skedari ne copa per proceset e ndryshme paralele: Proces 0 Proces 1 Proces 2 Proces 3 Proces 4 Proces 5 V V V V V V Copa I Copa II Copa III Copa IV Copa V Copa VI Skedaret vetem ne lexim mund te happen ne menyren e zakonshme, por nese proceset duhet ta ndajne copat e skedarit programisti duhet te parashikoje kapjen relative 18
19 Zgjidhja universale eshte puna konkurente me skedaret, qe nenkupton cdo proces kap ne lexim / shkrim vetem copen e tij Kjo mund te behet me procedurat perkatese qe ofrohen nga librarite e programimit paralel OpenMP nuk ka parashikon trajtim te konkurences per skedaret dhe pergjegjesia bije mbi programistin MPI parashikon procedurat per konkurencen e skedareve: skedari shikohet si bashkesi qelizash me ndihmen e pamjes/maskes (vie): zhvendosja ne bajte (pointer) e pamejs nga fillimi skedarit tipi elementar (?) i te dhenave (etype), [variabel i thjeshte ose strukture] pamja-maske mbi skedarin (filetype) futet kuptimi i tipit derivat te te dhenave (derived data type) shembull: nqs 'x' eshte etype qe perfaqeson nje qelize, 'oxxooo' eshte nje tip derivat qe perfaqeson qelizen e dyte dhe te trete te nje skedari, ku 'o' perfaqeson vrime (qelize qe nuk konsiderohet) ~ alias filetype Per tre procese pamja ne fillim te skedarit do te ishte (shembull): (0, X, XXOOOO) ~ procesi i pare kap dy qelizat e para (0, X, OOXXOO) ~ procesi i dyte kap qelizat e trete dhe katert (0, X, OOOOXX) ~ procesi i trete kap qelizat e peste dhe gjashte Me tej pamja mund te zhvendoset duke avancuar pointer ne fillimin e grupit te dyte te qelizave, respektivisht per secilin proces: (sizeof(xxxxxx), X, XXOOOO) (sizeof(xxxxxx), X, OOXXOO) (sizeof(xxxxxx), X, OOOOXX) Procesi i pare e shikon skedarin si: XXOOOO XXOOOO XXOOOO XXOOOO Procesi i dyte e shikon skedarin si: OOXXOO OOXXOO OOXXOO OOXXOO Procesi i trete e shikon skedarin si: OOOOXX OOOOXX OOOOXX OOOOXX cdo proces punon me qelizen e vet duke perdorur funksionet specifike te MPI: MPI_File_Open MPI_File_Write MPI_File_Read MPI_File_Close 19
20 KOMUNIKIMI MIDIS PROCESEVE Paralelizimi i te Dhenave dhe Rasti i OpenMP Tre kategori problemesh: 1 Paralelizimi i plote Te dhenat fillestare mund te perpunohen teresisht vecas Shembull: mbledhja e dy vektoreve c[i] = a[i] + b[i] 2 Paralelizimi i pjesshem Bashkesia {i=1,,n} mund te ndahet ne copa te pavarura {{i=ns,nt}} Rezultati final meret nga bashkimi mekanik i copave Perpunimi mund te behet ne nje bashkesi procesesh paralele qe kryejne te njejten skeme llogaritjesh, pa nevoje nderkomunikimi (per shkak llogaritjesh) midis tyre Llogaritjet mund te kryhen ne grup kompjuterash te pavarur, duke ndare punen manualisht ose me ndihmen e nje midleare Tipike ne sistemet cluster / grid Te dhenat mund te coptohen ne copa te pavarura gjate perpunimit dhe keto copa mund te perpunohen ne paralel Shembull: shuma e elementeve te nje vektori S = Σ1n a[i] 3 Paralelizimi i veshtire nt Mund te ndahet ne copa te pavarura { S = Σns duhet te shumohen rezultatet nga copat paralele a[i] } por per rezultatin final Perpunimi mund te behet ne nje bashkesi procesesh paralele qe kryejne te njejten skeme llogaritjesh, por duhet realizuar nderkomunikimi midis tyre per shperndarjen dhe grumbullimin e rezultateve te pjeseshme Llogaritjet mund te kryhen ne nje kompjuter multi-procesor duke perdorur OpenMP ose ne nje cluster-grid duke perdorur MPI Te dhenat pjeserisht mund te perpunohen pavaresisht nga njera tjetra nga procese te vecante qe kryejne detyra te ndryshme (skema logaritese te ndryshme) dhe kane nevoje per nderkomunikim te rastit midis tyre Llogaritjet mund te kryhen me perdorimin e MPI, RPC (Remote Procedure Calls) ose duke programuar direkt ne rrjet me socket 20
21 OpenMP Eshte teknike e thejshte paralelizimi qe mund te ndaje perpunimin e te dhenave (konkretisht nje cikel for) ne copa qe realizohen nga thread paralele Normalisht cdo thread kryen te njejten skeme llogaritese por me te dhena te ndryshme Megjithate duke perdorur funksionin omp_get_thread_num() programisti mund te kape numrin rendor te thread dhe te parashikoje ndryshime te skemes llogaritese ne thread te vecante Nderkomunikimi midis thread i mundshem vetem nepermjet ndarjes te te dhenave (fillestare ose rezultate te pjeseshme) ne kujtesen e perbashket (shared) Programisti duhet te kujdeset per konkurencen e thread ne kapjen e kujteses per shkrim per te shmangur perplasjet apo bllokimet reciproke RPC (Remote Procedure Call) RPC eshte me e gjere se kuadri i programimit paralel dhe mundeson zhvillimin e aplikimeve te shperndara (ku copat e ndryshme te aplikimit mund te ekzekutohen edhe paralelisht) duke zgjeruar kuptimin e thirrjes te procedurave nga brenda nje sistemi operativ (rasti klasik) midis sistemeve operative te ndryshme mbi nje rrjet (rasti i shperndare - thirrje ne distance: Per realizimin e thirrjes te nje procedure ne distance veprohet sipas parimit klient server Procesi ne makinen A (klienti) kerkon te therrase nje procedure ne makinen B (serveri) 21
22 Qe te mund te behet nje gje e tille duhet: a Ne makinen klient A programi qe kerkon thirrjen duhet te kete te inkorporuar (gjate kompilimit+lidhjes) procedurat e RPC per thirrje ne distance, konkretisht rpc_call(), ku si parameter jepen identifikuesi i procedures qe duhet thirrur ne makinen server B dhe te dhenat e nevojshme Programisti i programit klient nuk merret me detajet si realizohet thirrja b Ne makinen server B duhet te jete aktiv sherbimi RPC qe pret thirrjet nga distanca, organizon realizimin e tyre ne lokal dhe dergimin e rezultateve ne makinen klient Per te siguruar pavresine e sistemit RPC nga shumellojshmeria e procedurave, thirrja ne makinen klient lehtesohet nepermjet nje cope kodi stub klient qe pergatit thirrjen ne varesi te detajeve te procedures qe thirret Ne makinen server sherbimi RPC ndihmohet nga nje tjeter stub server qe merret me detajet e thirrjes te procedures konkrete Praktikisht ne te tre makinat ku behet: zhvillimi i aplikimit ekzekutimi i programit klient ekzekutimi i procedurave te thirrura nga distanca duhet te jete instaluar paketa perkatese e softuerit RPC Procedurat RPC parakompilohen me ndihmen e komandes rpcgen, e cila krijon kater skedare ne gjuhen C: rpcgen rpcprogx rpcprog_clntc ~ kodi i stub klient rpcprog_svcc ~ kodi i stub server rpcprog_xdrc ~ kodi per exxternal Data Representation rpcprogh ~ kodi header perkates Keto skedare perfshihen ne kompilimin e aplikimit RPC eshte e pavarur nga lloji i platformes harduer dhe softuer te makinave klient dhe server Kjo gje mundeson bashkeveprimin e sistemeve te ndryshme ne rrjet, nderkohe qe vete puna e RPC nderlikohet ngaqe duhet te kujdeset per formatet e te dhenave (qe eventualisht mund te jene te ndryshme ne makinat A dhe B) Procedurat RPC ne makinen server duhet te regjistrohen qe te njihen dhe te mund te aktivizohen nga sherbimi RPC me ndihmen e procedures rpc_reg() Ekziston edhe nje numer procedurash te gatshme (te regjistruara) qe ndodhen ne librarine librpcsvc Thirrja e nje procedure ne distance behet me proceduren rpc_call(), qe ka nente parametra: 22
23 int rpc_call ( ) char *host, u_long prognum, u_long versnum, xdrproc_t inproc, char *in, xdrproc_t outproc, char *out, char *nettype, // server name // numri i procedures ne sever // versioni i serverit // filtri XDR per kodimin e argumentave // pointer per argumentat // filtri XDR per kodimin e rezultateve // adresa ku do te vendosen rezultatet // lloji i transportit ne rrjet Nga nje interpretim i kuptimit te prametrave, cdo procedure e PRC identifikohet me nje numer ne server: ne grupe 0x sipas skemes: 0x0-0x1fffffff ~ paracaktuar nga IANA 0x x3fffffff ~ percaktohet / propozohet nga perdoruesit 0x x5fffffff ~ transient 0x x ~ e rezervuar Ka dhe disa procedura RPC klient te gatshme, qe mund te thirren pa ndihmen e rpc_call: Routine rnusers rusers havedisk rstats rall Description Return number of users on remote machine Return information about users on remote machine Determine if remote machine has disk Get performance data from remote kernel Write to specified remote machines Disa procedura te tjera si ether(), mount(), rquota(), spray() nuk gjenden ne librarite e gatshme por kane numrat perkates te paracektuar Nje liste e pjesshme e procedurave RPC te para-numeruara eshte: RPC Number Program Description PMAPPROG port mapper RSTATPROG remote stats RUSERSPROG remote users NFSPROG netork file system YPPROG yello pages 23
24 Ne transmetimin e te dhenave (argumenta dhe rezultate) RPC perdor nje format standard te pavarur nga platformat External Data Representation (XDR) Te dhenat serializohen ne formatin XDR para dergimit dhe deserializohen ne marrje, veprime qe kryhen nga nga stub perkates Te dhenat elementare serializohen ne 4 bajt pavaresisht nga tipi i tyre ne makinen konkrete Tipet baze jane: xdr_int() xdr_u_int() xdr_enum() xdr_long() xdr_u_long() xdr_bool() xdr_short() xdr_u_short() xdr_rapstring() xdr_char() xdr_u_char() si dhe blloqet parafabrikuese : xdr_array() xdr_bytes() xdr_reference() xdr_vector() xdr_union() xdr_pointer() xdr_string() xdr_opaque() Programisti gjate zhvillimit te nje aplikimi qe perdor RPC duhet: harton kodin standard ne C per aplikimin duke parashikuar thirrjet e procedurave RPC harton kodin specifik RPC dhe e parakompilon me rpcgen percakton tipet e te dhenave argument dhe rezultat per procedurat RPC percakton numrat e procedurave RPC ne segmentin e rezervuar per perdoruesit bashkon kodin standard C me skedaret e prodhuar nga rpcgen kompilon kodin e bashkuar Protokolli RPC eshte percaktuar nga IETF fillimisht ne RFC1831 ne 1995 (versioni 1) dhe modifikuar me RFC5531 [ ne 2009 (versioni 2) Perdoruesit mund te aplikojne tek IANA per zyrtarizimin e numrave te procedurave RPC vetiake Shenim: IANA eshte Internet Assigned Numbers Authority [ dhe administron klasat e numrave IP, serverat rrenje te sistemit DNS dhe protokollet IETF eshte Internet Engineering Task Force [ dhe perpunon standardet dhe specifikimet e protokolleve te Internetit 24
25 MESSAGE PASSING INTERFACE (MPI) Behet fjale per klonimin e nje processi ne disa procese paralele, gje qe lejon kryerjen e llogaritjeve paralele ne disa CPU Teknologjia MPI realizon klonimin dhe komunikimin midis proceseve E ekzekutuar ne nje makine (nje sistem shfrytezimi i vetem), MPI mundeson shfrytezimin paralel te disa core te CPU Ndersa ne rast perdorimi ne cluster do te duhet dhe nje middleare dispetcer per te shperndare proceset e klonuara ne makina te ndryshme, zgjidhje qe perdoret ne sistemet grid Krahasuar me OpenMP, kjo e fundit punon me thread paralele qe ndajne te njejten hapesire kujtese (klonimi konsiston ne shumefishimin e PCB dhe ndoshta te ndonje cope kujtese per variabla private) Klonimi iproceseve nenkupton shumefishimin e gjithe hapesires te kujteses qe ze procesi baze, gje qe kerkon hapesire kujtese dhe kohe pune te sistemit Per kete aresye paralelizimi me OpenMP mund te coptohet gjate kodit, ndersa ai me MPI eshte mire te behet ne fillim te procesit baze Ne rastin e MPI duhet te perdoret identifikimi i proceseve per te kontrolluar kush nga proceset do te kryeje llogaritje paralele e kush sekuenciale Per krahasim jepet figura e meposhtme: T0 T1 T2 T3 T4 T5 P0 P1 P2 P3 P4 P5 ku: Thread / proces baze Perpunim paralel 25
26 Krijimi i proceseve paralele MPI Si rregull, klonimi i proceseve ne MPI behet ne fillim te procesit baze duke thirrur proceduren: MPI_Init (&argc,&argv) Kjo procedure thirret vetem nje here dhe para thirrjes te procedurave te tjera te MPI Dy argumentat sherbejne per te derguar ne proceset e klonuar vlerat e parametrave te ekzekutimit te programit Ne fund te punes ne te tere proceset duhet te ekzekutohet thirrja e procedures MPI_Finalize() Numri identifikues i proceseve paralele eshte i rendesishem per te dalluar segmentet e kodit sekuencial nga ato paralele Per me teper numri i proceseve paralele percaktohet ne komanden e ekzekutimit te programit (ndryshe nga OpenMP ku ky numer vendoset ne direktiven #pragma ne kodin e programit) Per keto aresye si rregull pas thirrjes te MPI_Init perdoren dy procedura te tjerampi: ku: MPI_Comm_size (comm,&size) MPI_Comm_rank (comm,&rank) size ~ numri i proceseve paralele rank ~ numri identifikues i procesit konkret (duke filluar nga zero) comm ~ i ashtuquajturi communicator Ne MPI proceset paralele mund te grupohen dhe te komunikojne brenda grupeve Per kete qellim perdoret identifikuesi i communicator Ne do te kufizohemi ne rastin klasik me nje communicator MPI_COMM_WORLD Me tej, midis thirrjeve te procedurave te fillimit dhe mbarimit te sesionit MPI, programisti mund te perdore rankun e proceseve per te diferencuar punen qe do te kryejne (duke ndare pjeset sekuenciale te kodit nga ato paralele); si dhe procedurat e komunikimit midis proceseve per shkembimin e te dhenave ndermjetese gjate llogaritjeve dhe per te sinkronizuar veprimet midis proceseve paralele Komunikimi Midis Proceseve MPI Komunikimi midis proceseve behet me nderhyrjen e sistemit te shfrytezimit (dhe middleare nese eshte edhe ky funskional) Mesazhet nga buffer i aplikimit dhenesi depozitohen ne buffer te sistemit dhe prej andej kapen nga marresi kur ky i fundit therret proceduren perkatese (qe kryen transferimin nga buffer i sistemit ne ate te aplikimit): 26
27 Procesi A SISTEMI Procesi B MPI_Send (buffer) buffer (buffer) MPI_Recv Procedurat tipike te komunikimit midis proceseve kategorizohen sipas tabeles: proces me proces (point-to-point) komunikim ne grup (collective) bllokuese asinkrone sinkrone MPI_Send MPI_Recv MPI_Ssend MPI_Recv MPI_Bcast MPI_Scatter MPI_Gather MPI_Barrier MPI_Reduce jo-bllokuese asinkrone sinkrone MPI_Isend MPI_Irecv MPI_Issend + MPI_Wait / MPI_Test MPI_Irecv Klasifikimi bllokues / jo-bllokues ka te beje me cfare ndodh kur nje proces dergon nje mesazh: bllokohet deri sa te transferohet mesazhi ne buffer te sistemit, apo nuk bllokohet pavaresisht nese mesazhi eshte bere ky transferim Klasifikimi asinkron / sinkron ka te beje me me cfare ndodh kur nje proces dergon nje mesazh: bllokohet (sinkrone)deri sa te konfirmohet marrja apo vazhdon punen (asinkrone) me te dale mesazhi nga buffer i vet drejt atij te sistemit Bllokimi sinkron ben sinkronizim midis proceseve Ne kategorine e komunikimeve ne grup MPI_Barrier eshte e dedikuar per sinkronizimin Procedurat si MPI_Bcast,MPI_Scatter,MPI_Gather mund te jene sinkronizuese ose jo ne varesi te librarise MPI konkrete, Pergjithesisht bllokimi he sinkronizimi mund te kene specifika te vecanta ne librari MPI te dnryshme Procedurat e tipit MPI_Send dhe MPI_Recv sherbejne per dergimin dhe marjen e mesazhit nga nje proces tek nje tjeter Procedura MPI_Bcast mundeson dergimin e nje mesazhi nga nje proces tek gjithe proceset e tjere te grupit Cifti i procedurave MPI_Scatter dhe MPI_Gather sherbejne per coptimin e nje array (bashkesi te dhenash vektor, matrice, string etj) midis proceseve te grupit, dhe ribashkimin e saj; keto jane procedura tipike per coptimin e te dhenave per perpunim paralel ne nje grup procesesh paralele MPI_Reduce bashkon grupe te dhenash duke kryer veprime me elementet korespondues (shiko specifikimin me poshte) 27
28 Parametrat e Procedurave ne MPI Dallojme disa raste komunikimi MPI_Barrier (comm) ku: comm ~ communicator ku: MPI_Bcast (*buffer, count, datatype, root, comm) buffer ~ pointer i buffer me te dhena count ~ numri i elementeve ne buffer datatype ~ tipi i te elementeve ne buffer root ~ ranku i procesit dergues comm ~ communicator ku: MPI_Send (&bufer, count, datatype, destination, tag, comm) buffer ~ pointer i buffer me te dhena count ~ numri i elementeve ne buffer datatype ~ tipi i te elementeve ne buffer denstination ~ ranku i procesit marres tag ~ numer natyral per identifikimin e mesazhit comm ~ communicator ku: MPI_Recv (&buffer,count,datatype,source,tag,comm,&status) buffer ~ pointer i buffer me te dhena count ~ numri i elementeve ne buffer datatype ~ tipi i te elementeve ne buffer source ~ ranku i procesit dergues tag ~ numer natyral per identifikimin e mesazhit comm ~ communicator status ~ strukture e perbere nga rank dhe tag {MPI_StatusMPI_SOURCE, MPI_StatusMPI_TAG) Procedurat MPI_Scatter, MPI_Gather bazohen tek coptimi i nje bashkesi te dhenash dhe shperndarja e copave ne procese sipas skemes 1 <=> n : 28
29 P0 P1 P2 P3 P4 b0 = a0 b0 = a3 b0 = a6 b0 = a9 b0 = a12 b1 = a1 b2 = a4 b1 = a7 b1 = a10 b1 = a13 b2 = a2 b2 = a5 b2 = a8 b2 = a11 b2 = a14 a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12 a13 a14 Ndryshe vepron MPI_Reduce: P0 P1 P2 P3 P4 b0 b0 b0 b0 b0 b1 b2 b1 b1 b1 b2 b2 b2 b2 b2 a0=@b0 a1=@b1 a2=@b2 ku '@' simbolizon kombinimin e gjithe elementeve bi sipas nje veprimi '@', shembull ai = Σ bi 29
30 ku: MPI_Scatter ( &sendbuf,sendcount,sendtype, &recvbuf,recvcount,recvtype,root,comm) sendbuf ~ pointer i buffer me te dhenat qe dergohen (ex &A[rank*count]) sendcount ~ numri i elementeve qe dergohen sendtype ~ tipi i te elementeve qe dergohen recvbuf ~ pointer i buffer me te dhenat qe merren recvcount ~ numri i elementeve qe merren recvtype ~ tipi i te elementeve qe merren root ~ ranku i procesit dergues comm ~ communicator ku: MPI_Gather ( &sendbuf,sendcount,sendtype, &recvbuf,recvcount,recvtype,root,comm) sendbuf ~ pointer i buffer me te dhenat qe dergohen sendcount ~ numri i elementeve qe dergohen sendtype ~ tipi i te elementeve qe dergohen recvbuf ~ pointer i buffer me te dhenat e plota (ex &A[0]) recvcount ~ numri i elementeve qe merren recvtype ~ tipi i te elementeve qe merren root ~ ranku i procesit marres comm ~ communicator ku: MPI_Reduce (&sendbuf,&recvbuf,count,datatype,oper,root,comm) sendbuf ~ pointer i buffer me te dhenat qe dergohen (ex &A[rank*count]) recvbuf ~ pointer i buffer me te dhenat qe merren count ~ numri i elementeve qe merren datatype ~ tipi i te elementeve qe dergohen oper ~ tipi i veprimit (MPI_MIN, MPI_MAX, MPI_SUM, MPI_PROD, ) root ~ ranku i procesit marres comm ~ communicator Procedura te tjera si MPI_Allgather, MPI_Allreduce kryejne veprimet perkatese por sipas skemes n <=> n MPI_Allgather(&sendbuf,sendcnt,sendtyp,&recbuf,reccnt,rectyp,comm) MPI_Allreduce (&sendbuf,&recvbuf,count,datatype,oper,comm) Sic vihet re, ne keto raste mungon ranku i procesit rrenje (root) qe shperndan ose mbledh te dhenat Me interes eshte dhe procedura e leximit te ores te sistemit, qe lejon te vleresohet koha e llogaritjeve (alltime) : 30
31 double start_time, end_time, exe_time; start_time = MPI_Wtime(); end_time = MPI_Wtime(); exe_time = end_time start_time; Walltime eshte koha nga fillimi i ekzekutimit te nje cope kode deri ne mbarim, duke eprfshire dhe intervalet e pritjes (koha ne gjendjet GATI dhe PRITJE te procesit) Gjetja e kohet neto te ekzekutimit, kohes te punes te sistemit per llogari te procesit dhe perqindjen e punes te CPU per procesin mund te behet (ne sistemet Linux) duke kryer ekzekutimin nepermjet komandes /usr/bin/time: (/usr/bin/time /program ) 1>timeout 2>timeout (/usr/bin/time mpirun /program ) 1>timeout 2>timeout rezultati i te ciles ne skedarin tekst timeout ka trajten: 9615 user system 0:0867 elapsed 5029% CPU (0avgtext+0avgdata maxresident)k 0inputs+48outputs (0major minor)pagefaults 0saps ku: user ~ koha neto shumore e ekzekutimit te grupit te proceseve paralele system ~ koha neto shumore e punes te sistemit elapsed ~ koha nga fillimi i ekzekutimit te programit ne mbarimin e tij e shprehur ne [[ore:]minuta:]sekonda CPU ~ perqindja shumore e punes e cores te CPU per grupin e proceseve paralele Koha mesatare e nje thread / proces gjendet si raport i kohes user me numrin e proceseve Perqindja e punes e nje core te CPU gjendet si raport i CPU% me numrin e cores 31
32 ZHVILLIMI I PROGRAMEVE PARALELE Coptimi dhe Paralelizimi i Algoritmit Programet paralele ofrojne efektivitetin maksimal ne kohe kur paralelizimi i algoritmit behet ne perputhje me topologjine e harduerit paralel ku do te ekzekutohet programi Efektiviteti kushetzohet nga disa faktore qe lidhen me konkurencen misis proceseve paralele: koha e CPU (nese procese me shume se core) kapja e BUS per komunikim me njesite e tjera te harduerit puna me kujtesen cache per cores qe e kane te perbashket (kapja dhe permbajtja) puna me kujtesen e ndare puna me kujtesat e jashtme puna me kontrolloret e rrjetit etj Ne parim mund te dallohen kater topologji sistemesh paralele: 1 vektor (linear array) procesoresh 2 Peme binare procesoresh 3 matrice (to-dimensional mesh) procesoresh 4 bashkesi procesoresh me variabla te ndare (shared) Karaketrizimi i topologjive per nje grup me p procesore behet me parametrat e perkufizuar si: diametri ~ me e gjata nga distancat me te shkurtra midis dy procesoreve grada maksimale e nyjes (maximum node degree) ~ maksimumi i kanaleve te nderkomunikimit te nje procesori me procesoret e tjere W(p) ~ numri total i veprimeve elementare te kryer nga p procesoret (puna / energjia kompjuterike) T(p) ~ koha e ekzekutimit me p procesore T(1) = W(1) dhe T(p) W(p) Pershpejtimi S(p) = T(1) / T(p) Eficensa E(p ) = T(1) / (p*t(p)) 32
33 bolleku (redundancy) R(p) = W(p) / W(1) Perdorimi U(p) = W(p) / (p*t(p)) Cilesia Q(p) = T^3(1) / (p*t^2(p)*w(p)) Shembull: shuma e 16 numrave ne topologji paralele binare me 8 procesore: T(1) = W(1) = 15 W(8) = 15 T(8) = 4 E(8) = 15/(8 4) = 47% S(8) = 15/4 = 375 R(8) = 15/15 = 1 Q(8) = 176 Eficensa e ulet eshte rezultat i munegses te paralelizimit afer rrenjes te pemes (fig) Po te llogariten si veprim elementar edhe transferimet (shigjetat ne figure) merret: W(8) = 22 T(8) = 7 E(8) = 15/(8*7) = 27% S(8) = 15/7 = 214 R(8) = 22/15 = 147 Q(8) =
34 Topologjia paralele vektor Shembull i topologjise paralele vektor jepet ne figure: Diametri i nje vektori prej p procesoresh eshte D = p 1 dhe shkalla maksimale e nyjeve d = 2 Krahasuar me topologjine tipike vektor, topologjia e modifikuar unaze (ring) ka D = [p/2] Topologjia paralele peme binare Shembull i topologjise paralele binare jepet ne figure (kujto vetite e pemeve pemet e balancuara, pemet komplete etj): Per topologjine peme binare grada e nyjeve eshte d = 3, ndersa diametri varet nga tipi i pemes: pema e komplete D = 2 log2 (p + 1) 2 pema e balancuar D = 2 log2 p 2 log2 p 1 ne varesi te nivelit te gjetheve Topologjia paralele matrice eshte si ne figure (rasti i thjeshte dhe ai toroidal) 34
35 Diametri i topologjise matrice me p = r*q procesore eshte D = D = r + q 2 dhe minimizohet ne rastin e matricave katrore D = 2 r 2 Ne rastin e matrices toroidale D = r/2 + q/2, ndersa grada e nyjeve ne te dy rastet eshte d = 4 Topologjia me kujtese te ndare mund te modelohet si nje graf i plote (ku cdo nyje lidhet me tere nyjet e tjera): 35
36 Ne topologjite graf i plote me p procesore grada e nyjeve eshte d = p 1 ndersa diametri D = 1 Me gjithe perparesite teorike, sistemi paralel me topologji graf i plote eshte shume i veshtire per tu realizuar Shembull renditje ne topologji vektoriale: 36
37 Hapat per daljen e rezultateve nuk jane paraqitur Supozohet se sistemi i procesoreve mund te lexoje/shkruaje nga kujtesa nje vlere ne cdo hap Duke supozuar se te dhenat jane neper procesore, mund te perdoret renditja tek-cift : 37
38 Shembull: renditje ne topologji peme binare Bobble Sort ne dy faza: faza I: cdo nyje mer vlerat me te vogla nga nen-pemet perkatese => minimali ne rrenje (fig) faza II: rrenja shperndan elementet sipas rradhes ne nyjet bij te saj Ne rastin me te keq te gjithe vlerat duhet te kalojne neper rrenje ~ gryka e shishes 38
39 Shembull: renditja me prerje (shearsort) ne topologji matrice: Renditja kryhet ne (log2r) + 1 faza: 1 rrjeshtat renditen ne forme gjarperi : cift ne rritje tek ne zbritje 2 kollonat renditen nga lart poshte 3 ne fazen e fundit rrjeshtat rirenditen te pavarur Kompleksiteti i Algoritmeve Paralele 39
Algoritmet dhe struktura e të dhënave
Universiteti i Prishtinës Fakulteti i Inxhinierisë Elektrike dhe Kompjuterike Algoritmet dhe struktura e të dhënave Vehbi Neziri FIEK, Prishtinë 2015/2016 Java 5 vehbineziri.com 2 Algoritmet Hyrje Klasifikimi
Ligji I Ohmit Gjatë rrjedhës së rrymës nëpër përcjellës paraqitet. rezistenca. Georg Simon Ohm ka konstatuar
Rezistenca elektrike Ligji I Ohmit Gjatë rrjedhës së rrymës nëpër përcjellës paraqitet rezistenca. Georg Simon Ohm ka konstatuar varësinë e ndryshimit të potencialit U në skajët e përcjellësit metalik
PASQYRIMET (FUNKSIONET)
PASQYRIMET (FUNKSIONET) 1. Përkufizimi i pasqyrimit (funksionit) Përkufizimi 1.1. Le të jenë S, T bashkësi të dhëna. Funksion ose pasqyrim nga S në T quhet rregulla sipas së cilës çdo elementi s S i shoqëronhet
Υπολογιστικές Μέθοδοι Ανάλυσης και Σχεδιασµού Υπολογιστικό Εργαστήριο Μάθηµα 1 Εισαγωγή στο MPI http://ecourses.chemeng.ntua.gr/courses/computational_methods Αρχιτεκτονικές Παράλληλων Υπολογιστών Shared
Rrjetat Kompjuterike. Arkitektura e rrjetave Lokale LAN. Ligjerues: Selman Haxhijaha
Rrjetat Kompjuterike Arkitektura e rrjetave Lokale LAN Objektivat Topologjitë logjike dhe fizike të rrjetave lokale LAN Standardet e rrjetave Ethernet Llojet e rrjetave kompjuterike Performanca e rrjetes
Αρχιτεκτονική κοινής μνήμης
Αρχιτεκτονική κοινής μνήμης Οι επεξεργαστές έχουν κοινή μνήμη Κάθε επεξεργαστής διαθέτει τοπική ιεραρχία κρυφών μνημών Συνήθως η διασύνδεση γίνεται μέσω διαδρόμου μνήμης (memory bus) Αλλά και πιο εξελιγμένα
DELEGATET DHE ZBATIMI I TYRE NE KOMPONETE
DELEGATET DHE ZBATIMI I TYRE NE KOMPONETE KAPITULLI 5 Prof. Ass. Dr. Isak Shabani 1 Delegatët Delegati është tip me referencë i cili përdorë metoda si të dhëna. Përdorimi i zakonshëm i delegatëve është
REPUBLIKA E SHQIPËRISË MINISTRIA E ARSIMIT DHE E SHKENCËS AGJENCIA KOMBËTARE E PROVIMEVE PROVIMI ME ZGJEDHJE I MATURËS SHTETËRORE 2011
KUJDES! MOS DËMTO BARKODIN BARKODI REPUBLIKA E SHQIPËRISË MINISTRIA E ARSIMIT DHE E SHKENCËS AGJENCIA KOMBËTARE E PROVIMEVE PROVIMI ME ZGJEDHJE I MATURËS SHTETËRORE 2011 S E S I O N I II LËNDA: KIMI VARIANTI
REPUBLIKA E SHQIPËRISË MINISTRIA E ARSIMIT DHE E SHKENCËS AGJENCIA KOMBËTARE E PROVIMEVE PROVIMI ME ZGJEDHJE I MATURËS SHTETËRORE 2011
KUJDES! MOS DËMTO BARKODIN BARKODI REPUBLIKA E SHQIPËRISË MINISTRIA E ARSIMIT DHE E SHKENCËS AGJENCIA KOMBËTARE E PROVIMEVE PROVIMI ME ZGJEDHJE I MATURËS SHTETËRORE 2011 S E S I O N I II LËNDA: KIMI VARIANTI
Algoritmika dhe Programimi i Avancuar KAPITULLI I HYRJE Algoritmat nje problem renditjeje Hyrja: a1, a2,, an> Dalja: <a 1, a 2,, a n> a 1 a 2 a n.
KAPITULLI I HYRJE Algoritmat Ne menyre informale do te perkufizonim nje algoritem si nje procedure perllogaritese cfaredo qe merr disa vlera ose nje bashkesi vlerash ne hyrje dhe prodhon disa vlera ose
Nyjet, Deget, Konturet
Nyjet, Deget, Konturet Meqenese elementet ne nje qark elektrik mund te nderlidhen ne menyra te ndryshme, nevojitet te kuptojme disa koncepte baze te topologjise se rrjetit. Per te diferencuar nje qark
paraqesin relacion binar të bashkësisë A në bashkësinë B? Prandaj, meqë X A B dhe Y A B,
Përkufizimi. Le të jenë A, B dy bashkësi të çfarëdoshme. Çdo nënbashkësi e bashkësisë A B është relacion binar i bashkësisë A në bashkësinë B. Simbolikisht relacionin do ta shënojmë me. Shembulli. Le të
Α ί τ η σ η Δ ή λ ω σ η σ υ μ μ ε τ ο χ ή ς
ΟΡΘΟΔΟΞΟΣ ΑΥΤΟΚΕΦΑΛΟΣ ΕΚΚΛΗΣΙΑ ΑΛΒΑΝΙΑΣ ΙΕΡΑ ΜΗΤΡΟΠΟΛΙΣ ΑΡΓΥΡΟΚΑΣΤΡΟΥ ΚΑΤΑΣΚΗΝΩΣΗ «Μ Ε Τ Α Μ Ο Ρ Φ Ω Σ Η» Γ Λ Υ Κ Ο Μ Ι Λ Ι Δ Ρ Ο Π Ο Λ Η Σ Α ί τ η σ η Δ ή λ ω σ η σ υ μ μ ε τ ο χ ή ς Πόλη ή Χωριό Σας
Συστήµατα Παράλληλης Επεξεργασίας. Message Passing Interface (MPI)
Message Passing Interface (MPI) Αρχιτεκτονική κοινής µνήµης Οι επεξεργαστές έχουν κοινή µνήµη Κάθε επεξεργαστής διαθέτει τοπική ιεραρχία κρυφών µνηµών Συνήθως η διασύνδεση γίνεται µέσω διαδρόµου µνήµης
Universiteti i Prishtinës Fakulteti i Inxhinierisë Elektrike dhe Kompjuterike. Agni H. Dika
Universiteti i Prishtinës Fakulteti i Inxhinierisë Elektrike dhe Kompjuterike Agni H. Dika Prishtinë 007 Libri të cilin e keni në dorë së pari u dedikohet studentëve të Fakultetit të Inxhinierisë Elektrike
NDËRTIMI DHE PËRMBAJTJA E PUNIMIT
NDËRTIMI DHE PËRMBAJTJA E PUNIMIT Punimi monografik Vështrim morfo sintaksor i parafjalëve të gjuhës së re greke në krahasim me parafjalët e gjuhës shqipe është konceptuar në shtatë kapituj, të paraprirë
MPI: Message Passing Interface
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων MPI: Message Passing Interface 9 ο Εξάμηνο Αρχιτεκτονική κοινής μνήμης Οι επεξεργαστές
ύο μηχανισμοί απαιτούνται: 1. Μία μέθοδος για τη δημιουργία διεργασιών
Υπολογισμός με βάση το πέρασμα μηνυμάτων Προγραμματισμός με πέρασμα μηνυμάτων ύο μηχανισμοί απαιτούνται: 1. Μία μέθοδος για τη δημιουργία διεργασιών που θα εκτελούνται σε διαφορετικούς υπολογιστές. 2.
Message Passing Interface (MPI)
Message Passing Interface (MPI) Συστήµατα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστηµάτων Αθήνα, Νοέµβριος 2003 24/11/2003 Message Passing Interface (MPI) 1 Παράλληλες αρχιτεκτονικές Αρχιτεκτονική
Q k. E = 4 πε a. Q s = C. = 4 πε a. j s. E + Qk + + k 4 πε a KAPACITETI ELEKTRIK. Kapaciteti i trupit të vetmuar j =
UNIVERSIEI I PRISHINËS KAPACIEI ELEKRIK Kapaciteti i trupit të vetmuar Kapaciteti i sferës së vetmuar + + + + Q k s 2 E = 4 πε a v 0 fusha në sipërfaqe të sferës E + Qk + + + + j = Q + s + 0 + k 4 πε a
Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 5: MPI_Reduce Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής
REPUBLIKA E SHQIPËRISË MINISTRIA E ARSIMIT DHE E SHKENCËS AGJENCIA QENDRORE E VLERËSIMIT TË ARRITJEVE TË NXËNËSVE PROVIMI I MATURËS SHTETËRORE 2008
KUJDES! MOS DËMTO BARKODIN Matematikë Sesioni I BARKODI REPUBLIKA E SHQIPËRISË MINISTRIA E ARSIMIT DHE E SHKENCËS AGJENCIA QENDRORE E VLERËSIMIT TË ARRITJEVE TË NXËNËSVE PROVIMI I MATURËS SHTETËRORE 008
Analiza e regresionit të thjeshtë linear
Analiza e regresionit të thjeshtë linear 11-1 Kapitulli 11 Analiza e regresionit të thjeshtë linear 11- Regresioni i thjeshtë linear 11-3 11.1 Modeli i regresionit të thjeshtë linear 11. Vlerësimet pikësore
Message Passing Interface (MPI)
Message Passing Interface (MPI) Συστήµατα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστηµάτων Αθήνα, εκέµβριος 2002 Τι είναι το MPI; Είναι πρότυπο, όχι συγκεκριµένη υλοποίηση Βιβλιοθήκη ανταλλαγής
VENDIM Nr.803, date PER MIRATIMIN E NORMAVE TE CILESISE SE AJRIT
VENDIM Nr.803, date 4.12.2003 PER MIRATIMIN E NORMAVE TE CILESISE SE AJRIT Ne mbështetje te nenit 100 te Kushtetutës dhe te nenit 5 te ligjit nr.8897, date 16.5.2002 "Për mbrojtjen e ajrit nga ndotja",
Kapitulli. Programimi linear i plote
Kapitulli Programimi linear i plote 1-Hyrje Për të gjetur një zgjidhje optimale brenda një bashkesie zgjidhjesh të mundshme, një algoritëm duhet të përmbajë një strategji kërkimi të zgjidhjeve dhe një
Kolegji - Universiteti për Biznes dhe Teknologji Fakultetit i Shkencave Kompjuterike dhe Inxhinierisë. Lënda: Bazat Teknike të informatikës - BTI
Kolegji - Universiteti për Biznes dhe Teknologji Fakultetit i Shkencave Kompjuterike dhe Inxhinierisë Lënda: Bazat Teknike të informatikës - BTI Dispensë Ligjërues: Selman Haxhijaha Luan Gashi Viti Akademik
Definimi dhe testimi i hipotezave
(Master) Ligjerata 2 Metodologjia hulumtuese Definimi dhe testimi i hipotezave Prof.asc. Avdullah Hoti 1 1 Përmbajtja dhe literatura Përmbajtja 1. Definimi i hipotezave 2. Testimi i hipotezave përmes shembujve
2.1 Kontrolli i vazhdueshëm (Kv)
Aneks Nr 2 e rregullores 1 Vlerësimi i cilësisë së dijeve te studentët dhe standardet përkatëse 1 Sistemi i diferencuar i vlerësimit të cilësisë së dijeve të studentëve 1.1. Për kontrollin dhe vlerësimin
Message Passing Interface (MPI)
Message Passing Interface (MPI) Συστήµατα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστηµάτων Αθήνα, Οκτώβριος 2009 21/10/2009 Message Passing Interface (MPI) 1 Παράλληλες αρχιτεκτονικές Αρχιτεκτονική
Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 5: MPI_Reduce Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής
MPI: Message Passing Interface
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων MPI: Message Passing Interface 9ο Εξάμηνο Αρχιτεκτονική κοινής μνήμης Οι επεξεργαστές έχουν
Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 4: MPI_ANY_TAG,MPI_ANY_SOURCE,MPI_Bcast, MPI_Wtime, MPI_Wait, MPI_Test, MPI_Scatter Δρ. Μηνάς Δασυγένης
BAZAT E INFRASTRUKTURES NË KOMUNIKACION
MANUALI NË LËNDEN: BAZAT E INFRASTRUKTURES NË KOMUNIKACION Prishtinë,0 DETYRA : Shtrirja e trasesë së rrugës. Llogaritja e shkallës, tangjentës, dhe sekondit: 6 0 0 0.67 6 6. 0 0 0. 067 60 600 60 600 60
AISHE HAJREDINI (KARAJ), KRISTAQ LULA. Kimia Inorganike. TESTE TË ZGJIDHURA Të maturës shtetërore
AISHE HAJREDINI (KARAJ), KRISTAQ LULA Kimia Inorganike TESTE TË ZGJIDHURA Të maturës shtetërore AISHE HAJREDINI (KARAJ), KRISTAQ LULA TESTE TË MATURËS SHTETËRORE Kimia inorganike S H T Ë P I A B O T U
Tregu i tët. mirave dhe kurba IS. Kurba ose grafiku IS paraqet kombinimet e normave tët interesit dhe nivelet e produktit tët.
Modeli IS LM Të ardhurat Kështu që, modeli IS LM paraqet raportin në mes pjesës reale dhe monetare të ekonomisë. Tregjet e aktiveve Tregu i mallrave Tregu monetar Tregu i obligacioneve Kërkesa agregate
Υπολογισμοί Μεταβίβασης Μηνυμάτων
Υπολογισμοί Μεταβίβασης Μηνυμάτων Κ.Γ. Μαργαρίτης προσαρμογή από το μάθημα του Barry Wilkinson ITCS 4145/5145 2006 Cluster Computing Univ. of North Carolina at Charlotte 2.1 2.2 Προγραμματισμός μεταβίβασης
ELEKTROSTATIKA. Fusha elektrostatike eshte rast i vecante i fushes elektromagnetike.
ELEKTROSTATIKA Fusha elektrostatike eshte rast i vecante i fushes elektromagnetike. Ajo vihet ne dukje ne hapesiren rrethuese te nje trupi ose te nje sistemi trupash te ngarkuar elektrikisht, te palevizshem
ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ. Της φοιτήτριας Αριστέας Χρονοπούλου Αρ. Μητρώου: 01 / Επιβλέπων Καθηγητής Αθανάσιος Μάργαρης
ΑΛΕΞΑΝ ΡΕΙΟ Τ.Ε.Ι. ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΤΟ ΜΟΝΤΕΛΟ ΜΕΤΑΒΙΒΑΣΗΣ ΜΗΝΥΜΑΤΩΝ MESSAGE PASSING INTERFACE (MPI) Της φοιτήτριας Αριστέας Χρονοπούλου Αρ.
Republika e Kosovës Republika Kosova - Republic of Kosovo
Republika e Kosovës Republika Kosova - Republic of Kosovo Autoriteti Rregullativ i Komunikimeve Elektronike dhe Postare Regulatory Authority of Electronic and Postal Communications Regulatorni Autoritet
Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 4: MPI_ANY_TAG,MPI_ANY_SOURCE,MPI_Bcast, MPI_Wtime, MPI_Wait, MPI_Test, MPI_Scatter Δρ. Μηνάς Δασυγένης
REPUBLIKA E SHQIPËRISË MINISTRIA E ARSIMIT DHE SHKENCËS INSTITUTI I ZHVILLIMIT TË ARSIMIT
REPUBLIKA E SHQIPËRISË MINISTRIA E ARSIMIT DHE SHKENCËS INSTITUTI I ZHVILLIMIT TË ARSIMIT PROGRAM ORIENTUES PËR PËRGATITJEN E PROVIMIT KOMBËTAR TË MATURËS SHTETËRORE LËNDA: GJUHA GREKE (gjuhë e huaj e
Message Passing Interface (MPI)
Message Passing Interface (MPI) Συστήµατα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστηµάτων Αθήνα, Νοέµβριος 2004 22/11/2004 Message Passing Interface (MPI) 1 Παράλληλες αρχιτεκτονικές Αρχιτεκτονική
Εισαγωγή. E-03: Λειτουργικά Συστήµατα ΙΙ 6. Εαρινό Εξάµηνο SUN RPC. Κλήση Αποµακρυσµένων ιαδικασιών (RPC) Σύνδεση: Port Mapper.
Εισαγωγή Ε-03: Λειτουργικά Συστήµατα ΙΙ Εαρινό Εξάµηνο 2005-06 Sun RPC MPI «Sun RPC & MPI» ρ. Παναγιώτης Χατζηδούκας (Π..407/80) E-03: Λειτουργικά Συστήµατα ΙΙ 1 E-03: Λειτουργικά Συστήµατα ΙΙ 2 Κλήση
Fluksi i vektorit të intenzitetit të fushës elektrike v. intenzitetin të barabartë me sipërfaqen të cilën e mberthejnë faktorët
Ligji I Gauss-it Fluksi i ektorit të intenzitetit të fushës elektrike Prodhimi ektorial është një ektor i cili e ka: drejtimin normal mbi dy faktorët e prodhimit, dhe intenzitetin të barabartë me sipërfaqen
Metodat e Analizes se Qarqeve
Metodat e Analizes se Qarqeve Der tani kemi shqyrtuar metoda për analizën e qarqeve të thjeshta, të cilat mund të përshkruhen tërësisht me anën e një ekuacioni të vetëm. Analiza e qarqeve më të përgjithshëm
KSF 2018 Student, Klasa 11 12
Problema me 3 pikë # 1. Figura e e mëposhtme paraqet kalendarin e një muaji të vitit. Për fat të keq, mbi të ka rënë bojë dhe shumica e datave të tij nuk mund të shihen. Cila ditë e javës është data 27
KSF 2018 Cadet, Klasa 7 8 (A) 18 (B) 19 (C) 20 (D) 34 (E) 36
Problema me 3 pië # 1. Sa është vlera e shprehjes (20 + 18) : (20 18)? (A) 18 (B) 19 (C) 20 (D) 34 (E) 36 # 2. Në qoftë se shkronjat e fjalës MAMA i shkruajmë verikalisht njëra mbi tjetrën fjala ka një
Bazat e Programimit në C++
Universiteti i Europës Juglindore Fakulteti i Shkencave dhe i Teknologjive të Komunikimit Agni Dika Bazat e Programimit në C++ 2005 U lejua për botim nga Komisioni për Botime pranë Universitetit të Europës
Teori Grafesh. E zëmë se na është dhënë një bashkësi segmentesh mbi drejtëzën reale që po e shënojmë:
Teori Grafesh Teori grafesh bitbit.uni.cc 1.1 Koncepti i grafit dhe disa nocione shoqeruese Shpeshherë për të lehtësuar veten ne shtrimin dhe analizën e mjaft problemeve që dalin në veprimtarinë tonë,
Propozim për strukturën e re tarifore
Propozim për strukturën e re tarifore (Tarifat e energjisë elektrike me pakicë) DEKLARATË Ky dokument është përgatitur nga ZRRE me qëllim të informimit të palëve të interesuara. Propozimet në këtë raport
Rikardo dhe modeli standard i tregtisë ndërkombëtare. Fakulteti Ekonomik, Universiteti i Prishtinës
Rikardo dhe modeli standard i tregtisë ndërkombëtare Fakulteti Ekonomik, Universiteti i Prishtinës Hyrje Teoritë e tregtisë ndërkombëtare; Modeli i Rikardos; Modeli standard i tregtisë ndërkombëtare. Teoritë
MPI: Message Passing Interface
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων MPI: Message Passing Interface 9 ο Εξάμηνο Αρχιτεκτονική κοινής μνήμης l l l Οι επεξεργαστές
Shtrohet pyetja. A ekziston formula e përgjithshme për të caktuar numrin e n-të të thjeshtë?
KAPITULLI II. NUMRAT E THJESHTË Më parë pamë se p.sh. numri 7 plotpjesëtohet me 3 dhe me 9 (uptohet se çdo numër plotpjesëtohet me dhe me vetvetën). Shtrohet pyetja: me cilët numra plotpjesëtohet numri
9 KARAKTERISTIKAT E MOTORIT ME DJEGIE TË BRENDSHME DEFINICIONET THEMELORE Për përdorim të rregullt të motorit me djegie të brendshme duhet të dihen
9 KARAKTERISTIKAT E MOTORIT ME DJEGIE TË BRENDSHME DEFINICIONET THEMELORE Për përdorim të rregullt të motorit me djegie të brendshme duhet të dihen ndryshimet e treguesve të tij themelor - fuqisë efektive
Treguesit e dispersionit/shpërndarjes/variacionit
Treguesit e dispersionit/shpërndarjes/variacionit Qëllimet: Në fund të orës së mësimit, ju duhet të jeni në gjendje që të : Dini rëndësinë e treguesve të dispersionit dhe pse përdoren ata. Llogaritni dhe
R = Qarqet magnetike. INS F = Fm. m = m 0 l. l =
E T F UNIVERSIETI I PRISHTINËS F I E K QARQET ELEKTRIKE Qarqet magnetike Qarku magnetik I thjeshtë INS F = Fm m = m m r l Permeabililiteti i materialit N fluksi magnetik në berthamë të berthamës l = m
Olimpiada italiane kombëtare e fizikës, faza e pare Dhjetor 2017
Olimpiada italiane kombëtare e fizikës, faza e pare Dhjetor 2017 UDHËZIME: 1. Ju prezantoheni me një pyetësor i përbërë nga 40 pyetje; për secilën pyetje Sugjerohen 5 përgjigje, të shënuara me shkronjat
Το Message Passing Interface (MPI) και η υποστήριξή του στο EGEE Grid
Το Message Passing Interface (MPI) και η υποστήριξή του στο EGEE Grid Vangelis Koukis HG-01 01-GRNET and HG-06 06-EKT admin team vkoukis@cslab.ece.ntua.gr NOA, 2006/10/03 Πορεία μιας σειριακής εργασίας
Libër mësuesi Matematika
Libër mësuesi Nikolla Perdhiku Libër mësuesi Matematika 7 Për klasën e 7 -të të shkollës 9-vjeçare Botime shkollore Albas 1 Libër mësuesi për tekstin Matematika 7 Botues: Latif AJRULLAI Rita PETRO Redaktore
Eλληνικά για σας A0 ανάγνωση - γραφή - προφορά - τονισμός. Gjuha greke për ju A0 lëxim - shkrim - shqiptim - theksim
intro_alb_final 5/18/12 7:56 PM Page 3 Eλληνικά για σας A0 ανάγνωση - γραφή - προφορά - τονισμός Gjuha greke për ju A0 lëxim - shkrim - shqiptim - theksim ΒΙΒΛΙΟ Α0 τελείως αρχάριοι Δίγλωσση έκδοση ελληνικά
Παράλληλος προγραµµατισµός
Το Message Passing Interface (MPI) και η υποστήριξή του στο EGEE Grid Vasileios Karakasis GRNET S.A., ICCS bkk@cslab.ece.ntua.gr Issues on Grid Technologies, Univ. of Patras, 2/3/2010 Σύνοψη παρουσίασης
MURE MBAJTES ME GABION Muret mbajtese te tipit gabion ofrojne qendrueshmeri te larte globale si dhe nje filitrim te vazhdueshem te ujrave
MURE MBAJTES ME GABION Muret mbajtese te tipit gabion ofrojne qendrueshmeri te larte globale si dhe nje filitrim te vazhdueshem te ujrave Bashkia Shijak Fshati Shetel, Njesia Administrative Gjepale SPECIFIKIME
Definimi i funksionit . Thirrja e funksionit
Definimi i funksionit Funksioni ngërthen ne vete një grup te urdhrave te cilat i ekzekuton me rastin e thirrjes se tij nga një pjese e caktuar e programit. Forma e përgjithshme e funksionit është: tipi
Το Message Passing Interface (MPI) και η υποστήριξή του στο EGEE Grid
Το Message Passing Interface (MPI) και η υποστήριξή του στο EGEE Grid Vangelis Koukis HG-01 01-GRNET and HG-06 06-EKT admin team vkoukis@cslab.ece.ntua.gr UoA, 2006/10/26 Πορεία μιας σειριακής εργασίας
MATEMATIKË HYRJE. (5 orë në javë, 185 orë në vit)
MATEMATIKË (5 orë në javë, 185 orë në vit) HYRJE Në shekullin XXI matematika gjithnjë e më tepër po zë vend qendror, jo vetëm në studimin e fenomeneve natyrore dhe teknike, por me ndërtimin e saj të argumentuar
PËRMBLEDHJE DETYRASH PËR PËRGATITJE PËR OLIMPIADA TË MATEMATIKËS
SHOQATA E MATEMATIKANËVE TË KOSOVËS PËRMBLEDHJE DETYRASH PËR PËRGATITJE PËR OLIMPIADA TË MATEMATIKËS Kls 9 Armend Sh Shbni Prishtinë, 009 Bshkësitë numerike Të vërtetohet se numri 004 005 006 007 + është
Ngjeshmëria e dherave
Ngjeshmëria e dherave Hyrje Në ndërtimin e objekteve inxhinierike me mbushje dheu, si për shembull diga, argjinatura rrugore etj, kriteret projektuese përcaktojnë një shkallë të caktuar ngjeshmërie të
Qëllimet: Në fund të orës së mësimit ju duhet të jeni në gjendje që të:
Analiza statistikore Metodat e zgjedhjes së mostrës 1 Metodat e zgjedhjes së mostrës Qëllimet: Në fund të orës së mësimit ju duhet të jeni në gjendje që të: Kuptoni pse në shumicën e rasteve vrojtimi me
Το Message Passing Interface (MPI) και η υποστήριξή του στο EGEE Grid. Vangelis Koukis 01-GRNET and HG EKT admin team
Το Message Passing Interface (MPI) και η υποστήριξή του στο EGEE Grid Vangelis Koukis HG-01 01-GRNET and HG-06 06-EKT admin team vkoukis@cslab.ece.ntua.gr Advanced Course on Grid Technologies, Univ. of
REPUBLIKA E SHQIPËRISË MINISTRIA E ARSIMIT DHE SHKENCËS INSTITUTI I ZHVILLIMIT TË ARSIMIT PROGRAM ORIENTUES PËR PËRGATITJEN E PROVIMIT KOMBËTAR
REPUBLIKA E SHQIPËRISË MINISTRIA E ARSIMIT DHE SHKENCËS INSTITUTI I ZHVILLIMIT TË ARSIMIT PROGRAM ORIENTUES PËR PËRGATITJEN E PROVIMIT KOMBËTAR TË MATURËS SHTETËRORE NË LËNDËN Gjuhë Greke (gjuhë e huaj
KODI I TRANSMETIMIT. Draft Miratohet nga Bordi i ERE.
KODI I TRANSMETIMIT Ky dokument i emërtuar Kodi i Transmetimit është hartuar nga shoqëria OST sh.a në zbatim të dispozitave të Ligjit Nr.43/2015, datë 30/04/2015 Për Sektorin e Energjisë Elektrike dhe
ALGJEBËR II Q. R. GASHI
ALGJEBËR II Q. R. GASHI Shënim: Këto ligjërata janë të paredaktuara, të palekturuara dhe vetëm një verzion fillestar i (ndoshta) një teksti të mëvonshëm. Ato nuk e reflektojnë detyrimisht materien që e
Kërkesat teknike për Listën e Materialeve dhe Pajisjeve të Pranueshme LEME lista - Sektori Banesor dhe i Ndërtesave
Kërkesat teknike për Listën e Materialeve dhe Pajisjeve të Pranueshme LEME lista - Sektori Banesor dhe i Ndërtesave Kriteret e pranushmërisë së Materialeve dhe Pajisjeve Materiali/Pajisja /Mjeti Dritare
INSTITUTI I ZHVILLIMIT TË ARSIMIT. PROGRAM ORIENTUES PËR MATURËN SHTETËRORE (Provim me zgjedhje) LËNDA: MATEMATIKA E THELLUAR
INSTITUTI I ZHVILLIMIT TË ARSIMIT PROGRAM ORIENTUES PËR MATURËN SHTETËRORE (Provim me zgjedhje) LËNDA: MATEMATIKA E THELLUAR Koordinatore: Dorina Rapti Viti shkollor 2017-2018 1. UDHËZIME TË PËRGJITHSHME
Γιατί η νέα γενιά Αλβανών μεταναστών στην Ελλάδα χάνει στη γλώσσα της; Νίκος Γογωνάς
Γιατί η νέα γενιά Αλβανών μεταναστών στην Ελλάδα χάνει στη γλώσσα της; Νίκος Γογωνάς Από τις αρχές της δεκαετίας του 90 και μετά, ένας μεγάλος αριθμός Αλβανών μεταναστών ήρθε στην Ελλάδα κυρίως εξαιτίας
Leksion nr 6. Grafikët dy dhe tre dimensional
Leksion nr 6 Grafikët dy dhe tre dimensional 1 Komanda line line(x, y, 'property name', property value) Keto vlera jane opsionale, mund të përdoren për të specifikuar stilin e vijës, ngjyrën dhe gjerësinë
UNIVERSITETI I GJAKOVËS FEHMI AGANI FAKULTETI I EDUKIMIT PROGRAMI PARASHKOLLOR PUNIM DIPLOME
UNIVERSITETI I GJAKOVËS FEHMI AGANI FAKULTETI I EDUKIMIT PROGRAMI PARASHKOLLOR PUNIM DIPLOME ZHVILLIMI DHE FORMIMI I NJOHURIVE FILLESTARE TEK FËMIJËT E MOSHËS PARASHKOLLORE MBI BASHKËSITË Mentori: Prof.
Lënda: Mikroekonomia I. Kostoja. Msc. Besart Hajrizi
Lënda: Mikroekonomia I Kostoja Msc. Besart Hajrizi 1 Nga funksioni i prodhimit në kurbat e kostove Shpenzimet monetare të cilat i bën firma për inputet fikse (makineritë, paisjet, ndërtesat, depot, toka
UDHËZIME PËR PLOTËSIMIN E FORMULARËVE TË KËRKESAVE
UDHËZIME PËR PLOTËSIMIN E FORMULARËVE TË KËRKESAVE Ministria e Brendshme PËRMBAJTJA A. UDHËZIME TË PËRGJITHSHME PËR PLOTËSIMIN E KËRKESAVE.3 B. UDHËZIME TË POSAÇME PËR PLOTËSIM SIPAS UNITETEVE...6 B1.
Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 2: OpenMPI Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής
Klasa 2 dhe 3 KENGUR 2014
Gara ndërkombëtare Kengur viti 014 Klasa dhe 3 KENGUR 014 Çdo detyrë me numër rendor nga 1 deri në 10 vlerësohet me 10 pikë Koha në disponim për zgjidhje është 1h e 15 min Për përgjigje të gabuar të një
Επιστημονικοί Υπολογισμοί - Μέρος ΙΙΙ: Παράλληλοι Υπολογισμοί
Επιστημονικοί Υπολογισμοί - Μέρος ΙΙΙ: Παράλληλοι Υπολογισμοί Χαρμανδάρης Βαγγέλης, Τμήμα Εφαρμοσμένων Μαθηματικών Πανεπιστήμιο Κρήτης, Εαρινό Εξάμηνο 2013/14 Κεφάλαιο 5: (B) Message Passing Interface
Libër. mësuesi 7,8,9. Lediana Bardhi. Informatika INFORMATIKA. INFORMATIKA Për klasën e tetë të arsimit 9-vjeçar 8 INFORMATIKA
ISBN: 978-9928-08-058-5 9 789928 080585 S H T Ë P I A B O T U E S E S H T Ë P I A B O T U E S E S H T Ë P I A B O T U E S E Libër mësuesi Lediana Bardhi Informatika 7,8,9 Lediana Bardhi, Anduela Lile INFORMATIKA
SUPERIORITETI DIELLOR ME TEKNOLOGJINË
SUPERIORITETI DIELLOR ME TEKNOLOGJINË E TË ARTHMES...Panele diellore te teknollogjisë Glass & Inox Si vend me mbi 45 ditë diellore me intesitet rrezatimi, 450 keh/m vit. Shqipëria garanton përdorimin me
I}$E SF$RTIT MATURA SHTETIIRORE, MIN{ISTRIA E ARSIIITIT. liinua.: GJUHE GREKE (Niveli 82) PROGRAMET ORIEI{TUESE IKOLLA MIRATO
HT PUELIK"*. E S}IQIPENI SE MIN{ISTRIA E ARSIIITIT I}$E SF$RTIT MIRATO IKOLLA MATURA SHTETIIRORE, PROGRAMET ORIEI{TUESE (Provim me zgiedhje) liinua.: GJUHE GREKE (Niveli 82) Koordinator: LUDMILLA STEFANI,
Qarqet/ rrjetet elektrike
Qarqet/ rrjetet elektrike Qarku elektrik I thjeshtë lementet themelore të qarkut elektrik Lidhjet e linjave Linja lidhëse Pika lidhëse Kryqëzimi I linjave lidhëse pa lidhje eletrike galvanike 1 1 lementet
Κατανεμημένος και Παράλληλος Προγραμματισμός MPI. MPI Απλές εντολές 03/13/2016. Οδηγίες αποστολής / παραλαβής μηνυμάτων, Υπολογισμός του π (
Κατανεμημένος και Παράλληλος Προγραμματισμός Ηλίας Κ. Σάββας Αναπληρωτής Καθηγητής Τμήμα Μηχανικών Πληροφορικής ΤΕ, ΤΕΙ Θεσσαλίας Email: savvas@teilar.gr MPI Οδηγίες αποστολής / παραλαβής μηνυμάτων, Υπολογισμός
MPI: Βαςικζσ Εντολζσ Επικοινωνίασ. Κώςτασ Διαμαντάρασ Τμιμα Πλθροφορικισ ΤΕΙ Θεςςαλονίκθσ 2011
MPI: Βαςικζσ Εντολζσ Επικοινωνίασ Κώςτασ Διαμαντάρασ Τμιμα Πλθροφορικισ ΤΕΙ Θεςςαλονίκθσ 2011 Εντολζσ Επικοινωνίασ ςθμείο προσ ςθμείο (point-to-point) MPI_Send, MPI_Recv MPI_Isend, MPI_Irecv 2 Κώςτασ Διαμαντάρασ
Distanca gjer te yjet, dritësia dhe madhësia absolute e tyre
Distanca gjer te yjet, dritësia dhe madhësia absolute e tyre Mr. Sahudin M. Hysenaj 24 shkurt 2009 Përmbledhje Madhësia e dukshme e yjeve (m) karakterizon ndriçimin që vjen nga yjet mbi sipërfaqen e Tokës.
Vendimi nr.123, Date TABELA E PERMBAJTJES
ERE KODI I RRJETIT TE TRANSMETIMIT Page 1 of 109 Vendimi nr.123, Date 24.10.2008 TABELA E PERMBAJTJES I. HYRJE/ DISPOZITA TE PERGJITHESHME I.1 Pergjegjesite e OST I.2 Struktura e Kodit te Rrjetit II. II.1
Detyra për ushtrime PJESA 4
0 Detyr për ushtrime të pvrur g lëd ANALIZA MATEMATIKE I VARGJET NUMERIKE Detyr për ushtrime PJESA 4 3 Të jehsohet lim 4 3 ( ) Të tregohet se vrgu + + uk kovergjo 3 Le të jeë,,, k umr relë joegtivë Të
INSTITUTI I ZHVILLIMIT TË ARSIMIT PROGRAM ORIENTUES PËR MATURËN SHTETËRORE. (Provim me zgjedhje) LËNDA: GJUHË GREKE
INSTITUTI I ZHVILLIMIT TË ARSIMIT PROGRAM ORIENTUES PËR MATURËN SHTETËRORE (Provim me zgjedhje) LËNDA: GJUHË GREKE Koordinatore: Erifili Hashorva Viti shkollor: 2013-2014 TIRANË JANAR, 2014 1 1. UDHËZUES
II. MEKANIKA. FIZIKA I Rrahim MUSLIU ing.dipl.mek. 1
II.1. Lëvizja mekanike Mekanika është pjesë e fizikës e cila i studion format më të thjeshta të lëvizjes së materies, të cilat bazohen në zhvendosjen e thjeshtë ose kalimin e trupave fizikë prej një pozite
Udhëzimet e përdorimit të Fiamm Motive Power Energy Plus
Udhëzimet e përdorimit të Fiamm Motive Power Energy Plus Albanian Bateri traksionare, me pllaka tubulare pozitive, tipi PzS/PzB Të dhënat e klasifikimit 1. Kapaciteti nominal C 5 : 1. Shih tabelën specifikuese
Indukcioni elektromagnetik
Shufra pingul mbi ijat e fushës magnetike Indukcioni elektromagnetik Indukcioni elektromagnetik në shufrën përçuese e cila lëizë në fushën magnetike ijat e fushës magnetike homogjene Bazat e elektroteknikës
MEKANIKA 2. Për shkollat e mesme bujqësore
MEKANIKA 2 Për shkollat e mesme bujqësore SHTËPIA BOTUESE E LIBRIT UNIVERSITAR TIRANË, 2012 Teksti është miratuar dhe financuar nga Ministria e Arsimit dhe e Shkencës. Titulli: E përshtati: Zoica Naço
10 Probabilitet Orë të lira 20 Shuma 140
HYRJE Libri që keni në dorë është botim i Shtëpisë botuese UEGEN për t i ardhur në ndihmë mësuesve që japin lëndën e matematikës në klasat e teta. Këtu do të gjeni planin mësimor të matematikës së klasës
Gërmimi i dataset-ave masivë. përmbledhje informative
Gërmimi i dataset-ave masivë përmbledhje informative zgjodhi dhe përktheu Ridvan Bunjaku Mars 2017 Përmbajtja Parathënie... 3 1. Data mining... 4 2. MapReduce... 6 3. Gjetja e elementeve të ngjashme...
Skripta e Kursit: Algjebra Elementare, Kalkulusi dhe Matematika Financiare, dhe Statistika Përshkruese Vëll. 1: Algjebra Elementare Edicioni i 3 të
Skripta e Kursit: Algjebra Elementare, Kalkulusi dhe Matematika Financiare, dhe Statistika Përshkruese Vëll. : Algjebra Elementare Edicioni i të nga Prof. Dr. Dietrich Ohse përkthyer nga. Mas. sc. Armend