Upload
goran-sicanica
View
217
Download
0
Embed Size (px)
Citation preview
7/24/2019 RRS_PITANJA_2015_16
http://slidepdf.com/reader/full/rrspitanja201516 1/9
RASPODIJELJENI RAČUNALNI SUSTAVI ISPITNA PITANJA
2015/2016.
Predavanje 1
1. Usporedite raspodijeljeno i centralizirano računarstvo, te navedite barem tri
primjera raspodijeljenih računalnih sustava. 2. Skicirajte programske komponente raspodijeljenog sustava, te ukratko objasnite
ulogu svake od njih.
3. Navedite i ukratko objasnite barem 5 izazova raspodijeljenog računarstva.
4. Objasnite problem i rješenja proširivosti/nadogradivosti raspodijeljenogračunalnog sustava.
5. Objasnite problem i rješenja transparentnosti raspodijeljenog računalnogsustava.
6. Ukratko usporedite asinkroni i sinkroni raspodijeljeni sustav.
7. Navedite barem 5 proizvoljnih i vremenskih pogrešaka u raspodijeljenomračunalnom sustavu.
8. Navedite osnovne ciljeve posredničkog sloja. 9. Objasnite osnovna svojstva raspodijeljenih aplikacija i skicirajte postupak
pozivanja poslužitelja od strane klijenata. 10. Skicirajte osnovne oblike organiziranja procesora i memorije u raspodijeljenim
računalnim sustavima, te oblike višeprocesorskih i višeračunalnih sustava. 11. Usporedite prema stupnju transparentnosti, osnovi komuniciranja, upravljanju
resursima, nadogradivosti i otvorenosti raspodijeljene, mrežne i posredničkizasnovane OS.
Predavanje 2
12. Skicirajte prema razini složenosti paradigme raspodijeljenih računalnih sustava.
13. Skicirajte i ukratko objasnite paradigmu izmjene poruka.
14. Skicirajte i ukratko objasnite paradigmu klijent-poslužitelj. 15. Skicirajte i ukratko objasnite P2P raspodijeljenu paradigmu.
16.
Ukratko objasnite i usporedite point-to-point i publish/subscribe modele poruka.17. Skicirajte i ukratko objasnite poziv udaljene procedure (RPC).
18. Skicirajte i ukratko objasnite poziv udaljene metode (RMI).
19. Skicirajte i ukratko objasnite Object Request Broker (ORB) paradigmu
20. Ukratko objasnite paradigmu prostora objekata.
21. Ukratko skicirajte i objasnite paradigmu mobilnih agenata.
Predavanje 3
22. Objasnite prednosti i nedostatke višenitnosti u raspodijeljenim računalnimsustavima.
23. Ukratko navedite najbitnije detalje dizajna klijenta i detalje dizajna poslužitelja. 24.
Skicirajte spajanje klijenta na poslužitelj korištenjem daemona i korištenjemsuperposlužitelja.
7/24/2019 RRS_PITANJA_2015_16
http://slidepdf.com/reader/full/rrspitanja201516 2/9
25. Skicirajte način rada višenitnog poslužitelja organiziranog po modeludispečer/radnik.
26. Ukratko objasnite postupak i razloge migriranja koda.
Predavanje 4
27.
Navedite korake poziva udaljene procedure.
28. Skicirajte način međudjelovanja klijenta i poslužitelja kod asinkronog RPČ-a.
29. Skicirajte jednostavnu organizaciju udaljenog objekta s proxyjem na prijemnoj
strani.
30. Navedite osam koraka stvaranja raspodijeljene aplikacije korištenjem RMI-ja.
31. Ukratko objasnite pojam socketa, te programiranje socketa TCP-om, te ga
usporedite s izvedbom UDP-om.
Predavanje 5
32. Skicirajte izravno i T-razinsko dodjeljivanje imena u raspodijeljenim sustavima.
33.
Ukratko objasnite hijerarhijski pristup lociranja entiteta.34. Ukratko objasnite mobilne entitete s gledišta dodjeljivanja imena. 35. Ukratko definirajte pojmove: LDAP, UDDI i WSDL
Predavanje 6
36. Skicirajte i ukratko objasnite Čristianov algoritam sinkronizacije fizičkog sata. 37. Ukratko objasnite pojam logičkih satova u raspodijeljenim računalnim sustavima
s osvrtom na Lamportove satove.
38. Usporedite prema bitnim pokazateljima tri algoritma međusobnog isključivanja. 39. Objasnite i po potrebi skicirajte Bullyjev algoritam nadglasavanja.
Predavanje 7
40. Navedite barem 3 mehanizma koji podržavaju paradigmu raspodijeljenihobjekata.
41. Ukratko objasnite osnove rada Java RMI arhitekture.
42. Ukratko objasnite osnove rada CORBA sustava raspodijeljenih objekata.
Predavanje 8
43. Navedite na koja sve pitanja trebaju odgovoriti problemi paralelizacije.
44. Skicirajte model raspodijeljenog računala, te objasnite osnovnu razliku izmeđugrozda i spleta računala.
45. Ukratko objasnite osnovne modele (paradigme) paralelnih programa.
46. Napišite i ukratko objasnite izraz za ubrzanje prema Amdahlovom zakonu.
47. Navedite osnovne korake pretvorbe slijednog algoritma u paralelni.
48. Navedite i ukratko objasnite barem 2 tipa dekompozicije problema za rad na
paralelnoj platformi.
49. Objasnite pojam funkcionalne dekompozicije problema prilikom prilagodbe
serijskog programa paralelnom izvođenju. 50. Objasnite pojam raščlanjivanja domene problema prilikom prilagodbe serijskog
programa paralelnom izvođenju.
51.
Navedite osnovne značajke nakupina računala (engl. cluster), te ukratko opišitebarem 3 vrste od njih.
7/24/2019 RRS_PITANJA_2015_16
http://slidepdf.com/reader/full/rrspitanja201516 3/9
Predavanje 9
52. Što je OpenMP i koje su njegove 3 glavne komponente?
53. Navedite osnovne elemente programske okoline OpenMP-ja.
54. Objasnite i pokažite primjer korištenja smjernice (pragma) za paraleliziranje for
petlje.55.
Napišite i objasnite ulogu funkcija omp_get_num_procs() i
omp_set_num_threads().
56. Navedite opcije (klauzule) smjernice definiranja vidljivosti varijabli i pokažiteprimjer uporabe private.
57. Objasnite mogućnosti redukcije (reduce) u OpenMP-ju i pokažite primjer
korištenja iste.
58. Objasnite mogućnosti i opcije raspoređivanja u OpenMP-ju.
59. Objasnite i na primjeru pokažite uporabu smjernica parallel, for, single, nowait isections.
60. Koja su 2 glavna pristupa paralelizmu pomoću OpenMP-ja?
61.
Koja je razlika između zajedničkih i privatnih varijabli OpenMP smjernica? 62. Navedite i ukratko objasnite 3 temeljne funkcije OpenMP okruženja.
Predavanje 10
63. Objasnite pojam spleta računala (engl. grid) kroz postojeće definicije, te navedite
barem 4 oblika upotrebe takvih sustava.
64. Skicirajte slojeve građe spleta računala i njegovih posredničkih slojeva. 65. Navedite i ukratko objasnite barem 4 usluge spleta računala. 66. Usporedite potencijal spleta računala sa strane njegovih potrošača i davatelja
usluga.67. Opišite što je Grid Service Broker (GSB) i navedite njegove glavne mogućnosti. 68. Navedite barem 3 primjera spleta računala u primjeni i ukratko ih opišite.
Predavanje 11
69. Opišite osnovna načela oblaka računala (engl. cloud computing).
70. Opisno usporedite (ili skicirajte) oblak računala s ostalim računalnimtehnologijama slične namjene.
71. Navedite i ukratko objasnite osnovne modele isporuke oblaka računala. 72. Navedite barem 7 usluga koje može ponuditi oblak računala.
73.
Što mora ispunjavati oblak računala da bi se mogao nametnuti kao optimalanizbor mogućem korisniku?
74. Skicirajte građu Google App Engine-a i objasnite njegovu ulogu.
75. Što je Microsoft Windows Azure, čemu služi i koji su alati potrebni krajnjemkorisniku za njegovu upotrebu?
76. Usporedite Amazon, Microsoft i Google po pitanju svojstava njihovih PaaS usluga.
Predavanje 12
77. Ukratko objasnite višeslojnu arhitekturu na webu zasnovanih sustava i skicirajtenačin korištenja ČGI programa na poslužiteljskoj strani.
78. Skicirajte HTTP načina spajanja i objasnite HTTP metode.
79.
Objasnite SOAP protokol i njegovo korištenje.
7/24/2019 RRS_PITANJA_2015_16
http://slidepdf.com/reader/full/rrspitanja201516 4/9
80. Objasnite osnove načina rada i načela REST (engl. Representational State
Transfer) arhitekture.
81. Skicirajte i objasnite skalabilnu sadržajno osviještenu (engl. content-aware)
nakupinu web poslužitelja.
Predavanje 13
82. Opišite probleme postojećih računala visokih performansi sa stajališta potrošnjeenergije.
83. Navedite i opišite principe uštede energije procesora i radne memorije. 84. Opišite virtualizaciju sa stajališta zelenog računalstva. 85. Navedite energetski učinkovite tehnologije prema slojevima primjene.
Predavanje 14
86. Definirajte pojam velikih skupova podataka (engl. Big Data), te navedite i ukratko
objasnite tri glavna izazova u tom području. 87.
Ukratko objasnite proces ETL i njegove zadaće. 88. Ukratko opišite sustav Hadoop, te njegove glavne dijelove. 89. Ukratko opišite način rada i navedite osnovne funkcije programskog modela
MapReduce.
90. Ukratko objasnite ulogu i mogućnosti aplikacije Hive i sustava Pig.
LV i predavanja 8 i 991. Navedite barem tri primjera raspodijeljenih računalnih sustava, te ukratko
objasnite što ih čini raspodijeljenima. 92. Navedite željena svojstva kod stvaranja paralelnih programa.
93.
Navedite četiri faze razvoja paralelnog algoritma. 94. Navedite podjelu međuprocesne komunikacije na cjeline po nekoliko osnova.
95. Navedite datoteke zaglavlja koje moraju biti uključene u programskom kodu koji
koristi biblioteku MPI te u programskom kodu koji koristi biblioteku OpenMP.
96. Napišite i ukratko objasnite dvije osnovne funkcije koje se moraju nalaziti u
svakom MPI programu u kojem će se koristiti MPI pozivi.97. Navedite 5 tipova podataka MPI Č++ okruženja. 98. Napišite i ukratko objasnite funkcije slanja i prijema poruka blokirajuće MPI
komunikacije od točke do točke, te njihove parametre.
99. Napišite i ukratko objasnite funkcije slanja i prijema poruka komunikacije od
točke do točke bez blokiranja, te njihove parametre.100. Koje su prednosti i nedostaci MPI komunikacije bez blokiranja u odnosu na
blokirajuću MPI komunikaciju?
101. Navedite i ukratko objasnite osnovne tipove kolektivne međuprocesne
komunikacije.
102. Napišite i ukratko objasnite funkciju za razašiljanje (odašiljanje) poruke svim
procesima, te njezine parametre.
103. Napišite i objasnite funkciju za postizanje sinkronizacije na barijeri.
104. Napišite i objasnite funkciju redukcije, te njezine parametre. 105. Pretpostavite da imate MPI kôd u programskom jeziku C++, datoteka je naziva
kod.cpp. Objasnite postupak pokretanja tog programa u MPI okruženju Linuxtemeljenog OS-a, na 4 procesa. Kako biste pokrenuli program na samo 2 procesa?
7/24/2019 RRS_PITANJA_2015_16
http://slidepdf.com/reader/full/rrspitanja201516 5/9
106. Opišite općenitu strukturu MPI C++ programa.
107. Objasnite pojam komunikatora unutar MPI okruženja. 108. Kojom MPI funkcijom ćete dohvatiti broj procesa na kojima je program pokrenut?
109. Kojom MPI funkcijom ćete dohvatit i rang procesa na kojem se izvršava kod?
110.
Što će se dogoditi prilikom izvođenja sljedećeg koda na 3 procesa?
#include <iostream>#include <mpi.h>
using namespace std;
int main (int argc, char* argv[]) {
int rang, velicina;
MPI::Init(argc, argv);rang = MPI::COMM_WORLD.Get_rank();
velicina = MPI::COMM_WORLD.Get_size();
for (int i=0; i<rang; i++) {cout << "Procesor " << rang << " od " << velicina
<< ": Hello World!\n";}
MPI::Finalize();}
111. Što će se točno dogoditi nakon pokretanja sljedećeg koda na 2 procesa?
. . .
if( mojrang == 0 ){MPI::COMM_WORLD.Send(a, 100, MPI::DOUBLE, 1, 17);
}else if( mojrang == 1 ){MPI::COMM_WORLD.Recv(b, 100, MPI::DOUBLE, 0, 17, status);
}
. . .
112.
Pretpostavite MPI program koji se izvodi kroz 4 procesa. Jedan proces trebaposlati vektor od 50 elemenata svim ostalim procesima koristeći blokirajućupoint-to-point komunikaciju. Napišite dio koda koji je potreban da bi se obavila
navedena radnja (slanje i primanje).
113. Kako biste preuredili slijedeći kôd da proces 1 šalje ostalim procesima (može ihbiti više) 50 elemenata vektora b?
. . .
if( mojrang == 0 ){MPI::COMM_WORLD.Send(a, 100, MPI::DOUBLE, 1, 17);
}else if( mojrang == 1 )
7/24/2019 RRS_PITANJA_2015_16
http://slidepdf.com/reader/full/rrspitanja201516 6/9
{MPI::COMM_WORLD.Recv(b, 100, MPI::DOUBLE, 0, 17, status);
}
. . .
114.
Ukratko opišite mehanizam slanja i primanja poruka u MPI okruženju (što sedogađa s porukom prilikom slanja i primanja).
115. Kako biste preuredili navedeni kôd da ne dođe do zastoja?
. . .
if( rang == 0 ) {MPI::COMM_WORLD.Recv(b, 100, MPI::DOUBLE, 1, 19, status);MPI::COMM_WORLD.Send(a, 100, MPI::DOUBLE, 1, 17);
}else if( rang == 1 ){MPI::COMM_WORLD.Recv(b, 100, MPI::DOUBLE, 0, 17, status);MPI::COMM_WORLD.Send(a, 100, MPI::DOUBLE, 0, 19);
}
. . .
116. Što će se dogoditi pri pokretanju sljedećeg dijela koda, i zašto, ako nigdje u koduprije i poslije nema poziva funkcije MPI::Comm.Recv?
. . .
if( rang == 0 ) {MPI::COMM_WORLD.Send(a, 100, MPI::DOUBLE, 1, 17);
}else if( rang == 1 ){
MPI::COMM_WORLD.Send(a, 100, MPI::DOUBLE, 0, 19);}
. . .
117. Objasnite ulogu upravitelja zahtjeva (engl. Request Handle) kod point-to-point
komunikacije bez blokiranja, te način njegove upotrebe.
118. Navedite i objasnite dvije funkcije koje omogućuju provjeru završetka
komunikacije bez blokiranja, te opišite primjer korištenja za svaku .
119. Detaljno objasnite što će se dogoditi prilikom izvođenja sljedećeg programskog
koda
. . .
if( rang == 0 ) {zahtjev1 = MPI::COMM_WORLD.Irecv(b, 100, MPI::DOUBLE, 1, 19);MPI::COMM_WORLD.Send(a, 100, MPI::DOUBLE, 1, 17);zahtjev1.Wait(status);
}else if(rang == 1 ) {zahtjev2 = MPI::COMM_WORLD.Irecv(b, 100, MPI::DOUBLE, 0, 17);MPI::COMM_WORLD.Send(a, 100, MPI::DOUBLE, 0, 19);zahtjev2.Wait(status);
}
. . .
7/24/2019 RRS_PITANJA_2015_16
http://slidepdf.com/reader/full/rrspitanja201516 7/9
120. Koje su razlike između kolektivne međuprocesne komunikacije i point -to-point
komunikacije?
121. Koje izmjene je potrebno napraviti u sljedećem kodu, kako bi ga bilo moguće
izvesti na 10 procesa? Objasniti.. . .
MPI::Init(argc, argv);rang = MPI::COMM_WORLD.Get_rank();if(rang==5) param=23.0;MPI::COMM_WORLD.Bcast(¶m, 1, MPI::DOUBLE, 5);
. . .
122. Kako biste izmijenili navedeni kod na način da svi procesi istovremeno pozivaju
funkciju Bcast?
. . .
if(rang==matProc) cout << „Maticni proces: “ << rang;
MPI::COMM_WORLD.Bcast(¶m, 1, MPI::DOUBLE, matProc);
cout << "P:" << rang << „, “ << param << endl; MPI::Finalize();return 0;
}
123.
Navedeni kod nije ispravan, kako biste ga izmijenili da izbjegnete grešku? . . .
if(rang==matProc)MPI::COMM_WORLD.Bcast(&temp, 1, MPI::DOUBLE, matProc);
else MPI::COMM_WORLD.Bcast(&temp, 0, MPI::DOUBLE, matProc);
. . .
124. Opišite što će se dogoditi nakon pokretanja navedenog isječka programskog
koda, te objasnite postoji li kakvo ograničenje na broj procesa na kojima se
može pokrenuti navedeni kod.
. . .
matProc = 4;izvor = rang+1;cout << "P" << rang << ": izvorisni podatak = " << izvor << endl;
MPI::COMM_WORLD.Reduce(&izvor, &rezultat, 1, MPI::INT, MPI::PROD,matProc);
if(rang==matProc)cout << "P" << rang << ": rezultat = " << rezultat << endl;
MPI::Finalize();return 0;
}
7/24/2019 RRS_PITANJA_2015_16
http://slidepdf.com/reader/full/rrspitanja201516 8/9
125. Kako biste paralelizirali navedeni kod pomoću OpenMP-ja?
. . .
for(i=0; i<dim; i++) {for(j=0; j<dim; j++) {
for(k=0; k<dim; k++) {matrix3[i][j]+=matrix1[i][k]*matrix2[k][j];
}}
}
. . .
126. Koje izmjene je potrebno napraviti u sljedećem programskom kodu kako bi
paralelni dio (dio unutar smjernice parallel) izvršavala samo nit ranga 4? Na
koliko se minimalno niti mora pokrenuti navedeni kod kako bi takva izmjena
imala smisla?
. . .
#pragma omp parallel{
cout << „Rezultat proracuna niti 4 jest: “ << rez << endl; }
. . .
127. Što će i kako ispisivati navedeni dio programskog koda, ako je paralelni dio
izvršen na 3 programske niti? Napomena: vrijednost varijable x nije bitna.
. . .
#pragma omp parallel for private(x) ordered{
for(i=0; i<sizeA; i++) {x = workerFunction(i);#pragma omp ordered {
cout << i << " " << j << x << endl;}
}}
. . .
128. Kolika će biti vrijednost varijable br neposredno prije izlaska iz paralelnog
dijela koda (prije uništavanja niti), ako u paralelnom izvođenju sudjeluju 2 niti?
. . .
int br = 4;#pragma omp parallel for firstprivate(br)
for(i=1; i<=5; i++){br += i;
}
7/24/2019 RRS_PITANJA_2015_16
http://slidepdf.com/reader/full/rrspitanja201516 9/9
. . .
129. Kolika će biti vrijednost varijable br neposredno nakon izlaska iz paralelnog
dijela koda (nakon uništavanja niti), ako u paralelnom izvođenju sudjeluju 4programske niti?
. . .
#pragma omp parallel for lastprivate(br)for(i=1; i<=5; i++){
br = i;}
. . .
130.
Da li navedeni dio koda sadrži podatkovnu zavisnost, tj. uvjete utrkivanja (engl.race conditions)? Objasnite.
. . .
int i, j;#pragma omp parallel for private(x){
for(i=0; i<width; i++) {for(j=0; j<height; j++) {
x = workerFunction(i, j);}
}}
. . .
prof.dr.sc. Goran Martinović
dr.sc. Zdravko Krpić