FastFlow for Mac
| Wersja | 2.0.0 |
|---|---|
| Wydawca | Computer Science Department |
| Data wydania | 30 gru 2012 |
| Data dodania | 30 gru 2012 |
| Wymagania systemu operacyjnego | Mac OS X 10.4 PPC, Mac OS X 10.5 PPC, Mac OS X 10.5, Mac OS X 10.8, Macintosh, Mac OS X 10.4, Mac OS X 10.6, Mac OS X 10.4 Intel, Mac OS X 10.7, Mac OS X 10.5 Intel |
| Wymagania | Multicore and distributed platforms. Also working on Linux. |
| Całkowita liczba pobrań | 127 |
| Cena £ | Free |
Opis
FastFlow to framework programowania równoległego C++, którego celem jest uproszczenie tworzenia wydajnych aplikacji dla platform wielordzeniowych. Kluczową wizją FastFlow jest to, że łatwość rozwoju i wydajność środowiska wykonawczego można osiągnąć poprzez podniesienie poziomu abstrakcji fazy projektowania, zapewniając w ten sposób programistom odpowiedni zestaw wzorców programowania równoległego, które można wydajnie kompilować na platformach docelowych.
FastFlow jest koncepcyjnie zaprojektowany jako stos warstw, które progresywnie abstrahują równoległość pamięci współdzielonej na poziomie rdzeni aż do definicji użytecznych konstrukcji programistycznych wspierających strukturalne programowanie równoległe na wielo- i wielordzeniowych architekturach pamięci współdzielonej spójnej z pamięcią podręczną oraz ich klastrach (patrz http://di.unito.it/fastflow ).
Architektury te obejmują standardowe, jednorodne, wielordzeniowe systemy, takie jak rdzeń Intel, AMD K10 itp. FastFlow natywnie obsługuje równoległość strumieni, ponieważ implementuje wzorce równoległości jako wykresy przepływu danych — tak zwane sieci strumieniowe.
Obsługa środowiska wykonawczego platformy FastFlow zapewnia wydajną implementację kolejek FIFO jednego producenta, jednego konsumenta (SPSC). Kolejki FastFlow SPSC są wolne od blokad, oczekiwania i nie używają powiązanych operacji. Kolejka SPSC jest używana głównie jako mechanizm synchronizacji dla wskaźników pamięci w sposób konsument-producent. Kolejny poziom rozszerza kolejki jeden-do-jednego do wielu-do-wielu synchronizacji i przepływów danych, które są implementowane tylko przy użyciu kolejek SPSC i wątków rozstrzygających, zapewniając w ten sposób wolne od blokad arbitralne sieci strumieniowe, które wymagają niewielu lub żadnych barier pamięci, oraz stąd niewiele unieważnień pamięci podręcznej.
Górna warstwa, czyli programowanie wysokopoziomowe, zapewnia ramy programistyczne oparte na wzorcach równoległych. W szczególności FastFlow zapewnia wzorce FARM, FARM-with-feedback (tj. D&C), PIPELINE, MAP i REDUCE oraz obsługuje ich dowolne zagnieżdżanie i kompozycję. Zestaw wzorców FastFlow można dodatkowo rozszerzyć, tworząc nowe szablony C++.