0% au considerat acest document util (0 voturi)
9 vizualizări6 pagini

A. Genereaza Genereaza Aleator Doua Siruri Cu N Elemente Fiecare Initializate Cu Numere Aleatoare

Încărcat de

Ramona
Drepturi de autor
© All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca PDF, TXT sau citiți online pe Scribd
0% au considerat acest document util (0 voturi)
9 vizualizări6 pagini

A. Genereaza Genereaza Aleator Doua Siruri Cu N Elemente Fiecare Initializate Cu Numere Aleatoare

Încărcat de

Ramona
Drepturi de autor
© All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca PDF, TXT sau citiți online pe Scribd

5.

Scrieti un program C sau C++ care contine trei functii: genereaza(), sorteaza() si contopeste():

A. genereaza() genereaza aleator doua siruri cu N elemente fiecare initializate cu numere aleatoare

B. sorteaza() sorteaza cele doua siruri folosind o functie scrisa de dvs. (nu se permite folosirea functiilor
de sortare din librarii)

C. contopeste() contopeste cele doua siruri sortate intr-un sir de dimensiune 2N. Numarul N este o
constanta definita in header-ul "constante.h"

D. Eliminati toate mesajele tiparite de program cu exceptia printarii numarului de elemente N si realizati
profilul de rulare al programului folosind utilitarul gprof.

Pentru a accesa manualul de utilizare rulati din terminal comanda 'man gprof'. Ajustati numarul de
elemente N pentru ca timpul de rulare sa fie de minim 10 secunde. Pentru a determina timpul de rulare
folositi comanda "time ./nume_executabil_program".

time ./cod_obiect

$ gprof ./cod_obiect [Link]


E. Modificati programul pentru a avea doua functii separate care implementeaza doi algoritmi diferiti de
sortare la alegere (de exemplu, bubble sort si quick sort). Folositi un algoritm de sortare pentru a sorta
primul sir si celelalalt algoritm de sortare pentru a sorta al doilea sir. Realizati noul profil de rulare,
ajustand numarul de elemente pentru ca timpul de rulare sa fie de minim 10 secunde.

Creare profil de rulare

N=780

F. Recompilati programul si refaceti profilul de rulare adaugand succesiv urmatoarele flag-uri de


compilator:
-O0
-O1
-O2
-O3

G. Creati header-ul "alg_sort.h" in care treceti prototipurile celor doua functii de sortare. Mutati fiecare
functie de sortare in propriul fisier .c (de exemplu, bubblesort.c si quicksort.c).

Scrieti un Makefile pentru a automatiza procesul de compilare.

H. Adaugati la Makefile optiuni de a compila pentru performanta maxima, pentru debugging, pentru
profiling, si pentru a curata fisierele temporare ("make clean").

I. Monitorizati frecventa de ceas si temperatura procesorului inainte de rulare si in timpul rularii


programului. Folositi urmatoarele comenzi din linia de comanda:
vcgencmd measure_temp
vcgencmd measure_clock arm
J. Inlocuiti cea mai lenta functie de sortare cu Bitonic Sort implementata cu OpenMP pe 4 core-uri.
Repetati profiling-ul cu gprof, masurarea temperaturii, masurarea frecventei procesorului. Timp de
rulare minim 60 de secunde. In timpul rularii faceti un screenshot al utilitarului htop pentru a vedea ca
toate cele 4 core-uri sunt utilizate.

K. Faceti un grafic cu scalarea vitezei lui Bitonic Sort cu OpenMP care foloseste 1, 2, 3, sau 4 core-uri de
pe Raspberry Pi.
ci
CIOBANU Catalin Bogdan
4:08 PM

[Link]

ci
CIOBANU Catalin Bogdan
4:09 PM

varianta free

ssh -p <port_ssh> <user>@[Link]

[Link]:<port_remotedesktop>

ci
CIOBANU Catalin Bogdan
4:11 PM

schimbare parola

passwd

Pt makefile

[Link]

[Link]

[Link]
8843-winSCP

user: marcum

pass: Changeme!!!

port ssh 8843

port remotedesktop 8863

tema generala

tehnologii

istoric

digits – 30 cifre

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