Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
AMD Math Software Upgrades

LibreOffice Calc Set To Get GPU Powered Boost From AMD 211

darthcamaro writes "We all know that the open source LibreOffice Calc has been slow — forever and a day. That's soon going to change thanks to a major investment made by AMD into the Document Foundation. AMD is helping LibreOffice developers to re-factor Calc to be more performance and to be able to leverage the full power of GPUs and APUs. From the article: '"The reality has been that Calc has not been the fastest spreadsheet in the world," Suse Engineer Michael Meeks admitted. "Quite a large chunk of this refactoring is long overdue, so it's great to have the resources to do the work so that Calc will be a compelling spreadsheet in its own right."'" Math operations will be accelerated using OpenCL, unit tests are being added for the first time, and the supposedly awful object oriented code is being rewritten with a "modern performance oriented approach."
This discussion has been archived. No new comments can be posted.

LibreOffice Calc Set To Get GPU Powered Boost From AMD

Comments Filter:
  • Clarification (Score:5, Informative)

    by UnknowingFool ( 672806 ) on Wednesday July 03, 2013 @12:35PM (#44177993)
    From the article:

    Calc is based on object oriented design from 20 years ago when developers thought that a cell should be an object and that creates a huge number of problems around doing things efficiently.

    The problem isn't that Calc is object-oriented but was designed such that many things depended on the spreadsheet cell.

  • by Kenja ( 541830 ) on Wednesday July 03, 2013 @12:48PM (#44178233)
    Pivot Tables can have three or more axis.
  • by robthebloke ( 1308483 ) on Wednesday July 03, 2013 @01:12PM (#44178601)

    I agree. Also, if you rewrite structured code into a "performance oriented approach", you are doing it wrong.

    Nonsense. One of the joys of C++, is the lack of reflection. This tends to lead apps down the route of wrapping everything into an 'Attribute' class of some description, and wiring those attributes together using a dependency graph. The problem with this (very clean OOP) approach, is that it simply doesn't scale. Before too long, this constant plucking of individual data values from your graph, ends up becomming a really grim bottleneck. If you then run the code through a profiler, rather than seeing any noticeable spikes, you end up looking at an app that's warm all over. If you're in this situation, no amount of refactoring is going to save the product. You're only option is to restructure the

    The "performance oriented approach" is the only approach you can take these days. Instead of having a fine OOP granularity on all of your data, you batch data into arrays, and then dispatch the computation on the SIMD units of the CPU, or on the GPU.

    Then compilers should understand how to make it fast.

    Uhm, nope. Sure, if you happen to have 4 additions right next to each other, the compiler might replace that with an ADDPS. In the case in point however, you'll probably expect a generic node to perform the addition on single items in the table. As such, your "addTwoTableElementsTogether" node isn't going to have 4 floating point ops next to each other, it will only have one. Compilers cannot optimise your data structures. If you want to stand a chance of having the compiler do most of the gruntwork for you, you actually have to spend time re-factoring your data structures to better align them with the SIMD/AVX data types. Some people call this a "performance oriented approach".

    This can only come from people who think code is for machines. Code is for humans to read and modify.

    Bullshit. This can only come from experienced software developers who understand that the only approach to improving performance of a large scale app, is to restructure the data layout to better align it with modern CPUs. There is *NOTHING* about this approach that makes the code harder to read or follow - that's just your lack of software engineering experience clouding your judgement.

  • by WillAdams ( 45638 ) on Wednesday July 03, 2013 @01:24PM (#44178791) Homepage

    Actually, the UI for Lotus Improv was quite nice and won some awards.

    Its (spiritual) successor, Quantrix Financial Modeler seems to be selling well enough, even w/ a $1,495 price point.

    I wish that Flexisheet (an opensource take on this sort of thing) would get more traction.

  • by sjbe ( 173966 ) on Wednesday July 03, 2013 @01:24PM (#44178793)

    If your spreadsheet needs a gpu to speed up calculations, you are probably misusing spreadsheets.

    Or it just means that you have some pretty complicated calculations. More computing horsepower never hurts.

    I know most accountants love the spreadsheet and they make insanely complicated things using spreadsheets pushing it far beyond what these are designed to do.

    I happen to be an accountant as well as an engineer. What pray tell do you think spreadsheets were designed to do? (hint - it involves rapid data modeling) They aren't much use if the only problems you solve are toy problems. Plus they require relatively little training to use effectively. Someone can be trained to solve real world problems MUCH easier than with most other tools. Most of the problems I'm asked to solve are ad-hoc investigations into specific questions. I shouldn't need a four year degree on Comp-Sci to accomplish a bit of data modeling.

    But if you have a spreadsheet that needs this much of cpu time to recompute, you should probably be using a full fledged data base with multiple precomputed indexing.

    I use some rather complicated spreadsheets. A database would be of no advantage whatsoever for 99.9% of what I use a spreadsheet for. Furthermore a database would be a lot slower to develop, harder to update, and require significant user interface development. If I'm crunching sales data or generating financial projections a spreadsheet is almost always the easiest and most useful tool for the job.

    Databases come into the picture when: A) other applications need to interface with the data, B) the dataset becomes truly enormous, or C) the number of dimensions in the data exceeds 2 to 3. Sometimes I use databases. Most of the time they would be a waste of money, brains and time. Frequently when I actually need a database I'll create a mock up of the tables and calculations on a spreadsheet first which lets me work out the structure much more easily.

    While it is certainly possible to use a spreadsheet inappropriately, a spreadsheet should be able to handle a rather large amount of data and calculations before it chokes.

  • by Bert64 ( 520050 ) <bert AT slashdot DOT firenzee DOT com> on Wednesday July 03, 2013 @01:26PM (#44178819) Homepage

    It's well documented, you can find examples all over google, eg:

    http://hints.macworld.com/article.php?story=20111230095628470 [macworld.com]

    Infact there are many people who use libreoffice to open and convert corrupted (or very old) files which are making msoffice crash, libreoffice is far more tolerant of unexpected data in the input files as unexpected data is a given when attempting to reverse engineer undocumented formats.

    And to give one personal example, msoffice 97 onwards had a bug in the macro function whereby the line counting function ignored lines with bullet points, so we had an extremely kludgy macro which counted the lines and then iterated through looking for bullet points and increased the line count accordingly... MS decided to fix this particular bug in a "security update" for office 2003, but then reintroduce the bug in 2007... Obviously this kludgy macro catastrophically broke the day that patch got rolled out.
    I could understand if it broke going from 2003 to 2007, but not for what is supposed for be a security update to change something like that.

    Also even moving files between the exact same patch release of msoffice on different machines can cause problems with formatting, as it reformats depending on available fonts and printer settings.

Real Programmers don't eat quiche. They eat Twinkies and Szechwan food.

Working...