Net, programare paralelă

Probabil cel mai important dintre instrumentele noi introduse în versiunea 4.0 a .NET Framework este biblioteca de parallelizare a sarcinilor (TPL). Această bibliotecă îmbunătățește programarea multi-filetată în două moduri principale. În primul rând, simplifică crearea și utilizarea mai multor fire. În al doilea rând, vă permite să utilizați în mod automat mai multe procesoare. Cu alte cuvinte, TPL deschide posibilitatea scalării automate a aplicațiilor pentru a utiliza în mod eficient un număr de procesoare disponibile.







Datorită acestor două caracteristici ale bibliotecii TPL, se recomandă în majoritatea cazurilor să fie utilizată pentru procesarea cu mai multe fire.

Un alt instrument de programare paralel, introdus în versiunea 4.0 a .NET Framework, este limba paralelă a interogărilor integrate (PLINQ). Limba PLINQ face posibilă compunerea interogărilor, pentru care se folosesc automat mai mulți procesatori, și principiul paralelismului, dacă este cazul.

După cum reiese din cele ce urmează, solicitarea procesării paralele a interogării este foarte simplă. Prin urmare, folosind PLINQ, puteți introduce cu ușurință paralelismul în interogare.

Principalul motiv pentru apariția unor astfel de inovații importante precum TPL și PLINQ este importanța sporită a paralelismului în programarea modernă. În prezent, procesoarele multi-core au devenit deja un fenomen comun. În plus, există o nevoie tot mai mare de creștere a productivității programelor. Toate acestea, la rândul lor, au provocat o nevoie tot mai mare de mecanisme care să permită folosirea mai multor procese pentru îmbunătățirea performanței software-ului.

Dar faptul că în trecut nu a fost atât de ușor să se facă o cale clară și scalabilă. Modificați această prevedere, de fapt, și numiți TPL și PLINQ. La urma urmei, ele fac mai ușoară (și mai sigură) utilizarea resurselor de sistem.







Biblioteca TPL este definită în spațiul de nume System.Threading.Tasks. Dar, pentru a lucra cu aceasta, de obicei, trebuie de asemenea să includeți clasa System.Threading în program, deoarece acceptă sincronizarea și alte mijloace de multithreading, inclusiv cele care fac parte din clasa Interlocked.

Deși utilizarea TPL și PLINQ este acum recomandată pentru dezvoltarea celor mai multe aplicații multi-threaded, organizarea procesării filetate pe baza clasei Thread. încă găsește circulație largă.

Folosind TPL, paralelismul poate fi introdus în program în două moduri principale. Primul dintre acestea se numește paralelism de date. Prin această abordare, o operație pe un set de date este împărțită în două sau mai multe fire paralele, fiecare procesând o bucată de date. Deci, dacă fiecare element al matricei se schimbă, atunci, prin aplicarea paralelismului de date, puteți aranja procesarea paralelă a diferitelor zone ale matricei în două sau mai multe fire. Nu este greu de ghicit că astfel de acțiuni paralele pot duce la o accelerare semnificativă a prelucrării datelor comparativ cu o abordare secvențială.

Deși paralelismul cu date a fost întotdeauna posibil cu clasa Thread, construirea de soluții scalabile prin intermediul acestei clase necesită mult efort și timp. Această situație sa schimbat odată cu apariția bibliotecii TPL, prin care paralelismul de date scalabil este ușor introdus în program.

Al doilea mod de a intra în paralelism se numește paralelismul sarcinilor. Prin această abordare, două operațiuni sau mai multe sunt efectuate în paralel. Prin urmare, paralelismul sarcinilor este un fel de paralelism realizat în trecut prin intermediul clasei Thread. Și avantajele pe care le promite TPL sunt ușurința utilizării și capacitatea de a scala automat execuția codului la mai mulți procesori.

Biblioteca TPL vă permite să distribuiți în mod automat încărcarea aplicației între procesoarele disponibile dinamic, utilizând grupul de file CLR. Biblioteca TPL se ocupă de alocarea de locuri de muncă, planificarea fluxurilor, gestionarea statului și alte detalii de nivel scăzut. Ca rezultat, devine posibil să se maximizeze performanța aplicațiilor .NET. nu trebuie să se confrunte cu dificultățile legate de munca directă cu firele. Figura arată membrii noului spațiu de nume .NET 4.0:

Net, programare paralelă







Articole similare

Trimiteți-le prietenilor: