Ovu stranicu je najbolje pregledavati u modernom internet pregledniku s omogućenim JavaScriptom.

[PARPRO] 2. laboratorijska vježba - 2021/2022

Daeyarn

Maddy ja saljem stanje u obliku dva integera koji predstavljaju stupce, prvi oznacava potez racunala, a drugi oznacava potez covjeka


feel_d_boot

Ima li netko da je uspija pokreniti onaj njihov exe na lunuxu, nedamisezajebavat s ovim labosom


mmmmDa

iNut sudo apt install wine i onda sam wine x.exe


viliml

iNut

rm connect4.exe
g++ -o connect4 main.cpp board.cpp
./connect4

indythedog

indythedog Evo odgovora
Na pitanje možemo li doći isprobati na računalima na faksu koja imaju >8 jezgri, kaže da se može doći ali da imaju samo Windows 7/linux i mpich, tj. pretpostavljam da ovo znači da podržavaju samo C/C++ jer kad sam ga pitao podržavaju li Python kaže da ne. Drugim rječima tough luck za nas koji smo radili u Pythonu/nekom drugom jeziku

Na pitanje kako pokrenuti na više računala, kaže na isti način na koji je pokazao za 1. labos - pokrenemo više procesa na različitim računalima, a da točan način ovisi o konkretnoj MPI implementaciji. Kaže da npr. za microsoft mpi prilikom pokretanja se koristi mpiexec i njegove opcije, pa se u argumentima navedu čvorovi na kojima se pokreće kao IP ili mrežno ime.

Jedino što sam ja mogao naći u vezi toga je ovako nešto https://stackoverflow.com/questions/39709877/mpi-execute-program-on-more-than-one-computer, sama naredba je jednostavna ali se čini da prije toga treba napraviti dosta podešavanja, pa se ovo čini kao jako zeznut način

tldr: tko nije radio u C/C++ i nema komp sa 8 jezgri je u problemima


indythedog

indythedog
Evo nešto što bi trebalo radit:
https://stackoverflow.com/questions/15903408/specify-the-machines-running-program-using-mpi, u kombinaciji sa https://www.cyberciti.biz/faq/ubuntu-linux-install-openssh-server/

Jedina fora je da taj 2. komp na koji se spajate mora imat Linux, ali to se da zaobić korištenjem npr. wsl-a na windowsima ili slično


Bucc

indythedog


Lukak

indythedog Ja sam odgovarao Lab prosli tjedan. Racunalo mi ima 4 jezgre i nisam nista ekstra radio (jednostavno pokrenuo 8 procesa na 4 jezgre). Prof je pogledao mjerenja, skuzio da nakon 4 nema nekog napretka pa i prokomentirao da ocito imam 4 jezgre i tjt, dobio sve bodove, nisam imao nikakvog problema


Daeyarn

koji bi bio postupak ako posaljemo labos a mjerili smo na racunalu gdje procesor nema 8 jezgri, jel to samo manje bodova ili nam kazu da dodemo u sljedeci termin za pola bodova ili kak
jer nejde mi se sutra u subotu na faks iz drugog grada samo da napravim mjerenja na 8 jezgri


Retard00

Daeyarn napraviš labos sa onolko jezgri kolko imaš i bok. Ak pogledaš na ferku, na predaji zadatka, nikakva mjerenja uopće ni ne treba predat.


[obrisani korisnik]

Daeyarn pa kaj nije rok do 17.?


anon00

Pošaljite mi svoj labos, pokrenem ga na 8 jezgri pa vam pošaljem rezultate 😏


Nocna_smjena

Koliko vremena treba za ovaj labos ako neznam sto radim?


mmmmDa

Nocna_smjena najgori dio je shvatit sta se tocno trazi tak da procitaj ovu i prethodne dvije teme za labos i pogledaj 5. i 6. poglavlje u skripti


viliml

Maddy U MPI možeš slati niz brojeva - tome služi size poruke. Znači možeš poslati svih N x M brojeva koji predstavljaju ploču, samo ih treba postaviti sekvencijalno u buffer.
Ja sam kako bih smanjio volumen poruka slao samo niz poteza (indeksa stupaca). Svi procesi na početku pročitaju datoteku sa stanjem ploče i onda kad zaprime novi zadatak odsimuliraju taj prvi dio.


feel_d_boot

viliml koja ti je verzija g++ kompajlera jer meni ovaj tvoj način izbaciva pun k grešaka, neuk sam na ovom polju


Daeyarn

[obrisani korisnik] mislio sam da je sutra dok nije dosla obavijest, my bad


Tompa007

U kojem dijelu treba paralelizirati ovo? Nije mi skroz jasno, jel bi mi zadatak trebao biti provjera dali je trenutno stanje pobjeda odnosno provjera tog stanja na temelju igraca i sljedecih stanja ili kao doslovna provjera dal je ta trenutna tablica pobjednik, i u kojem dijelu treba to paralelizirat?

Recimo ako gradimo stablo do n dubine jel onda gradnja dtabla treba biti paralelizirana ili tek prolazak od dolje do gore treba biti paraleliziran temeljno po dubini, ili negdje skroz drugdje, jel neko pls skuzio kaj se trazi u zadatku nije mi nikako jasno


anon00

𝐓𝐇𝐄 𝐒𝐄𝐂𝐑𝐄𝐓 - 𝐂𝐋𝐔𝐁
Pogledaj ovaj odgovor u mailu sto je profesor napisao anon00

Po tom bi ja rekao da treba napraviti ovako (pa nek me netko ispravi ako je krivo)
Glavni proces uzme trenutno stanje ploce i za njega krene raditi stablo. Na vrhu stabla je čvor koji sadrži trenutno stanje ploce i onda u sljedecoj razini stoji 7 mogucih koraka koje racunalo moze napraviti, a za svaki od tih 7 mogucih koraka ima jos 7 mogucih koraka koje nakon tog covjek moze napraviti (ovo je sad 2. razina stabla). Ovo se vrtilo u glavnom procesu slijedno i sad imas stablo koje ima 2 razine, a u toj drugoj razini imas 49 cvorova - to ces pretvoriti u 49 zadataka koje ces dodjeljivati radnicima, a svaki radnik ce u jednom zadatku slijedno dalje za sebe napraviti podstablo do one razine koja mu je određena parametrom (npr do razine 7).

Dakle glavni proces pocinje kreirati stablo do druge razine gdje ima 49 cvorova - to pretvoris u zadatke i paraleliziras i daš radnicima da za svaki od tih zadataka slijedno izvrše algoritam (prakticki samo trebaju pokrenuti onaj njihov c++ primjer) i vrate ti najbolji rezultat (onaj decimalni broj).
Kad se na toj 2. razini svih 49 radnika izvrši i vrate tu ocjenu onda valjda (slijedno, samo glavni proces) treba odrediti koji je potez najbolji.

Moguce da sam totalno u krivo, ali mi ovo jedino ima smisla

Spuk Pretpostavljam kao i prosli labos - pokreni program i pokazi da radi, zatim komentiraj kod i sto si gdje napravio i zbog cega i jos ce trebati pokazati ona dva grafa (ubrzanje i ucinskovitost)


Spuk

Sta ce se provjeravat kad mi dodjemo na termin labosa? Ocemo tamo morat to izvrtit ili komentirat kod ili sta?


Fikalo

Spuk vjerojatno to a i ove ostale stvari koje su napisane u tekstu zadatka, dokumetacija koja opisuje faze razvoja i grafove ubrzanja i učinkovitosti


Spuk

Fikalo sta ce onda ispitivat jednu osobu pol sata da prodju korz to sve. Pa di je kraj ovom maltretiranju vise


Fikalo

anon00 a kaj s ovim

nisam vidio drugdi da se to spomnje, na ferku se spominju samo grafovi s mjerenjima, je briemo da se i to treba?


BillIK

anon00 Dakle glavni proces pocinje kreirati stablo do druge razine gdje ima 49 cvorova - to pretvoris u zadatke i paraleliziras i daš radnicima da za svaki od tih zadataka slijedno izvrše algoritam (prakticki samo trebaju pokrenuti onaj njihov c++ primjer) i vrate ti najbolji rezultat (onaj decimalni broj).

šta je stvarno ta njihova Evaluate metoda ekvivalentna ovome ((broj_pobjeda_u_dubini_n - broj_poraza_u_dubini_n)/(broj_mogućih_poteza) što nas traži?


Tompa007

anon00 Kolega, VELIKO Hvala


« Prethodna stranica Sljedeća stranica »