Procesor IBM Cell B.E. jest niewątpliwie jednym z najbardziej odważnych
rozwiązań w dziedzinie projektowania mikroprocesorów ostatnich kilkudziesięciu
lat. W jednym fizycznym układzie krzemowym umieszczono procesor ogólnego
przeznaczenia, osiem koprocesorów oraz specjalistyczną szynę danych. Dzięki
usunięciu sprzętowych abstrakcji oddano programistom narzędzie, które świetnie
radzi sobie z intestywnymi obliczeniami wymagającymi dużej przepustowości
pamięci. Niestety, uproszczenie wnętrzności procesora wiąże się ze
skomplikowaniem modelu programistycznego. Dlatego też IBM Cell nie spotkał się
z powszechną adopcją w świecie biznesu (poza obliczeniami naukowymi i konsolą
Playstation 3).
IBM Cell B.E. oferuje środowisko programistyczne, które można opisać jako
“heterogeniczny klaster obliczeniowy”. Mimo, że jest to jeden fizyczny układ,
umiejętności zdobyte w trakcie rozwiązywania problemów z jego użyciem będą się
skalowały na prawdziwe klastry zawierające tysiące komputerów. Mowa tu o
opanowaniu technik synchronizacji, podziału na zadania, dekompozycji danych,
modelowania przepływu danych, wektoryzacji obliczeń.
Zadaniem wykładu jest nauczenie studentów praktycznych umiejętności w
rozwiązywaniu problemów algorytmicznych. Stawiane problemy będą z reguły
zrównoleglalne, obliczeniowo obciążające, za to proste od strony logicznej.
Trudność będzie polegać na adaptacji algorytmów i struktur danych do
efektywnych obliczeń z użyciem procesora IBM Cell B.E. Nacisk będzie położony
na pragmatyczne podejście do optymalizacji. Równolegle będą omawiane aspekty
architektur nowoczesnych procesorów i decyzje projektowe wpływające na kształt
modeli obliczeniowych.