Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
1.2.Zawartośćksiążki
13
Dlategowprzypadkuprogramowaniarównoległegopotrzebnemechanizmy
synchronizacjidanychzarównonapoziomiepojedynczychwątków,czyteżjedno-
stekroboczych,jakteżmiędzyposzczególnymietapamirealizacjicałegoalgorytmu.
TechnologiaOpenCLdostarczatakierozwiązanienapoziomiepojedynczychwątków
poprzezpoleceniebarrieroraznapoziomiewyższym,gdziezlecasięwykonanie
pewnychobliczeńprzeztzw.jądraobliczeniowe.Wtakimprzypadkunależynp.za-
czekaćnazakończenierealizacjiobliczeń,abyrozpocząćodczytywaniedanychlub
zlecićwykonaniekolejnejproceduryobliczeniowej.
Wtymkrótkimwprowadzeniuniebędądokładnieomawianeproblemyprogra-
mowaniarównoległego,wtymtakżewspółbieżnego,gdzieistotnąrolęodgrywado-
stępdoróżnorakichzasobów.Wartojeszczepodkreślićrolęwątkówwprogramowa-
niurównoległym.Tozazwyczajwątkiwykonująoperacjenawydzielonymzbiorze
danych.Jeśliudasiętakpodzielićdane,żeniemapotrzeby,abywątkisięzesobą
komunikowały,torównoległaproceduraobliczeniowamadośćprostąpostać.Jednak
wwieluprzypadkachkoniecznabędziekomunikacjamiędzywątkami.Wykonujesię
onazapomocątzw.mechanizmupamięcidzielonej(tegotypupamięćrównieżjest
dostępnawramachOpenCL,nazwanajestpamięciąlokalną).Wprogramowaniu
równoległym,adokładniewewspółbieżnym,istotnymelementemjestsynchroni-
zacjadanychnp.zapomocąsemaforówczytzw.mutexów.WprzypadkuOpenCL
możliwościsynchronizacjiwątkówdośćograniczone,bowiemwspieranyjesttylko
mechanizmbariery,dostępnetakżetzw.instrukcjeatomowe,zapewniającespój-
nośćoperacjinapamięci.
Istniejątakżeinnesposobyrealizacjiaplikacjirównoległych,np.przezprzekazy-
waniekomunikatów,bądźpoprzeztzw.aktorów.Pojęciatewymagałybydokładniej-
szegoomówienia,jednakżeniejesttocelemtejksiązki,dlategozachęcamywtym
miejscudozapoznaniasięzespisemliteraturyzamieszczonymnakońcu.Pozycje
[Czech2013],[HerlihyShavit2010]oraz[Cormen2012]dokładniejomawiająogólne
zagadnieniazwiązanezprogramowaniemrównoległym.
1.2.Zawartośćksiążki
Książekzdziedzinyinformatykizazwyczajnieczytasięodprzysłowiowejdeskido
deski.PozycjanatematstandarduOpenCLrównieżjesttegotypuksiążką.
Wpierwszejkolejnościwartoprzeczytaćrozdział2,wktórymznajdujesięma-
teriałwstępnyopisującyarchitekturęOpenCL,atakżerozdział3,wktórymopisano
językOpenCLC.Następniemożnaprzejśćdolekturyrozdziału4,wktórympoka-
zanomniejskomplikowaneprzykładyaplikacjiwOpenCL.Pozwalająonezapoznać
sięzpodstawowymAPIOpenCL,jakietrzebastosować,abywykorzystaćmożliwości
OpenCL.Głównymjęzykiemprogramowania,jakibędziestosowany,jestjęzykC,ale
pokazanoteżprzykładydlajęzykaC++.
Rozdział5zawieradziesięćprzykładówrozwiązańróżnychzagadnień,jak
np.operacjęredukcji,wyznaczaniehistogramu,atakżedobrzeznanyprzy-
kładrysowaniazbiorufraktalnego.OpenCLoferujeteżznaczneudogodnienia