dağıtık sistemler / programlama
Embed Size (px)
TRANSCRIPT
- 1. Bilgisayar Mhendislii ahabettin AKCA 132132178 TBIL-106 Bilgisayar Programlama II dev Datk Programlama Ahmet Yesevi niversitesi - TURTEP TBIL-106 DEV #1
- 2. indekiler 1. Giri..3 2. Datk Sistem Tanm..4 3. Datk Mimari Yap Gereksinimleri....5 4. Datk Sistemler Avantaj ve Dezavantajlar....5 5. Datk Sistem rnekleri......6 6. Datk Sistem Gvenlii......7 7. Datk Sistemlerin Kullanm Amalar..8-10 8. Internet ve Intranet11 9. Datk Sistem rn Ortam Sorun ve zmleri ..12-13 10.Datk Sistem Bileenleri.14-15 11.Sistem effa .16 12.Sistem Verimlilii ve leklenebilirlik .17-18 13.Uzak Sunucu arma Yntemi..19-20 14.MPI (Mesaj Gei Arayz)...21 15.MPI Komutlarnn Ksa Tanmlar22 16.MPI rnek Program ...23-24 17.MPI Derleme ve altrma...24 18.Kaynaka ..25 TBIL-106 DEV #2
- 3. Giri Mhendislik uygulamalarnda daha yksek performansl bilgisayarlara ihtiya her geen gn daha da artmaktadr. Yksek performansl bilgisayarlarn yetenekleri ile retime giden tasarm srecinde baz evreler ortadan kalkm olup (rnein prototip gerekleme ve testler), bu ilemler artk benzetim yoluyla yaplmaktadr. Bylece, gelitirme srecinde zaman ve paradan tasarruf edilmekte, yeni rnlerin piyasaya kma periyodu ksalmaktadr. Yksek performansl sistemler ilemci saat frekansnn arttrlmas veya donanmn paralel kullanlmasyla elde edilebilir. lemci saat frekansnn arttrlmas bir noktadan sonra ya ekonomik nedenlerle veya fiziksel snrlar nedeniyle mmkn olmamaktadr. Bu nedenle daha fazla donanmn paralel olarak kullanlmasyla performans arttrlmas en ok tercih edilen yoldur. Bu yaklam kendini nce ilemci iinde paralellik ile gsterdi. retim hatt (pipeline) mimarisinde ilemci iine ilave edilen donanm ile ayn anda birden fazla komut icra edilebilir hale getirildi. Bylece komut seviyesinde paralellik yoluyla performans artrlm oldu. Artk gnmz genel amal bilgisayarlarnda kullanlan ilemcilerinin hepsinde pipeline yap kullanlmaktadr. Bu sistemlerde paralellik komut leinde olduundan, kullanc asndan bir sorun veya deiiklik olumaz. Paralellik iin gerekli dzenlemeler derleyici veya donanm iindeki alt birimler tarafndan gereklenir. TBIL-106 DEV #3
- 4. Datk Sistem Nedir ? A zerindeki bilgisayarlarda bulunan donanm veya yazlm bileenlerinin yalnz mesaj gndererek haberletikleri sistem. [Coulouris] Datk sistem, farkl bilgisayarlardaki donanm ve yazlm bileenleri arasnda haberleme ve koordinasyonunun sadece mesajlama yoluyla salanabildii a olarak tanmlanr. Datk sistemi dier bilgisayar alarndan farkl klan zelliin, an varl ve ilevinin kullancya grnmemesi olduu sylenebilir. rnein kullanc bir program altrdnda, en iyi ilemciyi semek, giri dosyalarn bu ilemciye aktarmak ve dnen sonular uygun yere koymak ilemcinin yrtt ilerdir. ok ilemcili bir datk sistemde almakta olmasna ramen, kullancya grnen ise tek bir sanal ilemcidir. Dier alarda, kullancnn kendisi bir makineye balanr, i isteinde bulunur, dosya gnderir vs. Dier bir deyile, a ynetim ilemleri kullanc tarafndan yrtlr. Datk sistem, bir a zerine kuruludur. Yazlmla, adaki bileenler aras ilevsel uyumluluk ve kullanc asndan saydamlk salanr. Dolaysyla, datk sistemin dier alardan fark donanm deil, yazlm katmanndan zellikle iletim sisteminden- kaynaklanmaktadr. Datk sistemlerin var olu amac, kaynaklar paylamaya duyulan gerekliliktir. Bu kaynaklar donanmsal bileenler (disk, yazc) olabilecei gibi, dosyalar, veri taban, nesneler gibi yazlm varlklar da olabilir. Bu byk a da bulunan donanmlar kullancya tek bir bilgisayar gibi davranr ve en iyi performans salamay amalar. 1. zole deildir. 2. Cloud un temelini oluturur 3. Senkron ve replikedir 4. Yedekli alr TBIL-106 DEV #4
- 5. Datk Mimari Yap Gereksinimleri Datk mimarinin yaplandrlmas alabilmesi iin eitli bileenlerin birbiriyle uyumlu ve senkron ekilde allabilmesi gerekmemektedir. 1. letim sistemleri 2. Donanm mimarileri 3. letiim mimarileri 4. Programlama dilleri 5. Yazlm ara yzleri 6. Gvenlik lleri 7. Bilgi gsterimleri Datk sistem Avantajlar Dezavantajlar Maliyet Merkezi yap zorunluu Eriim kolayl hz performans Gvenlik Hesaplama ve depo alan Her dilde yazm destei yok leklenebilir letiim Gvenilir(Reliable) Datm kolayl (Web) Gvenlik effaflk: Kaynaklar ve ilemlerin a zerinde datk olduu ak deildir Aklk: Servislerin sentaks ve semantikleri ile ilgili standart kurallar leklenebilirlik: Daha fazla kullanc/kaynak, corafya, ynetim TBIL-106 DEV #5
- 6. Datk Sistem rnekleri Internet Internet, geni bir datk sistemdir. Internet kullanclar WWW, e-posta, dosya transferi servislerinden yararlanrlar. Alar (Intranet) $ ekil 1. A ekil 1de, birka yerel adan oluan bir i a grlmektedir. alarda kaynak paylam salayan ve sklkla kullanlmakta olan sunucular, ekilde gsterilmitir. (Her yerel a, tm bu sunucular iermeyebilir.) TBIL-106 DEV #6
- 7. Datk Sistem Gvenlii Bir datk sistemin gvenlii, sreleri ve aralarndaki etkileim iin kullanlan kanallar gvenli hale getirmek ve srelerin kapklad nesneleri izinsiz eriime kar korumakla salanr. Servisin Reddi (Denial of Service) Ddos atak olarak bilinen bu atak gnmzde bir ok biliim sisteminin, byk kapasiteli devlet ve banka alarnn kilitlenmesine kadar gidebilmektedir. Sunuculara srekli istek gndermek suretiyle sunucunun hizmet kapasitesinin doldurulup kilitlenmesidir. Aa ok fazla mesaj gnderilerek fiziksel kaynaklarn (bant genilii gibi) tketilmesi, istemcilerin hizmet almasnn engellenmesi veya yavalatlmas da bu tip bir saldrdr. yi huylu kullanc ile kt huylu ayrt edilemezse, sistemin kmesi ile sonulanr. ok byk bant genilii ve firewall maliyetlerini yannda getirmektedir. Gezici Kod (Mbile Code) En yaygn gezici kod rnei, appletlerdir. Bir tarayc altrm olan kullanc, kodu web sunucusunda tutulan bir appletin linkini seerse, kod kullancnn makinesine indirilerek altrlr; bu makinedeki kaynaklara eriir. Gezici kod, sunucularn ykn azaltmak asndan avantajldr. Ancak kullancnn kaynaklarna zarar verecek ekilde ktye kullanlabileceinden, bir gvenlik tehdididir. TBIL-106 DEV #7
- 8. Datk Sistemlerin Kullanm Amalar Kullancya ynelik (neden datk sistem?) Kullanc ve kaynaklarn kolayca balanmas effafln salanmas Teknik hedefler (nasl baarlr?) Ak olarak leklenebilir olarak Bu hedeflere bakmak u soruyu cevaplamaya yardmc olur: datk bir sistem kurmak, uramaya deer mi? Datk Sistemlerin Gereklilii levsel ayrm: Kapasite ve ama bakmndan farkl bilgisayarlarn varl: stemciler ve Sunucular Veri toplama ve veri ileme Doal datklk: Bilgi: Farkl bilgiler farkl kiiler tarafndan oluturulup kontrol edilir (Web sayfalar gibi) nsan: Bilgisayar destekli ibirlii (sanal ekipler, mhendislik, sanal ameliyat) Spermarket zincirleri iin perakende ve stok sistemleri G dengesizlii ve yk eitlilii: lem yknn farkl bilgisayarlar arasnda datlmas. Gvenilirlik: Farkl yerlerde uzun sreli koruma ve veri yedekleme (oaltma). Ekonomi: Birok kullanc arasnda yazc paylam ile sahip olma masrafnn azaltlmas. Bir bilgisayar andan sper-bilgisayar elde etme. TBIL-106 DEV #8
- 9. Datk sistemlerdeki bilgisayarlar ayr ktalar zerinde, ayn bina veya ayn oda ierisinde bulunabilir. DSin getirdikleri: Birlikte ve birbirinden bamsz alan sistemler lerini birbirinden bamsz yaparlar Ayn zamanda program altrr, btn bir ileme kayna gibi grnr, birlikte alrlar lemler mesaj alveriiyle anlarlar. Heterojen (eitlilik, farkllk): networks, hw, os, PLan Ortak saat yok: Bilgisayarlar saatlerini kstl derecede senkronize edebilir Bamsz bozulma: biri bozulsa da dierleri almaya devam eder. Paralel ilemler Birlikte alan bamsz bileenler Mesaj gnderme ile iletiim Ortak bellek yok (No shared memory) Kaynak paylam Yazc, veri taban, dier servisler Genel sistem durumu belirli deil (No global state) Hibir ilem, sistemin genel durumuna dair bir bilgi edinemez Ortak saat yok lemler iin sadece kstl derecede saat eitleme mmkn olabilir. 1. Kullanclarla kaynaklar birletirmek: Eriim servisleri uygulama altrr Belirli kaynaklar: Yazclar, bilgisayarlar, ileme gc, veri Neden paylam? Ekonomi birlii, Bilgi dei-tokuu (grup almas) Paylam problemleri Gvenlik stenmeyen ibirlikleri 2. effaflk: Kaynaklar ve ilemlerin a zerinde datk olduu ak deildir 3. Aklk: Servislerin sentaks ve semantikleri ile ilgili standart kurallar 4. leklenebilirlik: Daha fazla kullanc/kaynak, corafya, ynetim 5. Uzun sre bozulmadan alma Model Yn letiim letiim nasl salanr senkron iletiim Mesaj gnderme ve alma E zamanl TBIL-106 DEV #9
- 10. asenkron iletiim Gnderme ve alma bal deil (Buffer, Kanallar, vb.) Mesajlar snrl bir zamanla iletilirler ya da maksimum bir zaman yoktur. Mesajlar mutlaka bir zamanda iletilirler ya da kayp vardr. FIFO ya da not FIFO Bir kanaldan nce gnderilen mesajn nce alnp alnamayacann karar Noktadan-noktaya veya Yayn(Broadcast) Bir mesaj bir anda sadece bir srece veya daha fazlasna iletilebilir. Ne gnderilebilir Sadece deerler, referanslar ve aktif elemanlar(Sreler) gnderilebilir. Multiprocessor (ok ilemcili) sistemler: DS deil Shared memory (ortak bellek) Bus-based interconnection network (kablolu balant) rnek: ki veya daha fazla CPUlu SMPler (symmetric multiprocessor) oklu bilgisayar sistemleri: DS deil No shared memory (ortak bellek yok) Homojen donanm ve yazlm Massively Parallel Processors (MPP) Tightly coupled high-speed network PC/Workstation clusters High-speed networks/switches based connection. TBIL-106 DEV #10
- 11. Internet: birbirine bal eitli bilgisayar alar. Uygulamalar iletiimi mesajlarla salar Datk sistem kullanclar www, email, dosya gnderme gibi servislerden faydalanr Intranet: bir organizasyon tarafndan ynetilen alt a. Yerel gvenlik politikasyla snrldr. Uydu balants, fiber-optik kablolar gibi hzl iletim kapasitesi olan a altyaps ile baldrlar Kablosuz alar Genel internet uygulamalar ve servisleri: Mzik, radyo, TV kanallar, video konferans eriimi iin multimedia servisleri, ve oklu kullanc destei. Internet, eitli servisler barndran birok farkl bilgisayar trlerinden oluan byk bir a topluluudur. Genel bir intranet; Internetin bir alt paras olup, ayrca ynetilir ve kaynaklarn a ierisinde paylamn destekler (dosya/depolama sistemleri ve yazclar) TBIL-106 DEV #11
- 12. Datk Sistem rn Ortam Sorun ve zmleriOnline kitap (World Wide Web zerinde) Mteriler kendi bilgisayarlaryla sizin bilgisayarnza (web sunucunuza) balanabilir: Stokunuza bakabilir Sipari verebilir Ya . . . ? Mteriniz ok farkl bir donanm sistemi kullanyorsa? (PC, MAC,) farkl bir iletim sistemi? (Windows, Unix,) farkl bir veri gsterim biimi? (ASCII, EBCDIC,) eitlilik (networks, h/w, os, prog lan, impl) Veya . . . ? inizi ve bilgisayarlarnz Gneye tamak isterseniz (hava artlarndan dolay)? Mterileriniz Gneye tanrsa (daha muhtemel)? Konum / Tanma / Dalm effafl Ya . . . ? ki mteri ayn rn ayn anda sipari verirse? Concurrency (Ayn anda kullanm) Veya . . . ? Stok bilginizi tutan veri taban kerse? Sipari esnasnda mterinizin bilgisayar kerse? Fault tolerance (Hata pay) Ya . . . ? Birileri veri almak iin sisteminize girmeye alrsa? bilgi ekerse? mteriniz sipari verir de, sonradan vermedim diyerek rn teslimini reddederse? TBIL-106 DEV #12
- 13. Security (Gvenlik) Veya . . . ? yle baarl olursunuz da, milyonlarca insan ayn anda online maazanz ayn anda ziyaret ederse? Scalability (leklenebilirlik) Sistem kurulurken Btn yazlm tek banza m yazmak istersiniz (network, database,)? Gncellemeler, yeni teknoloji takibi? Reuse (tekrar kullanlabilirlik) ve Openness (aklk) (Standartlar) Heterogeneity (eitlilik) eitli bileenler birbiriyle uyumlu ekilde alabilmeli Distribution transparency (Danklk effafl) Dankln varl mmkn olduka kullancdan saklanmal Fault tolerance (Hata pay) Bir bileenin bozulmas (ksmi bozukluk) tm sistemin bozulmasna sebep olmamal Scalability (leklenebilirlik) Sistem, artan kullanc saysna ramen verimli almaya devam edebilmeli Sisteme yeni kaynaklar eklenerek performans art salanabilmeli. TBIL-106 DEV #13
- 14. Datk sistemler eitli bileenler birbiriyle uyumlu ekilde alabilmeli letim sistemleri Donanm mimarileri letiim mimarileri Programlama dilleri Yazlm arayzleri Gvenlik lleri Bilgi gsterimleri effaf DS: Kullanclara, tek bir bilgisayar sistemi gibi grnr, bamsz bilgisayarlar topluluu olarak deil. effaflk eitleri Eriim: Veri gsterimindeki farklar, ve kaynaklara nasl eriildii gizlenir. Yerel ve uzak kaynaklara eriim ayn ilemlerle salanr. rn., Network File Systems (A Dosya Sistemleri) Konum: Bir kaynan bulunduu yer gizlenir. Kaynaklara, fiziksel konumlar bilinmeden eriilir. Alan adnn (domain name) makine adresinden ayrm gibi. Migration (Tanma): Kaynan yer deitirme durumu gizlenir Relocation (Yeniden konumlandrma): Kaynan, kullanm esnasnda, yer deitirme durumu gizlenir Migration / relocation effafl, bir sistemdeki kullanclarn veya uygulamalarn ilemlerini etkilemeden tanabilmelerine olanak salar. alma esnasnda (runtime) bir isim sunucusundan (name server) bir bakasna gei yapma Bir vekil veya ilemin (agent/process) bir dmden (node) dierine tanmas gibi effaflk Her zaman istenmez: Farkl ktalarda bulunan kullanclar (context-aware), time-zone (zaman-dilimi), hz Her zaman mmkn olmaz: Hatalarn gizlenmesi (bir bilgisayar yava m, bozuk mu) Yksek effaflk ile performans arasndaki denge Replication (Kopyalama): Bir kaynan birden fazla yerde yedeinin (kopyasnn) tutulduu gizlenir. Kopyalanm kaynaklara, sadece bir kopya varm gibi eriilir. Gvenilirlik ve performans kopyalarla artrlr, ama kullanclarn veya uygulama gelitiricilerinin kopyalardan haberi olmaz. TBIL-106 DEV #14
- 15. Concurrency (Birlikte alma): Bir kaynan birden fazla kullanc tarafndan paylald gizlenir. Bir ilem, dier baz ilemlerin de ayn kaynaklara erimekte olduunun farknda olmamaldr Failure (Bozulma): Bir kaynan bozulma veya dzelme durumu gizlenir. Bozulmalar olsa da, grevler tamamlanabilir. Mesaj iletim tekrar, bir a sunucusu dmnn bozukluu, web sitesini kertmemeli. Persistence (Sreklilik): Bir yazlm kaynann bellekte veya disk zerinde olma durumu gizlenir. Performans: Yk deiimine gre performans artrmak iin sistemin tekrar yaplandrlmas salanr. rn., bileenlerin dinamik olarak eklenip kaldrlmas. Kullanc says artnca, dorusal yaplardan basamakl (hierarchical) yaplara geilmesi. Scaling (lekleme): Sistemin ve uygulamalarn, sistem yapsnda veya uygulama algoritmalarnda deiiklie gerek olmadan geniletilmesine olanak salar. TBIL-106 DEV #15
- 16. A effafl: eriim + konum effaflklar Hata alglama Checksums (salama), heartbeat (kalp at), Hata maskeleme Bozuk mesajlarn tekrar gnderimi, fazlalk, Hataya msamaha Exception handling (istisna ileme), timeouts (zaman amlar), Hatadan kurtulma Rollback (geri sarma) mekanizmalar, TBIL-106 DEV #16
- 17. Sistem Verimlilii ve leklenebilirlikSistem, kk bir Intranetten Internete kadar uzanan birok farkl lekte verimli olarak alabilmeli. Kaynak ve kullanc saysnda belirgin bir art olsa da etkili olarak almaya devam edebilmeli. Zamanla her ey oalr, kullanclar artar, bilgisayar says byr, veri miktar fazlalar, ... Sistemler nasl leklenebilir olur? Sadece donanm eklemekle mmkn deil. Bir makinenin 20 kullancya hizmet vermesi, iki makinenin 40 kullancya hizmet verecei anlamna gelmez. Resource (Kaynak): Yalnz bir kullanc ! kstl verim oklu istemci talepleri: birlikte eriim Paylalan kaynaklara oklu eriimin desteklenip ynetilmesi: Birlikte allan ortamdaki bir nesnenin gvende olmas iin ilemleri, verileri tutarl kalacak ekilde, senkronize olmal (eitlenmeli) (rn. Banka hesab). Bu, datk olmayan sistemlerde semafor kullanmndan daha zordur. Availability (Ulalabilirlik) Kaynak eriim yollarndaki akmalara kar koruma. rn. Servis saldrlarnn reddi Reddedilememe Bir bilginin gnderilme / alnma delili rn. Dijital imza Encryption (ifreleme) rn. Blowfish, RSA Authentication (Dorulama) rn. password (ifre), ak anahtarla yetkilendirme TBIL-106 DEV #17
- 18. Authorization (Yetkilendirme) rn. eriim kontrol listeleri Datk sistemler her yerde bulunur. Internet, dnyann her bir yanndaki kullanclarn, her bir yandaki servislere eriimlerini salar. Kaynak paylam datk sistem kurmaya tevik eden etmenlerin bata gelenidir. DS kurulumu birok zorluu beraberinde getirir: eitlilik, Aklk, Gvenlik, leklenebilirlik, Hata denetimi, Birlikte alma, effaflk. Datk sistemler kresellemeyi salar: Topluluk (Sanal takmlar, kurulular, sosyal alar) Science (e-Science) (Bilim) Business (e-Bussiness) () TBIL-106 DEV #18
- 19. Uzak Sunucu Yntemini armak in Gerekli Admlar Uzak programlama ile sunucu katmanndaki bileene ait bir yntemi veya ksaca uzak sunucu yntemini armak iin aadaki admlar izlenir: 1. Keif (discovery): Sunucunun adaki adresinin belirlenmesi ilemidir. 2. Mzakere (negotiation): stemci ile sunucunun, bir szleme (conract) zerinden, nasl iletiim yapaca konusunda anlamaya varmasdr. 3. Uzak ilevin arlmas (invocation): Sunucu ilevlerinin uzaktan arlp, altrlmas ilemidir. Bu ilem arma (calling) olarak da adlandrlr. Bu admlar izlenirken karlalan glkler aada sralanmtr; 1. Sunucudaki nesnenin referansn elde etme, 2. Nesne yaratma (instantiation) ve mr (lifetime) ynetimi, 3. A zerinde veriler bit bit veya bayt bayt aktarlr. Bu nedenle nesneye dayal yntemlerin bayt ak (byte stream) kullanarak arlmasnn yarataca problemler, 4. ok kullancl yazlmlarda gvenlik, 5. Gvenilmez a balantlarna (unreliable network connections) kar nlemler, 6. Zaman uyumsuz (asynchronous) ilemler. $ Yukarda bahsedilen 3. madde zerinde durmak gerekir. Sunucu bileenleri nesne olarak tasarlandklarndan, nesneye dayal yntemleri (method) armak iin internet zerinde bilgi iletiimi teknolojisi olarak bayt ak (byte stream) kullanlr. Bunu bir web servisinden yararlanacak A ve B gibi iki uygulama ile aklayalm; 1. A uygulamasnn web servisinden yapt istekleri B uygulamas aa karabilir. 2. A uygulamasnn isteklerinin biriktii protokol yn (protocol stack) paralara blnerek dk dzey veri paketleri olarak, byte ak zerinden, servise gnderilir. Bu durumda B uygulamas szkonusu paketleri tersine kullarak arlan ilevi aa karabilir. Uzak programlama yaplrken bu problemleri bertaraf edecek nlemler alnmaldr. TBIL-106 DEV #19
- 20. Gnmzde yazlm gelitirilen tm platformlar TCP (Transmission Control Protocol) protokoln desteklemektedir. Bu nedenle yazlmclar genellikle bu protokol kullanarak uzak programlama yaparlar. Datk programlamay salayan btn teknolojilerin temelinde Frank Buschmann tarafndan 1996 ylnda gelitirilen Simsar (broker pattern) adl zm rnts yatar. Bu nedenle uzak programlama yapacak programclarn bu rnty mutlaka bilmesi gerekir. TBIL-106 DEV #20
- 21. MPI (Message Passing Interface) Mesaj Gei Arayz Bir grup akademisyen ve eitli irketlerden katlmclar tarafndan Yaygn kullanm ve Tanabilirlik amalanarak oluturulan bir ktphane standarddr. Sadece rutinleri belirler, implementasyonla alakas yoktur. Olduka fazla bedava ve de zgr implementasyonu mevcut Srm 1'de sadece statik sre oluturma vard Srm 2'de dinamik olarak da kullanlabilmektedir. MPI - rnek int main (int argc, char *argv[]) { MPI_Init(&argc, &argv); . . MPI_Comm_rank(MPI_COMM_WORLD, &myrank); if (myrank == 0) master(); else slave(); . . MPI_Finalize(); } TBIL-106 DEV #21
- 22. MPI KOMUTLARININ KISA TANIMLARI MPI Dier Rutinler MPI_Send(buf, count, datatype, dest, tag, comm) Bloke eden gnder rutini MPI_Recv(buf, count, datatype, src, tag, comm, status) Bloke eden alma rutini MPI_Isend (...) / MPI_Irecv(...) - bloke etmeyen gnder/al MPI_Wait() ve MPI_Test() ile denetlenebilirler MPI_Bcast() / MPI_Gather() / MPI_Scatter() MPI_Reduce() - MPI_Gather gibi ama bir ilem yaparak alr MPI_Barrier() - Grup senkronizasyonu * MPI_SendRecv() - kili senkronizasyon TBIL-106 DEV #22
- 23. MPI rnek program #include mpi.h #include #include #define MAXSIZE 1000 void main(int argc, char **argv) { int myid, numprocs; int data[MAXSIZE], i, x, low, high, myresult, result; char fn[255]; char *fp; M P I _ I n i t ( & a r g c , & a r g v ) ; M P I _ C o m m _ s i z e ( M P I _ C O M M _ W O R L D , & n u m p r o c s ) ; MPI_Comm_rank(MPI_COMM_WORLD,&myid); if (myid == 0) { /* Open input file and initialize data */ strcpy(fn,getenv(HOME)); strcat(fn,/MPI/rand_data.txt); if ((fp = fopen(fn,r)) == NULL) { printf(Cant open the input file: %snn, fn); exit(1); } for(i = 0; i < MAXSIZE; i++) fscanf(fp,%d, &data[i]); MPI_Bcast(data, MAXSIZE, MPI_INT, 0, MPI_COMM_WORLD); /* broadcast data */ x = MAXSIZE/numprocs; /* Add my portion Of data */ low = myid * x; high = low + x; myresult = 0; for(i = low; i < high; i++) myresult += data[i]; printf(I got %d from %dn, myresult, myid); /* Compute global sum */ MPI_Reduce(&myresult, &result, 1, MPI_INT, MPI_SUM, 0, TBIL-106 DEV #23
- 24. MPI_COMM_WORLD); if (myid == 0) printf(The sum is %d.n, result); MPI_Finalize(); } MPI Derleme & altrma A. ssh / rsh hazrlanr B. Hesaplamada kullanlacak bilgisayarlarn listesi (hostfile) hazrlanr C. mpicc ile programlar derlenir D. mpirun ile altrlr TBIL-106 DEV #24
- 25. 3 Kaynaklar [1] Distributed Systems Concepts and Design, Coulouris, Dollimore, Kindberg [2] Computer Networks, Tanenbaum [3] Authentication in Distributed Systems:Theory and Practice, Lampson, Abadi, Burrows, Wobber, Digital Equipment Corporation [4] The Protection of Information in Computer Systems, Saltzer and Schroder, IEEE Invited Paper [5] Geist A, Beguelin A, Dongarra J, Jiang W, Manchek R, Sunderam V. PVM 3 Users Guide and Reference Manual. Oak Ridge National Labs. September 1994.. [6] zmen A. A Minimal Overhead Instrumentation System. Proceedings of the Fifteenth International Symposium on Computer and Information Sciences (ISCIS XV). 2000;102110. [7]MPI: Complete Reference http://www.csd.uoc.gr/~hy555/mpi/ mpi_complete_reference.pdf TBIL-106 DEV #25