AESOP – kompilator C i C++ do obliczeń równoległych

4
632
Open Source
Open Source

University of Maryland opublikował na wolnej licencji nowy kompilator C/C++ do obliczeń równoległych – AESOP. Kompilator został zaprojektowany, jako wtyczka LLVM i potrafi udźwignąć projekty, takie jak SPEC2006, czy OMP2001. AESOP jest aktualnie rozwijany przez dwie osoby i nie nadaje się jeszcze do zastosowań produkcyjnych. W przyszłości ma zastąpić w niektórych miejsach GCC, G++ i GFortrana.

Poniżej kod źródłowy:
[bash]#include <math.h>
#include <stdlib.h>
#define N 1024

int main(void){
double data[N];
double sum = 0.0;

for(int i=0; i<N; i++)
data[i] = rand();

for(int i=0; i<N; i++)
sum += data[i];

return 0;
}
[/bash]

i analiza polecenia aesopcc -g input.c:

Invoking AESOP.
	Writing temporary bytecode...
	Running AESOP optimizations...
	 Loop main:for.body has a loop carried memory dependence, hence will not be parallelized  [input.c:9]
		Dependence example: between memory operations at [input.c:10:15] and [input.c:10:15].
	 Loop main:for.inc7 carries no dependence, hence is being parallelized  [input.c:12]
	Num Loops Parallelized 1
	Optimizations completed.
Poprzedni artykułNDISwrapper 1.58
Następny artykułPureOS 7.0
Michał Olber
Interesuję się głównie sprzętem i działaniem jego pod systemami GNU/Linux. Testuję różne dystrybucje i robię recenzje. Interesuję się działaniem sprzętu pod Linuksem, dzięki czemu wiem, jaki zestaw komputerowy wybierać :)

4 KOMENTARZE

  1. Nie bardzo ma sens u mnie na 2 rdzeniach testować.

    Jak to się ma do GCC/clang z OMP? Z tego co tu wyczytałem, to AESOP nie jest kompilatorem samym w sobie, tylko optymalizatorem pętel, który sam wyznacza pętle do paralelizacji i przerabia ich bajtokod (kod pośredni llvm).

    • GCC też ci zrobi auto paralelizacje pętli od kilku wersji. Clang nie ma implementacji OMP.

ZOSTAW ODPOWIEDŹ

Proszę wpisać swój komentarz!
Proszę podać swoje imię tutaj