Nový způsob uložení dat v Calcu

LibreOffice Kohei Yoshida na LibreOffice Conference představil nový způsob uložení dat v programu Calc. Výsledkem roční usilovné práce, která znamenala přepsat prakticky „každý kout“ programu, je implementace s výrazně vyšší rychlostí, menší spotřebou paměti a vhodná k akceleraci pomocí GPU.  

V LibreOffice se donedávna nacházelo ještě poměrně hodně kódu, jehož historie sahala až do dob balíku StarOffice, který se stal základem OpenOffice.org a následně LibreOffice. Mnoho takového kódu už bylo odstraněno a další postupně mizí a je nahrazován kódem kvalitnějším.

Jednu z takových přestaveb, doslova „od podlahy“, prezentoval na LibreOffice Conference 2013 vývojář Kohei Yoshida z firmy Collabora. Jedná se o nový způsob uložení dat v programu Calc, založený na vícerozměrných datových strukturách.

Nový způsob uložení dat přináší celou řadu výhod. Je rychlejší (zejména při iteraci přes buňky), spotřebovává méně paměti a dá se snadno akcelerovat, a to jak pomocí instrukcí SIMD, tak prostřednictvím OpenCL a běhu na grafickém procesoru. Současně byl pročištěn prakticky celý kód Calcu a odstraněny všelijaké hacky, které se tam kvůli starému datovémo modelu dostaly.

Celé to zabralo rok intenzivní práce, protože v Calcu souvisí s datovými buňkami skoro všechno. Kohei Yoshida pohovořil i o dalších dvou zlepšeních: skupinách vzorců a již zmíněné akceleraci pomocí OpenCL. Skupiny vzorců představují sdílení stejného vzorce mezi buňkami, což opět přináší úsporu paměti a snadnější akceleraci výpočtů; navíc redukuje graf závislosti mezi buňkami, čili jde o další zlepšení výkonu.

Co se týká akcelerace s využitím OpenCL a výpočtů na grafických procesorech, Markus Mohrhard implementoval GUI pro nastavení, včetně detekce zařízení schopných takovou akceleraci zajistit.

(Jako ve škole) Průměr: 1.20 | Hodnotilo: 5
 

Přidat názor

 

Nejsou podporovány žádné značky, komentáře jsou jen čistě textové. Více o diskuzích najdete v nápovědě. Diskuzi můžete sledovat pomocí RSS kanálu.

 
Lukáš Jelínek

Lukáš Jelínek

Dlouholetý člen autorského týmu LinuxEXPRESu a OpenOffice.cz. Vystudoval FEL ČVUT v oboru Výpočetní technika. Žije v Kutné Hoře a podniká v oblasti informačních technologií. Ve volném čase rád fotografuje, natáčí a stříhá video, občas se věnuje powerkitingu a na prahu čtyřicítky začal hrát tenis.

 
 
 
woo jaw demo hz