Hi, I work with large spreadsheets in microsoft excel. I’m not a programmer, just an intensive spreadsheet user. I am losing hours of time because Excel 2007 is simply too slow to calculate everything I’m trying to do. I recently purchased a duo quad core workstation and it’s still not fast enough.
Is there any way I can use an NVIDIA GPU and CUDA to just speed up Excel cacluations? Excel 2007 already does multi-core processing automatically with CPUs. Is there anyway I can just utilize the ~120+ cores on the GPU, today, to speed up Excel?
CUDA is a very different computing architecture, composed of units which are not like traditional CPU cores. As a result, custom code has to be written to offload calculations onto the graphics card. I’m sure a programmer could write an Excel plugin which did a specific task with CUDA, but I’m not aware of any such thing now.
CELLs can be functions, right? Say, you have a spreadsheet with 10,000 entries etc… I would guess there would be a lot of batch processing involved in it. Like Front office banking uses lot of spreadsheets…
Its all my guesses…thoug…
Appreciate if any knowledgeable shares their knowledge.
Except that this exactly NOT like the kind of jobs for CUDA or any other GPGPU approach.
In this hypothetical monster-mega-sheet, every cell has its very own function.
Whereas GPU have a SPMD (single program / multiple data) approach at the GPU level (and SIMD units), which mean they work best when you apply 1 single kernel on a big dataset (or the same shader on all pixels of the polygon if you’re doing graphics).
A theoretical CUDA-accelerated Excel (or any GPGPU-accelerated SpreadSheet), would need to take a sheet, slice into series that run the exact same formula (like a whole column where only the “A$1”, “A$2”, etc. varies in the formula).
Compile that into a kernel, upload the dependencies either as streams (those with dollars like all “A$n”) or as constants (those with fixed coordinates like “B13”). Run the kernel, download the results, and restart the processus with the following series, until all dependencies are solved.
If formulas are compiled as an easy to analyse bytecode, maybe the dependency tracker it self could be programmed as a kernel.
Of course that requires completely rewritting the spreadsheet engine from scratch, which is completely out of question with a closed source software like Excel. But maybe some insane CUDA programmer could fork a CUDA variant of Gnumeric or something similar.
The whole thing would be mainly useful for accelerating situation where you have simple formulas (say a currency exchange rate computed for every product and then a mean on the whole sheet) on outrageously big sheet (hundreds of thousands of lines).
Then you also start to see accuracy and round off problems, given the dynamic range of floats vs. the quantity of elements you sum together. At least, due to the way reductions work on GPU (pairwise in stead of sequential), you’re going to see less round off errors - (see Kahan summation algorithm as an example of work around in long sums of doubles)
These are really interesting responses, thanks a lot. I’m looking forward to the day when we will have real-time interactive spreadsheets in databases. I think this will really drive innovation in finance-- or in any industry that uses large databases and spreadsheets. Anything that allows people to focus on the analysis and intepretation and creative use of data as opposed to the building/modeling of data. That’s why even though I’m not a programmer the concept of CUDA is really exciting to me. Hopefully one of you guys will be able to figure this out…
by the way, here is a real life monster model that got some attention a few months in the press. this is not the model I was thinking of in my original post (the spreadhseet I use is a massive ranking system), but this is a big spreadsheet that takes a long time to cacluate. Maybe it would be a good baseline for any CUDA developers?