From: | "Alexander Staubo" <alex(at)purefiction(dot)net> |
---|---|
To: | "Billings, John" <John(dot)Billings(at)paetec(dot)com> |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: Using the GPU |
Date: | 2007-06-08 21:27:56 |
Message-ID: | 88daf38c0706081427y9efcaa0m3a78a6d829198127@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On 6/8/07, Billings, John <John(dot)Billings(at)paetec(dot)com> 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.
From | Date | Subject | |
---|---|---|---|
Next Message | Alexander Staubo | 2007-06-08 21:41:21 | Re: insane index scan times |
Previous Message | Ericson Smith | 2007-06-08 21:11:44 | Re: Postmaster processes taking all the CPU |