Мултипроцесорски системи/К1 2021
Prvi kolokvijum 2021. godine održan je 2. novembra i trajao je 105 minuta. Postavka roka je dostupna sa stranice predmeta.
1. zadatak
Postavka
Opisati pet tipičnih klasa računara. Navesti za koje aplikacije se obično koriste, kao i najbitnije projektne ciljeve.
Rešenje
- Lični mobilni uređaji (PMD - Personal mobile devices) su prenosivi računari namenjeni za ličnu upotrebu. Najbitniji projektni ciljevi su niska cena, niska potrošnja energije i performanse u reprodukciji medija.
- Desktop računari su računari opšte upotrebe sa širokim opsegom aplikacija. Najbitniji ciljevi su odnos cene i performansi, potrošnja energije i performanse za grafiku.
- Server računari su računari za servise koji imaju velik broj korisnika i zahtevaju visok nivo pouzdanosti. Najbitniji ciljevi su propusni opseg, dostupnost/izdržljivost, potrošnja energije.
- Klasteri ili WSC (Warehouse Scale Computing) su skupovi više hiljada računara povezanih na LAN. Koriste se za SaaS (Software as a Service). Najbitniji ciljevi su dostupnost, odnos cena i performansi, potrošnja energije.
- IoT/ugrađeni računari se koriste u uređajima široke upotrebe, najčešće dizajnirani za specifične svrhe. Najbitniji ciljevi su niska cena, niska potrošnja energije i performanse specifične za njihovu primenu.
2. zadatak
- Овај задатак није решен. Помозите SI Wiki тако што ћете га решити.
Postavka
Opisati istorijske trendove u arhitekturi računara u pogledu ostvarivanja paralelizma obrade.
Rešenje
3. zadatak
- Овај задатак није решен. Помозите SI Wiki тако што ћете га решити.
Postavka
Nacrtati UMA i NUMA arhitekture. Objasniti sličnosti i razlike između njih.
Rešenje
4. zadatak
- Овај задатак није решен. Помозите SI Wiki тако што ћете га решити.
Postavka
Objasniti programski model Data parallel. Nacrtati i objasniti tipičnu arhitekturu koja podržava ovaj model.
Rešenje
5. zadatak
- Овај задатак није решен. Помозите SI Wiki тако што ћете га решити.
Postavka
Korišćenjem OpenMP tehnologije, paralelizovati deo koda u prilogu koji pronalazi parametar alfa sa zadovoljavajućom tačnošću u metodu konjugovanih gradijenata. Obratiti pažnju na efikasnost i korektnost paralelizacije. Paralelizaciju obaviti ručnim raspoređivanjem posla nitima. Smatrati da su sve promenljive ispravno deklarisane.
bool alfaSet = false;
int alfaIter = 0;
int step = 1;
double localAlfa = alfa;
double *testX = (double *) malloc(dim * sizeof(double));
while (!alfaSet) {
alfaIter += step;
localAlfa = pow(gamma, alfaIter - 1);
for (i = 0; i < dim; i++) {
testX[i] = x[i] + localAlfa * d[i];
}
if (func(testX, dim) - delta * localAlfa * b <= oldFunc) {
if (!alfaSet) {
alfaSet = true;
alfaIter = 0;
alfa = localAlfa;
}
}
}
free(testX);
Rešenje
6. zadatak
- Овај задатак није решен. Помозите SI Wiki тако што ћете га решити.
Postavka
Na koji način se promenljive podrazumevano prosleđuju u okviru OpenMP task direktive? Zbog čega je to neophodno i da li je uvek neophodno? Obrazložiti odgovor.
Rešenje
7. zadatak
- Овај задатак није решен. Помозите SI Wiki тако што ћете га решити.
Postavka
Neka se posmatra jedna numerička simulacija. Aplikacija najpre učitava parametre simulacije, zatim rešava složene sisteme linearnih diferencijalnih jednačina i na kraju upisuje rezultate svoga rada. Nakon merenja performansi sekvencijalne implementacije posmatrane aplikacije pri uobičajenoj upotrebi, dobijeni su sledeći rezultati: aplikacija 5% vremena provodi obavljajući ulazno-izlazne operacije, a 95% vremena provodi u obradi podataka. Tipično vreme obrade u okviru simulacije korišćenjem jednog jezgra je 1000s.
- Ukoliko se aplikacija paralelizuje za izvršavanje na SMP sistemu sa 4 jezgara na 2GHz sa 32GB memorije, navesti formulu za Amdalov zakon i odrediti maksimalno moguće ubrzanje koje se može postići za zadatu aplikaciju sa datom konfiguracijom.
- Šta predstavlja osobina skalabilnosti u kontekstu paralelnog računarstva i specifično paralelnog hardvera? Da li bi dodavanje novih procesorskih jezgara u slučaju pod a) doprinelo ubrzavanju opisane paralelne aplikacije i u kojim slučajevima?