r   e   k   l   a   m   a
r   e   k   l   a   m   a

Arkusz kalkulacyjny w LibreOffice przyspieszy dzięki sprzętowej akceleracji na GPU

Strona główna AktualnościOPROGRAMOWANIE

Dla użytkowników, którzy wykorzystują Excela do bardziej zaawansowanych celów, niż podliczenie kosztów zakupów, przesiadka na LibreOffice zwykle wiąże się z nieprzyjemnym zaskoczeniem – jaki ten wolny pakiet biurowy jest powolny! I nie ma w tym przesady: odziedziczony po OO.o kod Calca wieje zapachem staroci. Jak przyznaje jeden z głównych programistów LibreOffice, wyróżniony inżynier Novella Michael Meeks, Calc bazuje na podejściu do programowania obiektowego sprzed 20 lat, kiedy to programistom 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 Doradczej przy rozwijającej LibreOffice The Document Foundation, ma swój pomysł na przyspieszenie arkusza kalkulacyjnego. Jak można się spodziewać, chodzi o rozwiązanie hardware'owe, a konkretnie wykorzystanie mocy procesorów graficznych. Choć w aplikacjach graficznych czy edytorach wideo z GPU korzysta się od wielu lat, to w tej kategorii oprogramowania to nowość: jak mówi Meeks, mimo że mamy tyle tranzystorów w GPU, to przez większość czasu dla aplikacji biznesowych one nic nie robią. Powinniśmy wykorzystywać te tranzystory do cudownych rzeczy, i taki mamy plan.

Zaproponowane przez AMD rozwiązanie wykorzystywać ma architekturę HSA, w której procesor graficzny ma dostęp do tej samej pamięci co 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 procesora graficznego i koordynować jego współpracę z głównym procesorem przez wąskie gardła kontrolerów pamięci. Sprzętowa akceleracja dla arkusza kalkulacyjnego ma polegać na wykryciu możliwych do optymalizacji formuł w komórkach, przekształceniu ich na kod OpenCL, skompilowaniu kodu OpenCL na procesor graficzny, a następnie uruchomieniu formuły na GPU. Ma to być, według Meeksa, szczególnie efektywne dla dużych arkuszy, zawierających liczne powtórzenia tych samych formuł.

Kiedy sprzętowa akceleracja zawita do LibreOffice? Żadnych terminów jak dotąd nie przedstawiono, wiadomo jednak, że zespół pracujący nad wykorzystaniem HSA/OpenCL w pakiecie biurowym skupić się ma w pierwszej kolejności na nowych APU od AMD, które zagoszczą już w tegorocznych komputerach. Rozpoczęto też wstępne prace nad implementacją OpenCL w maszynach pozbawionych architektury HSA, a więc np. korzystających z zestawu Intel/Nvidia.

W Sieci nie brakuje oczywiście już słów krytyki pod adresem tego pomysłu: jak jeden z czytelników Slashdota skomentował sprawę, jeśli twój arkusz kalkulacyjny potrzebuje GPU do przyspieszenia obliczeń, to zapewne źle wykorzystujesz arkusze kalkulacyjne. Formalnie to uzasadniona krytyka – ale spójrzmy na rzeczywiste scenariusze wykorzystania arkuszy kalkulacyjnych, będących czymś w rodzaju scyzoryka dla biznesu. Użytkownicy lubią je ze względu na prostotę, łatwość budowania i niskie koszty – przygotowywanie dedykowanych baz danych ze składowanymi procedurami do obliczeń wykracza poza umiejętności typowego księgowego. Wykorzystanie OpenCL może tu faktycznie ułatwić życie tym końcowym użytkownikom, nawet jeśli nie będą mieli mocnych GPU w swoich komputerach – ostatecznie kod ten można uruchomić też na CPU.

r   e   k   l   a   m   a
© dobreprogramy
r   e   k   l   a   m   a
r   e   k   l   a   m   a

Komentarze

r   e   k   l   a   m   a
r   e   k   l   a   m   a
Czy wiesz, że używamy cookies (ciasteczek)? Dowiedz się więcej o celu ich używania i zmianach ustawień.
Korzystając ze strony i asystenta pobierania wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.