Re: Wielordzeniowosc - konkretne pytanie

Autor: Robert Winkler <winkel_at_NOSPAMpoczta.fm>
Data: Wed 25 Oct 2006 - 21:12:09 MET DST
Message-ID: <ehocv1$el9$1@atlantis.news.tpi.pl>
Content-Type: text/plain; format=flowed; charset="ISO-8859-1"; reply-type=original

> Niestety nie za bardzo moge znalezc konkretny opis napisany dla takich
> laikow jak ja, na czym polega dokladnie wielordzeniowosc procesorow.
> Czy np. procesor wielordzeniowy pozwala na paralelizacje obliczen z
> poziomu uzytownika? A jesli tak, to co trzeba miec, zeby np.
> zaprogramowac obliczenia rownolegle na takim czyms? Chodzi o to, ze
> chce kupic komputer do wykonywania obliczen numerycznych bardzo latwych
> do sparalelizowania. Czy procesory wielordzeniowe to jest dobre
> rozwiazanie do czegos takiego? Czy pod Linuxem i z uzyciem darmowych
> kompilatorow gcc, g++ lub g77 bede w stanie z tej wielordzeniowosci
> skorzystac, czy tez potrzebuje do tego od strony softwareu czegos
> wiecej?

Mozesz zastanowic sie tez nad innym rozwiazaniem
Jesli potrzebujesz maszyne do bardzo szybkich obliczen
zamiast inwestowac w procesor liniowy
zainwastów w szybki procesor wektowowy,
wiec zamiast inwestowac w CPU sprobuj
wykorzystac moc obliczeniowo obecnie posiadanego GPU
a pózniej zamien go na szybszy.
Aktualne karty graficzne oferuja moc obliczeniowa
przewyzszajaca moc procesora centralnego o kilka rzedów wielkosci
przykladowo GeForce 7800 GT oferuje 165 GFLOPS
podczas gdy komputer z dwoma dwurdzeniowymi procesorami AMD Opteron 870
pracujacymi z czestotliwoscia 2,2 GHz to 15 GFLOPS. (Sun Fire V40z)
(dla przypomnienia Cray-1 posiadal moc 80 MFLOPS)

Aby sporzystac z tej gigantycznej mocy obliczeniowej trzeba jednak pokonac dwa problemy
Pierwszym jest odnalezienie lub stworzenie wektorowego algorytmu
rozwiazujacego twój problem matematyczny.
Drugim jest odpowiednie zaprogramowanie jednostki vertexów znajdujacej sie w GPU
tak aby wykonal dla ciebie sposowne obliczenia.
Pierwszy problem musisz rozwiazac zamodzielnie
gdyz tylko ty znasz tematyke obliczen którymi bedziesz sie zajmowac.
Jesli chodzi o drugi, to muszisz odnalezc biblioteke
która pozwoli ci wydobyc moc kryjaca sie w GPU.

Na poczatku wrzesnia ogladalem ciekawy film na Channel 9
poswiecony wlansie temu tematowi
(http://channel9.msdn.com/showpost.aspx?postid=229585)
byl to wywiad z ludzmi zwiazanymi z Accelerator Project
tworzonym w ramach Microsoft Research
Obecnie dostepna jest juz wersja 1.0 ich biblioteki
pozwalajacej na wysokim poziomie abstrakcji
okreslenia operacji wektorowych opisujacych dany algorytm
a nastepnie na kompilacje tego na kod zrozumialy dla GPU
(http://research.microsoft.com/research/downloads/Details/50ee362a-c4d7-4fe6-9018-1b7f9c1dd5dc/Details.aspx?CategoryID=)

Jesli film i cie zaciekawi to moze znajdziesz na google inne rozwiazania
oparte na podobnych zasadach
a przeznaczona dla innych systemow operacyjnych i innych jezyków programowania.

-- 
____________
Robert Winkler 
Received on Wed Oct 25 21:15:08 2006

To archiwum zostało wygenerowane przez hypermail 2.1.8 : Wed 25 Oct 2006 - 21:51:17 MET DST