On 6/8/07, Billings, John <[EMAIL PROTECTED]> wrote:
Does anyone think that PostgreSQL could benefit from using the video card as a parallel computing device? I'm working on a project using Nvidia's CUDA with an 8800 series video card to handle non-graphical algorithms. I'm curious if anyone thinks that this technology could be used to speed up a database?
Absolutely.
If so which part of the database, and what kind of parallel algorithms would be used?
GPUs are parallel vector processing pipelines, which as far as I can tell do not lend themselves right away to the data structures that PostgreSQL uses; they're optimized for processing high volumes of homogenously typed values in sequence.
From what I know about its internals, like most relational databases
PostgreSQL stores each tuple as a sequence of values (v1, v2, ..., vN). Each tuple has a table of offsets into the tuple so that you can quickly find a value based on an attribute; in other words, data is not fixed-length or in fixed positions, table scans need to process one tuple at a time. GPUs would be a lot easier to integrate with databases such as Monet, KDB and C-Store, which partition tables vertically -- each column in a table is stored separately a vector of values. Alexander. ---------------------------(end of broadcast)--------------------------- TIP 2: Don't 'kill -9' the postmaster