Arkusz kalkulacyjny w LibreOffice przyspieszy dzięki sprzętowej akceleracji na GPU
Dla użytkowników, którzy wykorzystują Excela dobardziej zaawansowanych celów, niż podliczenie kosztów zakupów,przesiadka na LibreOffice zwykle wiąże się z nieprzyjemnymzaskoczeniem – jaki ten wolny pakiet biurowy jest powolny! I nie maw tym przesady: odziedziczony po OO.o kod Calca wieje zapachemstaroci. Jak przyznaje jeden z głównych programistów LibreOffice,wyróżniony inżynier Novella Michael Meeks, Calc bazuje napodejściu do programowania obiektowego sprzed 20 lat, kiedy toprogramistom się wydawało, że komórka arkusza powinna byćobiektem. Trwają oczywiście prace nad refaktoryzacją tego kodu,ale minie trochę czasu, zanim uda je się ukończyć: Calc nie miałnawet do tej pory testów jednostkowych – pierwsze powstajądopiero teraz.AMD, które od niedawna jest członkiem Rady Doradczejprzy rozwijającej LibreOffice The Document Foundation, ma swójpomysł na przyspieszenie arkusza kalkulacyjnego. Jak można sięspodziewać, chodzi o rozwiązanie hardware'owe, a konkretniewykorzystanie mocy procesorów graficznych. Choć w aplikacjachgraficznych czy edytorach wideo z GPU korzysta się od wielu lat, tow tej kategorii oprogramowania to nowość: jak mówi Meeks, mimoże mamy tyle tranzystorów w GPU, to przez większość czasu dlaaplikacji biznesowych one nic nie robią. Powinniśmy wykorzystywaćte tranzystory do cudownych rzeczy, i taki mamy plan. [img=opencl_opener]Zaproponowane przezAMD rozwiązanie wykorzystywać ma architekturęHSA, w której procesor graficzny ma dostęp do tej samej pamięcico aplikacja, i która szczególnie efektywna jest w czipach APU,gdzie zarówno GPU jak i CPU znajdują się w tym samym układzie.Nie trzeba tu więc wydzielać specjalnych zadań dla procesoragraficznego i koordynować jego współpracę z głównym procesoremprzez wąskie gardła kontrolerów pamięci. Sprzętowa akceleracjadla arkusza kalkulacyjnego ma polegać na wykryciu możliwych dooptymalizacji formuł w komórkach, przekształceniu ich na kodOpenCL,skompilowaniu kodu OpenCL na procesor graficzny, a następnieuruchomieniu formuły na GPU. Ma to być, według Meeksa,szczególnie efektywne dla dużych arkuszy, zawierających licznepowtórzenia tych samych formuł.Kiedy sprzętowaakceleracja zawita do LibreOffice? Żadnych terminów jak dotąd nieprzedstawiono, wiadomo jednak, że zespół pracujący nadwykorzystaniem HSA/OpenCL w pakiecie biurowym skupić się ma wpierwszej kolejności na nowych APU od AMD, które zagoszczą już wtegorocznych komputerach. Rozpoczęto też wstępne prace nadimplementacją OpenCL w maszynach pozbawionych architektury HSA, awięc np. korzystających z zestawu Intel/Nvidia.W Sieci nie brakujeoczywiście już słów krytyki pod adresem tego pomysłu: jak jedenz czytelników Slashdota skomentował sprawę, jeśli twójarkusz kalkulacyjny potrzebuje GPU do przyspieszenia obliczeń, tozapewne źle wykorzystujesz arkusze kalkulacyjne. Formalnieto uzasadniona krytyka – ale spójrzmy na rzeczywiste scenariuszewykorzystania arkuszy kalkulacyjnych, będących czymś w rodzajuscyzoryka dla biznesu. Użytkownicy lubią je ze względu naprostotę, łatwość budowania i niskie koszty – przygotowywaniededykowanych baz danych ze składowanymi procedurami do obliczeńwykracza poza umiejętności typowego księgowego. WykorzystanieOpenCL może tu faktycznie ułatwić życie tym końcowymużytkownikom, nawet jeśli nie będą mieli mocnych GPU w swoichkomputerach – ostatecznie kod ten można uruchomić też na CPU.