Paralelizare automată

Paralelizare automată  - optimizarea programului de către compilator , care constă în convertirea automată a acestuia într-un formular care rulează pe un computer paralel , de exemplu, pe o mașină SMP sau NUMA. Scopul automatizării paralelizării este de a elibera programatorul de procesul de paralelizare manuală, consumator de timp și predispus la erori. În ciuda faptului că calitatea paralelizării automate s-a îmbunătățit în ultimii ani, paralelizarea completă a programelor secvențiale rămâne o sarcină prea dificilă care necesită cele mai complexe tipuri de analiză a programelor.

Auto-paralelizatorul se concentrează de obicei pe constructe de control, cum ar fi bucle care procesează matrice, deoarece, în general, cea mai mare parte a execuției programului are loc în bucle de un fel. Compilatorul paralel încearcă să împartă bucla în părți, astfel încât iterațiile sale separate să poată fi executate pe diferite procesoare în același timp.

Analiza programului

Compilatorii analizează înainte de a face paralelizarea pentru a răspunde la următoarele întrebări:

Dificultăți

Paralelizarea automată este dificilă pentru compilatori din motive:

Datorită complexității paralelizării automate complete, există mai multe abordări pentru a o simplifica:

Compilatoarele de paralelizare timpurii

Mulți compilatori de paralelizare timpurii au lucrat cu programe scrise în Fortran , datorită restricțiilor mai stricte privind aliasarea pointerului în comparație cu C. În plus, un număr mare de programe de matematică computațională sunt scrise în Fortran, necesitând resurse mari pentru munca lor. Exemple de compilator:

Compilatoare moderne cu suport de paralelizare

Vezi și

Note

  1. 1 2 3 4 5 6 7 8 Patrick Lam. Cursul 12. Vom vorbi astăzi despre paralelizarea automată (link nu este disponibil) . ECE459: Programare pentru performanță (10 februarie 2011). Consultat la 17 noiembrie 2013. Arhivat din original pe 27 mai 2015. 
  2. 1 2 Robert van Engelen. Calcul de înaltă performanță și calculul științific . HPC @ Florida State University (3 octombrie 2012). Consultat la 17 noiembrie 2013. Arhivat din original pe 27 mai 2015.

Link -uri