LibreOffice is a well-liked office suite, but not so much its spreadsheet component, Calc, which is known to be slow for even simple calculations. Now AMD has stepped in to provide GPU support that should speed things along.
LibreOffice Calc is slow and no one is disputing this fact; not even the Document Foundation would deny that something needed to be done. AMD has just joined the Document Foundation's board and, being big in GPUs, has offered to help make Calc go faster by writing some GPU code for its calculations. After all a spreadsheet is a quasi-parallel computation tool and GPUs are good at parallel computation.
This all sounds great but there are a few important points to note. The first is that AMD makes GPUs and so there is bound to be a bias towards its technology.
Manju Hegde, corporate vice president, Heterogeneous Solutions at AMD said:
“It is great to work on LibreOffice with The Document Foundation to expose the raw power of AMD GPUs and APUs, initially to spreadsheet users. Bringing the parallelism and performance of our technology to traditional, mainstream business software users will be a welcome innovation for heavy duty spreadsheet users, particularly when combined with the compute capabilities of the upcoming generation of AMD Heterogeneous System Architecture (HSA) based products.”
It seems that the LibreOffice programmers are trying to make the code fit in with AMDs Heterogeneous Systems Architecture (HSA) but the code itself is going to be written in OpenCL. This brings some hope that the optimizations might work with other GPUs such as NIVIDA's, but there are no guarantees.
The LibreOffice programmers report that the code for Calc is a mess and they are planning to refactor it to speed it up. This should benefit all users, irrespective of whether or not they have a compatible GPU to throw into the mix.
So this is all very promising but does a spreadsheet actually need the help of a GPU?
The fact of the matter is that the spreadsheet recalculation algorithm isn't actually parallel. Cells are calculated in dependency order and if there is a circular reference the calculation continues until it settles down. Converting this into a true parallel algorithm isn't going to be easy. This means that for many spreadsheets the benefit of using a GPU might well be less than expected.
There is also the simple fact that other spreadsheets achieve reasonable calculation speeds without having to invoke a GPU. The reason that LibreOffice Calc is slow isn't because it lacks a GPU; it is because it is implemented in a very inefficient way. It is claimed that what is responsible for the sluggish performance is the object-oriented design that resulted in each cell being defined as an object. So out goes the good design and in comes the optimization. It looks as if cells are going to have to be treated as non-object primitives.
However, refactoring the code is most likely all that is necesary, apart from a few very big and complex spreadsheets.
So the GPU angle is a bit of a publicity stunt?
Yes and no. As already stated, most spreadsheets don't need a GPU and all that is needed is some code refactoring. However, if you give a man a hammer he will find some nails. A super fast GPU-powered spreadsheet might just attract users who want to do number crunching at another level.
It might just be a new start for the slighlty stale spreadsheet paradigm.
Users should see the results of the refactoring in about six months with the release of LibreOffice 4.1, but making such changes is often much more difficult than predicted so it could take longer.