Sunteți pe pagina 1din 2

LAB4

Cerinta:

Se considera n polinoame reprezentate prin lista de monoame (reprezentare: lista


inlantuita ordonata dupa exponentii monoamelor).

Se cere adunarea polinoamelor folosind o implementare multithreading (p threaduri).

Polinoamele se citesc din fisiere – cate un fisier pentru fiecare polinom:

- un fisier contine informatii de tip (coeficient, exponent) pentru fiecare monom al

unui polinom.

Analiza Codului:

Cerinta necesita o implementare atat secventiala, cat si paralela. Astfel, in modulul


GenerateFiles generam cate fisiere avem nevoie, cu numere random separate prin
spatiu.

Pentru implementarea secventiala, se parcurg fisierele, se adauga continutul in lista


sortata inlantuita, si se afiseaza rezultatul final.

Pentru cea paralela insa, luam fiecare monom din fisiere si il punem in coada, dupa
care in ThreadConsumer luam din coada cate un nod pe rand si il adaugam in lista
inlantuita, fie il adunam la un nod deja existent din ea.

Analiza timpului de executie pentru urmatoarele cazuri:

1) 10 polinoame fiecare cu gradul maxim 1000 si cu maxim 50 monoame

a. p = 4, 6, 8

b. secvential
2) 5 polinoame fiecare cu gradul maxim 10000 si cu maxim 100 monoame

a. p = 4, 6, 8

b. secvential

1)

P=4 P=6 P=8 Secvential


Timpi 98.382307 90.310341 95.257895 76.663761

2)
P=4 P=6 P=8 Secvential
Timpi 97.932952 92.796386 96.871659 76.919193

In concluzie, observam ca timpul secvential a fost putin mai bun,insa executia paralela presupune mai
multe operatii de facut pentru a asigura o rulare corecta a programului.

S-ar putea să vă placă și