Prezentare a proiectului de semestru, ce a constat in incercarea de a paraleliza un tool de benchmarking, sustinuta in ianuarie 2011, in cadrul laboratorului final al materiei Arhitecturi si Prelucrari Paralele (Facultatea de Automatica si Calculatoare - Universitatea Politehnica Bucuresti).
These slides are part of the Android Development Course which I taught to 10 students, while participating in the IP Workshop Summer School 2011.
http://www.scoaladevara.info/2011/?page_id=39
Prostate cancer is among the leading causes of cancer death among American men, second only to lung cancer. Learn more about prostate cancer and how New Jersey CyberKnife's noninvasive treatment may work for you.
These slides are part of the Android Development Course which I taught to 10 students, while participating in the IP Workshop Summer School 2011.
http://www.scoaladevara.info/2011/?page_id=39
The document describes the software architecture of Voicenger, an application for structured group communication. It uses a peer-to-peer architecture with client and server components to allow high quality voice chatting. The client has interfaces for the user interface, peer communication, and profile storage on the server. Key high-level modules include the GUI, file processing, sound, messaging, and interfaces to the JXTA peer network and backend database. Use cases cover user registration, chat, file sharing, and integrating with social networks. Appendices provide more details on data transfer and message rendering.
These slides are part of the Android Development Course which I taught to 10 students, while participating in the IP Workshop Summer School 2011.
http://www.scoaladevara.info/2011/?page_id=39
These slides are part of the Android Development Course which I taught to 10 students, while participating in the IP Workshop Summer School 2011.
http://www.scoaladevara.info/2011/?page_id=39
Prostate cancer is among the leading causes of cancer death among American men, second only to lung cancer. Learn more about prostate cancer and how New Jersey CyberKnife's noninvasive treatment may work for you.
These slides are part of the Android Development Course which I taught to 10 students, while participating in the IP Workshop Summer School 2011.
http://www.scoaladevara.info/2011/?page_id=39
The document describes the software architecture of Voicenger, an application for structured group communication. It uses a peer-to-peer architecture with client and server components to allow high quality voice chatting. The client has interfaces for the user interface, peer communication, and profile storage on the server. Key high-level modules include the GUI, file processing, sound, messaging, and interfaces to the JXTA peer network and backend database. Use cases cover user registration, chat, file sharing, and integrating with social networks. Appendices provide more details on data transfer and message rendering.
These slides are part of the Android Development Course which I taught to 10 students, while participating in the IP Workshop Summer School 2011.
http://www.scoaladevara.info/2011/?page_id=39
Un articol despre SSD-uri scris in octombrie 2010 pentru o revista, pe nume Console, al carui prim numar nu a mai reusit sa vada niciodata lumina zilei.
Bibliografie:
http://www.anandtech.com/show/2738
http://www.anandtech.com/show/2829
http://www.anandtech.com/show/2614
http://en.wikipedia.org/wiki/Solid-state_drive
The document discusses the 3-D Secure protocol, which was created by Visa in 2001 to add security to online credit card transactions. It does this through an authentication step where the cardholder authenticates themselves with their card-issuing bank during the transaction. The protocol uses XML messages over SSL and a three-domain model including the issuer, acquirer, and interoperability domains. It provides advantages like reduced fraud and increased customer satisfaction but also has disadvantages like potential for phishing and incompatibility with some mobile browsers. Overall, the 3-D Secure protocol has become an industry standard despite some limitations.
These slides are part of the Android Development Course which I taught to 10 students, while participating in the IP Workshop Summer School 2011.
http://www.scoaladevara.info/2011/?page_id=39
These slides are part of the Android Development Course which I taught to 10 students, while participating in the IP Workshop Summer School 2011.
http://www.scoaladevara.info/2011/?page_id=39
These slides are part of the Android Development Course which I taught to 10 students, while participating in the IP Workshop Summer School 2011.
http://www.scoaladevara.info/2011/?page_id=39
[Curs Android] C04 - User Interface (IPW 2011)Vlad Petre
These slides are part of the Android Development Course which I taught to 10 students, while participating in the IP Workshop Summer School 2011.
http://www.scoaladevara.info/2011/?page_id=39
These slides are part of the Android Development Course which I taught to 10 students, while participating in the IP Workshop Summer School 2011.
http://www.scoaladevara.info/2011/?page_id=39
These slides are part of the Android Development Course which I taught to 10 students, while participating in the IP Workshop Summer School 2011.
http://www.scoaladevara.info/2011/?page_id=39
The document describes a team from Politehnica University of Bucharest called Team Bucharest, consisting of 4 members, that is participating in the Suceava Hard&Soft 2011 competition. Their project involves creating an off-grid home automation system that monitors available energy from alternative sources, uses smart plugs and light dimmers to adjust automatically based on the energy levels, and aims to use energy efficiently with low-power components and profile-based settings. A system diagram is also included.
This document provides an overview of the Voicenger software, which allows groups of friends to communicate and make decisions together. It uses a peer-to-peer architecture to allow for high quality voice conversations without overloading a central server. The application consists of client and server components, uses various technologies like JXTA for networking and a database for profile storage. It provides features for chat, voice calls, conferencing, polling, file sharing and social media integration to support organized discussion and decision making.
Voicenger - System Requirements SpecificationVlad Petre
The document is a system requirements specification for an application called Voicenger. It describes the problem the application aims to solve, which is a lack of structured communication tools for planning and decision making between friends. The solution proposed is a software application that combines features of chat, voice, and social networking applications. It allows users to register, add friends, participate in group chats, call friends, and update their social media statuses. The functional requirements define the user profiles and describe use cases. The system architecture has client and server components. Non-functional requirements address the interface, performance, availability and testing.
Un articol despre SSD-uri scris in octombrie 2010 pentru o revista, pe nume Console, al carui prim numar nu a mai reusit sa vada niciodata lumina zilei.
Bibliografie:
http://www.anandtech.com/show/2738
http://www.anandtech.com/show/2829
http://www.anandtech.com/show/2614
http://en.wikipedia.org/wiki/Solid-state_drive
The document discusses the 3-D Secure protocol, which was created by Visa in 2001 to add security to online credit card transactions. It does this through an authentication step where the cardholder authenticates themselves with their card-issuing bank during the transaction. The protocol uses XML messages over SSL and a three-domain model including the issuer, acquirer, and interoperability domains. It provides advantages like reduced fraud and increased customer satisfaction but also has disadvantages like potential for phishing and incompatibility with some mobile browsers. Overall, the 3-D Secure protocol has become an industry standard despite some limitations.
These slides are part of the Android Development Course which I taught to 10 students, while participating in the IP Workshop Summer School 2011.
http://www.scoaladevara.info/2011/?page_id=39
These slides are part of the Android Development Course which I taught to 10 students, while participating in the IP Workshop Summer School 2011.
http://www.scoaladevara.info/2011/?page_id=39
These slides are part of the Android Development Course which I taught to 10 students, while participating in the IP Workshop Summer School 2011.
http://www.scoaladevara.info/2011/?page_id=39
[Curs Android] C04 - User Interface (IPW 2011)Vlad Petre
These slides are part of the Android Development Course which I taught to 10 students, while participating in the IP Workshop Summer School 2011.
http://www.scoaladevara.info/2011/?page_id=39
These slides are part of the Android Development Course which I taught to 10 students, while participating in the IP Workshop Summer School 2011.
http://www.scoaladevara.info/2011/?page_id=39
These slides are part of the Android Development Course which I taught to 10 students, while participating in the IP Workshop Summer School 2011.
http://www.scoaladevara.info/2011/?page_id=39
The document describes a team from Politehnica University of Bucharest called Team Bucharest, consisting of 4 members, that is participating in the Suceava Hard&Soft 2011 competition. Their project involves creating an off-grid home automation system that monitors available energy from alternative sources, uses smart plugs and light dimmers to adjust automatically based on the energy levels, and aims to use energy efficiently with low-power components and profile-based settings. A system diagram is also included.
This document provides an overview of the Voicenger software, which allows groups of friends to communicate and make decisions together. It uses a peer-to-peer architecture to allow for high quality voice conversations without overloading a central server. The application consists of client and server components, uses various technologies like JXTA for networking and a database for profile storage. It provides features for chat, voice calls, conferencing, polling, file sharing and social media integration to support organized discussion and decision making.
Voicenger - System Requirements SpecificationVlad Petre
The document is a system requirements specification for an application called Voicenger. It describes the problem the application aims to solve, which is a lack of structured communication tools for planning and decision making between friends. The solution proposed is a software application that combines features of chat, voice, and social networking applications. It allows users to register, add friends, participate in group chats, call friends, and update their social media statuses. The functional requirements define the user profiles and describe use cases. The system architecture has client and server components. Non-functional requirements address the interface, performance, availability and testing.
3. Descrierea Proiectului
• SIM este un program serial bazat pe tehnici de
programare dinamică, care caută similarităţi locale
între două şiruri de caractere sau în cadrul aceleaşi
secvenţe, folosind ponderi afine.
• Ca utilizare practică a acestui program, putem aminti
compararea de secvenţe ADN sau rularea de
benchmarkuri.
3 11.01.2011
6. OpenMP
• Abordare: introducerea de directive OpenMP de
genul #pragma omp section sau #pragma omp
for acolo unde este cazul.
6 11.01.2011
7. Problema Principală
• Puţine zone de cod cu potenţial de paralelizare
datorită algoritmului (avem multe dependinţe de
date în zonele de cod care rulează mult timp).
7 11.01.2011
8. Exemplu de Dependinţe
register long f; //f – este o variabilă globală (deci shared)
for ( i = m1 + 1; i <= mm; i++)
{ // Notă: Am scos liniile de cod irelevante din acest exemplu
f = - (q); //iniţializarea lui f
limit = i + 1;
for ( j = limit ; j <= nn ; j++ )
{
f = f - r; //dacă ar fi doar asta, aş putea să paralelizez
if ( f < c )
{
f = c; //dar eu nu pot şti când se intră aici
}
myf = f; //utilizarea variabilei în buclă
}
} // În “for”-ul principal mai avem o dependinţă pe care o va
prezenta colegul meu peste câteva momente.
8 11.01.2011
9. Problema Secundară
• Aplicarea directivelor OpenMP acolo unde este
posibil (banale iniţializări ...) nu rentează datorită
overhead-ului mare în lucrul cu threaduri
comparativ cu câştigul computaţional.
9 11.01.2011
10. Rezultate OpenMP
• Varianta paralelizată durează mai mult decât cea
serială datorită overhead-ului mare şi a
posibilităţilor reduse de a folosi directive OpenMP.
10 11.01.2011
11. Pthreads
• Adăugarea unei rutine de execuţie a instrucţiunilor
din “for-ul” cel mai din exterior din funcţia
small_pass.
11 11.01.2011
12. Problema Pthreads
• Dependenţa de date din for-ul exterior al porţiunii principale a
funcţiei:
for ( i = m1 + 1; i <= mm; i++) {
...
for ( j = limit ; j <= nn ; j++ ) {
/* citire RR[j] */
ci = RR[j]; //RR[j] este global, iar ci este local
ORDER(c, ci, cj, d, di, dj)
ORDER(c, ci, cj, f, fi, fj)
/* prelucrări ci */
RR[j] = ci; //scriere RR[j]!!
}
}
12 11.01.2011
13. Rezultate Pthreads
• Partea de iniţializare.
• Overhead mare pentru 12000 de fire.
• Impărţirea celor 12000 de fire pe bucăţi, asemănător
OpenMP.
13 11.01.2011
14. Optimizare Serială
• Problema identificată: predictibilitatea scăzută a
fluxului de instrucţiuni.
• Soluţia abordată: binary lookup table sau ceva
similar.
14 11.01.2011
16. Varianta 1
for (j = 1; j <= N; j++) for (...)
{ {
if ( (c = c - qr) > (e = e – r) )
...
e = c;
if ((c = CC[j] - qr) > (d = DD[j] - r)) lookup_table[0] = c;
d = c; lookup_table[1] = d;
lookup_index = (c < d);
c = lookup_table[lookup_index];
DIAG(i+I, j+J, c, s+va[B[j]]);
...
if (c < d)
c = d; }
if (c < e)
c = e;
s = CC[j];
CC[j] = c;
DD[j] = d;
}
16 11.01.2011
17. Rezultate Varianta 1
Dar timpul total de execuţie este mai mare: aproximativ 105s faţă de 90s pe un Intel Celeron
550 tactat la 2 GHz.
17 11.01.2011
19. Rezultate Varianta 2
Dar timpul total de execuţie rămâne în continuare mai mare: aproximativ 115s faţă de 90s pe
un Intel Celeron 550 tactat la 2 GHz.
19 11.01.2011
20. Rezultate Finale
Varianta Optimizare Timp de rulare
Serial iniţial -g 1m20s
Serial iniţial -O3 29s
Serial optimizat -g 1m22s
OpenMP -g 1m22s
Pthreads -g 1m15s
Notă:
• S-au folosit două fişiere de intrare, fiecare având dimensiunea de 12 KB.
• Testele au fost efectuate pe Cluster, pe IBM-Opteron cu rezervare de 4 sloturi.
20 11.01.2011
21. Concluzii
• Din păcate, datorită faptului că algoritmul are un
grad ridicat de dependinţe de date, părţile cu
adevărat importante din cod nu au putut fi
paralelizate.
• Structura codului serial nu permite intervenţii de
profunzime. Iar pentru cele de suprafaţă, raportul
dintre overhead-ul introdus şi timpul câştigat este
nefavorabil.
21 11.01.2011
22. Referinţe
• http://www.google.com/codesearch/p?hl=en#yOs0oGPVNuU/MultiSource/
– Codul original al proiectului pe Google Code Search.
• https://ncit-cluster.grid.pub.ro/trac/APP2010/wiki/SIM:/
– Documentaţia proiectului nostru.
• https://svn-batch.grid.pub.ro/svn/APP2010/proiecte/SIM/
– Codul proiectului nostru.
• http://en.wikibooks.org/wiki/Optimizing_C++
• http://www-graphics.stanford.edu/~seander/bithacks.html
22 11.01.2011