Slashdot Mirror


Why Don't Open Source Databases Use GPUs?

An anonymous reader writes "A recent paper from Georgia Tech (abstract, paper itself) describes a system than can run the complete TPC-H benchmark suite on an NVIDIA Titan card, at a 7x speedup over a commercial database running on a 32-core Amazon EC2 node, and a 68x speedup over a single core Xeon. A previous story described an MIT project that achieved similar speedups. There has been a steady trickle of work on GPU-accelerated database systems for several years, but it doesn't seem like any code has made it into Open Source databases like MonetDB, MySQL, CouchDB, etc. Why not? Many queries that I write are simpler than TPC-H, so what's holding them back?"

159 of 241 comments (clear)

  1. Something something online sorting by Anonymous Coward · · Score: 5, Informative

    ...because I/O is the limiting factor of database performance, not compute power?

    1. Re:Something something online sorting by Arker · · Score: 5, Insightful

      Wow, a fp that hit the nail on the head.

      Indeed, database applications tend to bottleneck on I/O, not processor, so most uses would see little gain from this. That's probably the biggest reason no one has bothered to do it.

      Certain uses would probably benefit, but then there are other reasons too. You run databases on machines built for it, not gaming machines, so it's not like they already have this hardware. You would have to buy it and add it as an expense. And GPUs are error prone. Not what you want in most database applications either (although again, there may be niches where this would be ok.)

      --
      =-=-=-=-=-=-=-=-=-=-=-=-=-=-
      Friends don't let friends enable ecmascript.
    2. Re:Something something online sorting by Runaway1956 · · Score: 4, Insightful

      I'll add that most people who put up the cash for high performing GPU's aren't much interested in actually "computing" with them. They are far more interested in "gaming". They demand video performance, as opposed to crunching database numbers. Those companies that are most likely to pay people for manipulating data bases generally have little interest in top notch video, so they aren't going to pay for hundreds of GPU's.

      --
      "Windows is like the faint smell of piss in a subway: it's there, and there's nothing you can do about it." - Charlie Br
    3. Re:Something something online sorting by houstonbofh · · Score: 5, Insightful

      ... so they aren't going to pay for hundreds of GPU's.

      Especially when they have already blown the budget on fast SSDs that actually make a real difference in real performance, not just synthetic benchmarks.

    4. Re:Something something online sorting by fzammett · · Score: 2

      Very good point, entirely correct. However... for an in-memory database I wonder if there's gains to be had? I'm not sure CPU-memory I/O is much of a bottleneck, though such DBs aren't suitable to every task of course.

      --
      If a pion (n-) collides with a proton in the woods & noone is there to hear it, does lamdba decay into the source pa
    5. Re:Something something online sorting by ron_ivi · · Score: 4, Interesting

      performance ... put up cash...

      The biggest opportunity for GPUs in Databases isn't for "performance". As others pointed out - for performance it's easier to just throw money at the problem.

      GPU powered databases do show promise for performance/Watt.

      http://hgpu.org/?p=8219

      However, energy efficiency is not enough, energy proportionality is needed. The objective of this work is to create an entire platform that allows execution of GPU operators in an energy proportional DBMS, WattBD, and also a GPU Sort operator to prove that this new platform works. A different approach to integrate the GPU into the database has been used. Existing solutions to this problem aims to optimize specific areas of the DBMS, or provides extensions to the SQL language to specify GPU operation, thus, lacking flexibility to optimize all database operations, or provide transparency of the GPU execution to the user. This framework differs from existing strategies manipulating the creation and insertion of GPU operators directly into the query plan tree, allowing a more flexible and transparent framework to integrate new GPU-enabled operators. Results show that it was possible to easily develop a GPU sort operator with this framework. We believe that this framework will allow a new approach to integrate GPUs into existing databases, and therefore achieve more energy efficient DBMS.

      Also note that you can write PostgreSQL stored procedures in OpenCL - which may be useful if you're doing something CPU intensive like storing images in a database and doing OCR or facial recognition on them: http://wiki.postgresql.org/images/6/65/Pgopencl.pdf

      Introducing PgOpenCL - A New PostgreSQL Procedural Language Unlocking the Power of the GPU

    6. Re:Something something online sorting by CODiNE · · Score: 1

      In other words... For databases that fit in memory GPU makes a lot of sense. For really large data sets the limit is how fast you can get the data off the hard disk.

      But what "io bottleneck" people may be missing is that an io bound server could still benefit from this if the freed up CPU time can be used for other things when it's not shuttling data to and from the GPU. It also could end up saving a lot of energy, and that's money.

      --
      Cwm, fjord-bank glyphs vext quiz
    7. Re:Something something online sorting by K.+S.+Kyosuke · · Score: 1

      Even with in-memory databases, most of the stuff are simple computations with a large amount of data with often random access. GPUs like a lot of computation with streaming data. Also: data copying, virtual memory support. But perhaps Kaveri and its successors will be more useful for that.

      --
      Ezekiel 23:20
    8. Re:Something something online sorting by fatphil · · Score: 5, Informative

      Read the paper - page 7 (which bizarrely doesn't render clearly for me at all, and I can't copy/paste)
      "Scale Factor 1 (SF 1) ... data fits in GPU memory"

      They ran the TPC-H ("H"="Huge") with a dataset that was ABSOLUTELY FUCKING TINY.

      No, I'm not shouting at you, I'm shouting at the fucking bogus pseudo-academics who wanted to bullshit with micro-optimisation rather than making actual advancements in the field of databases.

      Frauds.

      --
      Also FatPhil on SoylentNews, id 863
    9. Re: Something something online sorting by K.+S.+Kyosuke · · Score: 1

      Things like joins and sorts are compute expensive, and can easily become the major bottleneck when most of your hot data fits in memory

      What kinds of joins on data that fits into a computer's operating memory get actually accelerated by something that has its own (seriously limited) physical address space and needs serious data copying to get proper random access to the data in the first place? (Not to mention the effective call latencies.)

      (Oh, BTW, and when did "compute" become a noun? Nouning Latin verbs feels ridiculously retarded.)

      --
      Ezekiel 23:20
    10. Re:Something something online sorting by JWSmythe · · Score: 1

      Well, gaming machines do make great servers. What is a gaming machine? Fast CPU, lots of memory, fast storage. The only difference is the video card. For home built servers in PC cases, I just don't bother with the pesky high end video cards. They run so much cooler and quieter. I'd hate to have a rack of servers at the house. I rather not have a jet engine running in the next room. :)

      --
      Serious? Seriousness is well above my pay grade.
    11. Re:Something something online sorting by marcosdumay · · Score: 1

      Except that GPUs are bad for most of the tasks a database do. Normaly, databases require random memory access (not mapping arrays) and complex selection rules. GPUs are best doing maps over continuous arrays, and with very simple (best if none) conditional cases.

    12. Re:Something something online sorting by Arker · · Score: 1, Troll

      "The only difference is the video card."

      ROFL you may know how to build a gamer rig but you certainly know nothing about servers, to have said that.

      You'll use an entirely different class of hardware from the ground up. Different class of motherboard, different class of RAM, at most you *might* use the same box and power supply. You dont need a videocard at all, just a serial port, and these days it's more likely to be a rackmount than a box anyway.

      --
      =-=-=-=-=-=-=-=-=-=-=-=-=-=-
      Friends don't let friends enable ecmascript.
    13. Re:Something something online sorting by Bengie · · Score: 2

      For databases that fit in memory GPU makes a lot of sense.

      A bit more selective that that. For datasets that fit in memory, where memory patterns are sequential, and the queries have almost no branching. GPUs are very picky.

    14. Re:Something something online sorting by girlintraining · · Score: 4, Insightful

      Especially when they have already blown the budget on fast SSDs that actually make a real difference in real performance, not just synthetic benchmarks.

      Is now a bad time to point out that many researchers have built clusters based out of thousands of GPUs to model the weather, protein folding, and other things? As it turns out, gamers aren't the only ones that buy GPUs. And GPUs aren't functionally all that different from FPGAs, which as I understand Linus went off to Transmeta to build CPUs based off such architecture.

      I'm irritated whenever people here on slashdot can't see past their own personal experience; it's become quite sad. The true innovators don't see something that's already been done and figure out how to do it better. They see the same things as everyone else, but put them together in radically new ways nobody's ever thought of before.

      GPUs for database processing? That's crazy! Which is why it's innovative and will push the limits of informational technology. three hundred quintillion polygasmic retina displays with 99 billion pixels to play Call of Duty 27 will never do that. Most slashdotters that put down an idea like this really have no concept of what geeks and hackers do.

      We push the limits. We fuck with things that ought not to be fucked with. We take the OSI 7 layer model, set it on fire, turn it inside out, and hack out new ways to do do it by breaking every rule we can find. We go where we aren't wanted, aren't expected, and we push every button we can find. We do things precisely because people tell us it's impossible, that it can't or shouldn't be done, and take great pleasure in finding novel new ways to do something even if there's already twenty proven ways to do it.

      And while probably 99 times out of a 100, the experience matters only for the hacker or geek doing it, and is done merely to learn... that glorious one time when something unexpected and interesting happens, that is what all progress on this industry is based on. And people like you who belch about "synthetic benchmarks" and insist nobody would do X because that's just stupid will never understand.

      --
      #fuckbeta #iamslashdot #dicemustdie
    15. Re:Something something online sorting by gweihir · · Score: 1

      Bah, pesky facts! Don't you know that the latest buzzwords have to be accepted unquestioningly to be truly hip (and utterly incompetent)?

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    16. Re:Something something online sorting by TheRaven64 · · Score: 4, Interesting

      No, I'm not shouting at you, I'm shouting at the fucking bogus pseudo-academics who wanted to bullshit with micro-optimisation rather than making actual advancements in the field of databases.

      Any paper that does X on a GPU generally fits into this category. It's not science to run an existing algorithm on an existing Turing-complete processor. At most it's engineering. But it's a fairly easy way to churn out papers. Doing X 'in the cloud' or 'with big data' have a similar strategy. It's usually safe to ignore them.

      --
      I am TheRaven on Soylent News
    17. Re:Something something online sorting by the_B0fh · · Score: 1

      Curious why do you think GPUs are error prone?

    18. Re: Something something online sorting by greenfruitsalad · · Score: 1

      Don't all modern databases run in RAM now? Is I/O therefore still a limiting factor?

    19. Re:Something something online sorting by znrt · · Score: 5, Informative

      that's all nice and good. but what has that to do with "Why Don't Open Source Databases Use GPUs?". because GPUs do provide little benefit to nowadays DBs! why aren't diamond shaped networks of bread toasters used for open source databases? it's just a stupid question, has nothing to do with "innovation being misunderstood". there's nothing to understand here besides the fact that someone apparently was in need to fill his news-roll with random bullshit.

    20. Re:Something something online sorting by ddt · · Score: 1

      Nice catch, Fatphil!

      Also, writing, debugging, and maintaining GPU code is a lot less fun than CPU code. Much open source GPU code do you know of that is still in use after 5 years?

    21. Re:Something something online sorting by emj · · Score: 2

      ECC fails in a nice way, that's why you use them, there are lots of nice graphs wround to show you why. If you want to say that ECC isn't important you need to put up some facts to support that.

      That said ECC is slower, more expensive and makes vendor lock in easier,

    22. Re:Something something online sorting by Arker · · Score: 3, Informative

      I love the ignorance of the mods here, your post isnt interesting, it's boneheadedly stupid.

      "The different "class" of motherboard is simply a different form factor so you can't swap for another one. i.e., vendor lock-in."

      No, it is NOT. Important things like ECC support have to be built into the chipset, so you are using a different chipset. And if you are not getting ripped off many other components are going to be different as well.

      "RAM is different. It's claimed they use ECC for the safety of your data. In practice it's so you can't go to the local computer store to buy more. Corps tend to buy from the manufacturer because "that's where we got the server, and it was expensive."

      The ignorance here is appalling. ECC is for the safety of your data, without it you WILL have regular bit errors. They dont use it on consumer equipment because consumers are so dumb they will buy a cheaper computer without it and think they are getting a better deal, and because it's rationalized that no one (should) use consumer equipment for anything important anyway. Just based on the known incidence of cosmic radiation alone, combined with the small process size and sheer density of modern ram, guarantees you will have regular bit errors and the consequences are essentially 'random' - meaning one time the error could be something you wont even notice, but the next time it could necessitate a full reformat of the machine. Or it might just corrupt an important data file instead. There is no way to predict it.

      If you are doing anything important with the computer this is not acceptable and you should just quit being an idiot and get ECC.

      --
      =-=-=-=-=-=-=-=-=-=-=-=-=-=-
      Friends don't let friends enable ecmascript.
    23. Re:Something something online sorting by VortexCortex · · Score: 2

      You're answering the wrong question.

      The question is Why don't Open Source Databases use the GPU. There are many answers: Supply and Demand is the best one. The other is that collating database rows in a GPU is fine, but you still have the damn bottleneck getting the data out to main system RAM. So, if your use case is a server then you're fucked because GPUs don't have a NIC interface.

      The true answer is: We don't run databases in the GPU because GPUs are stupidly dedicated designs. General Purpose Computing is the trend across all hardware markets -- From Arcades to Consoles to PCs, from Mainframes to Minicomputers to Microcomputers, From PDAs to Smartphones. The trend is to be more general purpose. There are stints where a dedicated design yields performance while we sacrifice freedom and conform to some bullshit API. Witness all the unique looking software rasterization we gave up once 3D GPUs hit the scene. After these stints, the generalization trend takes over yet again. You're seeing that now. Soon the CPU will be a GPU (hell, look at APUs) the lines will blur, the two will merge, and we'll deprecate the term "heterogeneous computing" and just call it compute.

      So, it costs more than any appreciable benefit overall warrants; And if we wait a few more years then the question of whether code runs on GPU or CPU will be moot anyway.

    24. Re:Something something online sorting by fatphil · · Score: 1

      Someone else spotted this before me, it appears; I replied to him below, something-dad or something-lad.

      One of the problems is that things are just a little bit too new to be tested for longevity. Fragmented architectures plus chipset vendors pushing separate languages didn't help.

      To be honest, with modern GPUs, I believe that I was born too early. I was massively getting into optimisation 90s to early 00s. I'm tired of dicking about with all that kind of stuff now. And the kids these days have got it way too easy, with hundreds-to-thousands of cores at their fingertips. Very few things impress me when there are so many freaking gates being used. Moore's Law made things boring.

      So jolly season's greetings and all that, but git orf moi lorn! ;-)

      --
      Also FatPhil on SoylentNews, id 863
    25. Re: Something something online sorting by Oligonicella · · Score: 1

      No. Yes.

    26. Re:Something something online sorting by Anonymous Coward · · Score: 1

      For someone whos built thousands of servers, you seem to know very little. ECC has a real benefit, as does Registered...

    27. Re:Something something online sorting by theArtificial · · Score: 1

      They dont use it on consumer equipment because consumers are so dumb they will buy a cheaper computer without it and think they are getting a better deal, and because it's rationalized that no one (should) use consumer equipment for anything important anyway.

      You might want to take another look at consumer equipment because nearly all ASUS AMD (look at the AM3+) boards have it. Intel is the one that goes out of their way to disable it.

      --
      Man blir trött av att gå och göra ingenting.
    28. Re:Something something online sorting by BLKMGK · · Score: 1

      Actually as one of those "gamers" I'd love to be using my GPU to speedup real world things like x.264 and ffmpeg but sadly GPU isn't being used there and seems to be actively scorned. A real bummer as I'd love to be putting this bad boy to more use in things I do that tax my heavily overclocked CPU.

      GPU crunch numbers well, look at the differences made in password cracking for instance. In the right situation the GPU isn't used for video at all.
      I know several people who have invested serious cash in GPU that don't even have a graphic interface on the systems they're used on :-)

      --
      Build it, Drive it, Improve it! Hybridz.org
    29. Re:Something something online sorting by BLKMGK · · Score: 2

      What does this have to do with a machine having a GPU? You can equip a machine with a GPU and not hook a monitor to it - still works for processing just fine...

      --
      Build it, Drive it, Improve it! Hybridz.org
    30. Re:Something something online sorting by HornWumpus · · Score: 3, Informative

      I used ECC on a workstation once. The bios logged ECC fixes. I had 2 over the life of the machine (3 years).

      ECC doesn't hard fault due to parity error. It has the bits to find and fix any single bit flip. That's the point.

      I don't use ECC anymore. Most good (not server grade) MBs do support it.

      --
      John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
    31. Re:Something something online sorting by Anonymous Coward · · Score: 1

      A roadkill skunk that has been sitting around for 3 weeks has fewer bugs than Intel's CPUs.

    32. Re:Something something online sorting by brambus · · Score: 5, Informative

      You obviously have never torn down a server. I've built thousands.

      Bullshit and here's why:

      The last place I was at paid over $300K for a Sun machine with 128 cores and 1TB RAM. I priced the same machine, with 128 cores and 1TB RAM for something like $20K, but with faster components made for gaming use.

      This is such a load of crap it's hard to fathom you had anything to do with server procurement at any point at all. First, you can't (even today) build a 128-core/1TB RAM box using gaming components, so you're looking at a cluster of smaller boxes vs one big box. That impacts the software infrastructure in a big way. For example it's a vastly different affair to run one big DB instance vs a cluster of 12 little ones (not to speak of the extra money you'll spend on these extra instances). Clusters massively complicate administration, backup, replication, disaster recovery, etc.

      RAM is different. It's claimed they use ECC for the safety of your data. In practice it's so you can't go to the local computer store to buy more.

      Another reason you don't know what you're talking about. ECC absolutely *does* work and bits do flip in memory, which in the absence of ECC can result in data corruption or unplanned machine downtime. I've had the OS detect faulty memory sticks via ECC before.

      Corps tend to buy from the manufacturer because "that's where we got the server, and it was expensive."

      No, they do that because that way you have a valid support contract and can blame problems on a supplier if stuff goes down the drain (as it often does). Obviously you've never had to stand in front of top-brass and try to explain why your multi-million dollar project fell flat on its face because of a few bucks you've decided to save on some el-cheapo memory sticks.

      Box? Well, rackmount for racks, desktop for not-racks. I've seen plenty of people ungracefully stack rackmount boxes on the floor of a corner office, and complain when they need to pull out the bottom one. That's not so different than racks. I've seen people rack mount where they put in a shelf, and then put 10 servers on top of it without ever putting in the rail kits.

      It's not exactly the boxes fault when you guys are idiots and stack rack-mount servers.

      With only a very few exceptions, they're the same chipsets, using the same technologies.

      Have you *ever* had a server motherboard in your hands?

      Hell, even the hard drives are gaming, or are making their way there. SCSI was the only way to go, even though SATA overtook the performance long ago. Then they started putting 2.5" SAS drives in, which are laptop SATA drives with a bigger pricetag.

      I give up. How could this shit have been upvoted so much? The performance gap between a 2.5'' server SAS drive vs a 2.5'' laptop SATA drive is *huge*. And that's before we get to the way these things tend to behave in failure scenarios in large-HDD storage arrays (do you even know how a freakin' JBOD works?)

    33. Re:Something something online sorting by Anonymous Coward · · Score: 1

      >It's claimed they use ECC for the safety of your data. In practice it's so you can't go to the local computer store to buy more.

      I was willing to give this poster the benefit of the doubt up until this point. JWSmythe is a fool and his "advice" is best ignored.

    34. Re:Something something online sorting by moozoo · · Score: 1

      GPU have a very wide fast bus to there memory vs CPU's. i.e. 320GB/sec which is something like 10 times that of a CPU What is needed is to connect flash memory directly into a GPU.

    35. Re:Something something online sorting by BLKMGK · · Score: 1

      Hardware passthru, I already do this for RAID cards on my ESX setup. I know others who do it with GPU, no biggie.

      --
      Build it, Drive it, Improve it! Hybridz.org
    36. Re:Something something online sorting by TrollstonButterbeans · · Score: 1

      Hint: I was being absurd.

      --
      Priest: "Universe from nothing, no laws of physics, sped up time"+ huge discrepancies. Creationism? No. Big Bang Theory
    37. Re:Something something online sorting by LWATCDR · · Score: 2

      Slightly off topic but how about using GPUs for RAIDs?

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    38. Re:Something something online sorting by Sanians · · Score: 1

      when was the last time you had a hard fault due to ecc parity error?

      I've actually had two occasions which I think were the result of a single-bit error in my RAM. (Not exactly what you asked, but still relevant I think.)

      On one occasion I was writing some code and got a compilation error in a file I hadn't even been editing. I opened it up and went to the line of the error and found a single character that was incorrect, and after wondering what the hell had happened, I eventually switched the editor to hex mode and realized that the character differed from the correct character by a single bit. I left it alone for a while, confused as to exactly what the hell had happened, and at first I had suspected a disk error, but it eventually occurred to me that the file was probably being read from cache and so it might well be a memory error. So I did something to use a lot of RAM in order to dump the file from cache, then reloaded it, at which point the error was corrected.

      On the other occasion, a Linux system I'd been using for years without any issues spontaneously decided to hose itself, with the filesystem essentially committing suicide. One minute it was working and then everything just kind of started falling apart and a few minutes later it decided to remount the filesystem read-only. After that I shut it down to take a look at the drive in another machine, where I found the filesystem to be damaged beyond repair. I eventually found a recovery tool someone had made which spent hours scanning the drive trying to find indications of where the files may have been and was able to recover about 80% of them, but the remaining 20% were file names which contained data from some other file, or folders which were restored as ordinary files with some random data in them, or sometimes even symbolic links. Granted, this sounds a lot more like a random fuck-up by the filesystem driver than anything else, but it'd been at least a year since I'd installed the particular version of Linux I was using and it'd always worked fine before that, and it didn't seem to be a hardware issue either as the same hardware has continued to work fine for years since then. Thus, I can only conclude that just the right bit happened to get flipped to cause the filesystem driver to lose its mind, e.g. a flipped bit in its instruction code changed it in such a way that it didn't crash, but it no longer properly manipulated the filesystem data structures either. ...and there may well have been other computer problems I've had in the past which were due to memory errors that I just didn't realize at the time. I used to always consider my computer to be a machine which simply never made mistakes in its calculations, and so when something went wrong it was always the software's fault, but I changed my views after trying to install Gentoo on one particular computer and having the install die with a compilation error. While searching the internet for the cause, I found a forum thread about similar errors which suggested that the problem may be the hardware, and as a simple test, suggested simply running the compile again to verify that the error is identical. So I ran it again, and got a completely different error. Then I tried yet again and got a third completely different error. So I took the machine apart and blew the dust out of the CPU heat sink, and after that it worked just fine. Apparently the Gentoo folks have to deal with a lot of bug reports that are the result of hardware errors, since their many compiles are often the hardest and most sustained work that your average PC ever sees.

      You probably get more hardware errors than you realize. It's just that, given how software tends to crash now and then, it's far easier to assume it was merely the software's fault that it did whatever it did, rather than to consider that maybe your hardware makes some extremely rare errors.

      Being poor, I still have no ECC memory, but I'd love to have some if it weren't so expensive.

    39. Re:Something something online sorting by houstonbofh · · Score: 1

      A standard CPU is better, and you are not limited to dedicated (and occasionally had to find) hardware. Look for threads about ZFS or mraid over hardware raid for a lot of discussion on this.

    40. Re:Something something online sorting by drsmithy · · Score: 1

      Hell, even the hard drives are gaming, or are making their way there. SCSI was the only way to go, even though SATA overtook the performance long ago.
      Even old U320 SCSI drives have seek times ca. 2/3 those (and consequently higher IOPS) of the fastest SATA drives.

      Then they started putting 2.5" SAS drives in, which are laptop SATA drives with a bigger pricetag.
      You are utterly clueless.

      You've only got to hold an enterprise SAS drive and a consumer SATA laptop drive in each hand to know they have to be manufactured differently. Then again, you've probably never actually seen an enterprise SAS drive, let alone held one.

      This is before even starting to look at the different specifications - where can I buy a 15k RPM laptop SATA drive ? How am I going to get multiple paths and multiple controllers accessing the disk when SATA doesn't support such a thing ?

      The rest of your post is equally misinformed rubbish. I don't know who you build "servers" for, but I pity them. There's a difference between being able to assemble decent server-grade hardware on a budget that precludes big-name vendors, and not understanding what server-grade hardware (or the philosophy behind it) actually is, and you are clearly the latter.

    41. Re:Something something online sorting by drsmithy · · Score: 1

      Hardware passthru, I already do this for RAID cards on my ESX setup.
      I'm kind of curious about the use case for this ?

    42. Re:Something something online sorting by BLKMGK · · Score: 1

      On my server? I have 3 SAS cards. Two of them are passed through to a VM along with a USB bridge so that it can see it's license key and run it's NAS software just as if it was on a standalone machine. That software is unRAID and it works well for mass storage that need not be fast and saves power by sleeping drives when not in use. Been using it for years on standalone hardware with a cat and dog collection of drives totaling about 30TB..

      The 3rd SAS card is passed through to another VM running FreeNAS. FreeNAS is higher performance and can do iSCSI, ZFS, and other things. Currently I have a few drives hooked to it providing an NFS mount to the ESXi software for VM storage. It's also SMB shared for easy access.

      The system boots from a USB stick into ESXi and a small SSD provides storage for the PLOP boot disk for unRAID (long story) and for FreeNAS. I also store some ISO on it for easy access. I may setup some additional storage to play with iSCSI on something I can afford to wipe and may do some ZFS on FreeNAS or OpenSolaris sometime soon - still deciding. Currently the ESXi server runs multipe Linux, Turn-key Linux, and one Win7 VM. I've gotten OSX to boot on it but the mods made the whole thing quirky and I gave up on that one.

      Hardware passthru is normally used for things like USB, RAID cards, weird peripherals via ports etc. but some do use video cards for some reason like say a VM for password cracking. I think some people load multiple cards for central video distribution too via various VM but I've never tried it.

      Hope that helps :-)

      --
      Build it, Drive it, Improve it! Hybridz.org
    43. Re:Something something online sorting by Decker-Mage · · Score: 1

      I get your point but mostly due to the fact that I've been a heretic for the last forty-four years. The funny part is, what I was doing then is what everyone else is doing now, just twenty or so years later. The difference being, in one case, having to forklift my big data into the data center. It keeps me amused.

      --
      "[I]t is a wise man who admits the limits of his knowledge or skill, and that pretending either causes harm." --Terry Go
    44. Re:Something something online sorting by Decker-Mage · · Score: 1

      Partially true, at best. If you are serious about using GPU's for anything whose erroneous result can kill people, you don't use consumer-grade GPU cards. I don't know what you have but I only use workstation-grade and then I verify the results, just as I would do with anything hazardous. As an engineer, I can't afford those types of mistakes.

      And on the whole database thang? The GPU is chained to a database-eating machine (5.65 GBps SSD array, and yes, that's GigaBytes). Yeah, it can make pretty graphics with the results of a crunching session, but that was not why it was picked. Taking lots of big data and teasing out predictive analytics was the chosen role. 'Sides, I don't twitch right.

      --
      "[I]t is a wise man who admits the limits of his knowledge or skill, and that pretending either causes harm." --Terry Go
    45. Re: Something something online sorting by dwater · · Score: 1

      Perhaps he should have asked the question slightly differently...I seem to recall it being a selling point for big SGI machines that they could potentially hold the entire database in RAM. I suppose it totally depends on how big the database is...looking, it seems SGIs can have up to 64 TB of RAM (though the wording is unclear).

      If the database fits into that amount of RAM, then wouldn't that mean I/O is not a limiting factor?

      I have to wonder what happens when there's an unexpected failure...wouldn't the changes that are still in RAM be lost? Well, I don't know much about this, but these are obvious questions I'd be interested to know...beyond "No. Yes." anyway :)

      In anticipation of someone telling me to look it up, I did and my cursory search seemed to suggest the issues are mostly about cost; so, if I can honestly say the following :

      "My database can happily fit inside 64TB and I have enough money to affort to own/run/maintain an SGI UV2000."

      Wouldn't that then mean I have no I/O issue? Assuming "I/O" means disk I/O, of course.

      Of course, the issue more relevant is how much RAM can a GPU have direct control of? I wouldn't imagine it is anything like 64TB...a quick search suggests 12GB is quit a large number for such a product. I suppose that might cover a certain (but different) portion of the market...the same served by regular desktop PCs, for example.

      Hrm.

      --
      Max.
    46. Re:Something something online sorting by WuphonsReach · · Score: 1

      Yeah, you are simply an uninformed idiot if you believe what you wrote.

      Server motherboards can be purchased in standard sizes, or custom sizes depending on your needs. Some of the cost difference is licensing for the SAS/SCSI chips, the rest of the difference between a server board and a "gaming" motherboard is the quality of the discrete components. You get capacitors that will last 10-15 years, not cheap crappy ones that might blow out in less then 5 years. You get boards capable of dual or quad processors. You get KVM over IPMI and other "lights out" features that let you power-cycle a system or get into the BIOS settings remotely.

      With a consumer level board, you'll be lucky if it still works in 5 years. OTOH, you can buy more and keep spares on the shelf, but you still run the risk of parts with lower quality control causing tolerances to drive out of bounds.

      ECC RAM has been readily available from most stores for close to a decade now. It is no longer a special-order part and in any system over a few GB of RAM, you should strongly consider using it if the motherboard (and CPU) supports it. Heck, it's now barely a 5% or 10% cost increase over non-ECC RAM. The big advantage is that you don't get bitten by flipped bits, which get more and more common as feature size shrinks.

      As for hard drives, if you are not using drives with TLER in a RAID, then you are an idiot. The TLER makes sure that the drive reports failures in a timely manner so that your entire RAID array doesn't grind to a halt for 10-30 seconds. As soon as you get over 6-8 drives in the array, this really starts to matter (you can get away with it in smaller arrays).

      --
      Wolde you bothe eate your cake, and have your cake?
    47. Re:Something something online sorting by Blaskowicz · · Score: 1

      XMP is just some crap you can disable, like SPD auto-configuration (less fancy, earlier version of the same thing) - simply know your memory's specs, use a clock lower than or equal to the one it officially supports, increase the timing cycles by one notch, have 2T command rate and not 1T, even add +0.1 volt if your hardware is a bit crap.. This can turn decade old garbage from unbootable to stable (when you want to use more than one or two sticks). But you need at least a lowest end non-OEM motherboard, where all the settings arey available! It's the pre-built, OEM namebrand consumer stuff that is unfixable lol (e.g. I had to downgrade somebody's computer from 3GB to 2GB, because the BIOS doesn't expose any of this)

      Otherwise I'm sure you're correct that the stuff you describe is helpful.. Blinking red light per HDD slot especially (unless you try to make that system up yourself and the red blink doesn't come up or the wrong disks gets blinking? :d)

      About ECC on AMD consumer/gamer systems, it always gets mentioned but the feature is never advertised in motherboard manuals, BIOSes, support pages etc : what's the compatibility list exactly and how do you know the ECC feature is actually working?
      Else, Intel explicitly supports ECC on Core i3 (explicit non-support on i5, i7, Pentium etc.). Safe bet is maybe an i3 on a "professional" motherboard with a chipset named something like C202or C204 or C2xx.. and there, it's all consumer tech behind the scenes. I think you can even buy a redundant PSU for your beige tower, though it will cost as much as most of the PC's hardware ; serial console can be a management interface if you can boot but I think the "pro" desktop motherboard have actual management features too.

    48. Re:Something something online sorting by baffled · · Score: 2

      Using your data, assuming the key block is 512 bytes out of say 8GB RAM, the odds of the key block being corrupted is 1 in 16.78 million. Even if you have 16 bit errors a year, there's a 1 in a million chance of that happening in a year. Now compare that to other risk scenarios, and how much you invest in protecting against those.

    49. Re:Something something online sorting by Blaskowicz · · Score: 1

      Some people simply do it for gaming, you can even have two gaming seats (conceivably more). The feature of using a real vid card in a VM is typically called VGA passthrough, it's more finnicky and pissy than for regular cards or controllers because of the VGA BIOS that needs to be dealt with. It was first done on AMD motherboards (890FX and 9xx chipsets) under Xen 4.x I think, hard to run depending on the motherboard and vid cards ; from what I've heard it's easier with recent server/workstation motherboards and ESXi.

    50. Re:Something something online sorting by r2kordmaa · · Score: 1
      Well yeah, if you need just a cpu, making it on a fpga is not that smart(unless you want to play around with cpu arhidecture). That doesnt mean there are no good reasons to add a cpu into your fpga. For example you can have one half of fpga solving time critical tasks straight in hardware logic(very, very fast) and another half would be a simple cpu that handles tasks that are not that time critical but would be unreasonably complex to solve in hardware logic, for example communications, configuration, etc. You could also have the mcu outside fpga doing much the same tasks, but thats just a compromise between PCB space, component count, fpga internal recources, io resources etc.

      FPGA does not make a very good cpu, but there are plenty of reasons to have a cpu inside FPGA.

    51. Re:Something something online sorting by dbIII · · Score: 1

      It's not a bad time, it's just that different tasks have different bottlenecks. I looked at GPUs for one massively parallel problem that they would seem to be ideal for but sadly for that case the things just do not have the memory for it and the time overheads of feeding them enough to work on outweigh any benefit. For that one clusters of things with a lot of CPU cores and a lot of memory get the job done about a week before the same nodes with GPU cards could do it.
      For other tasks they are perfect.
      So for some things these help us push the limits and for others they are just the wrong tool.

      It's been a few years now so there's bound to be something written as to why they are not being used in these databases. It sounds like an ideal project for a CS student and with all the hype it's got to have been looked into.

    52. Re:Something something online sorting by mikael · · Score: 1

      Funny thing is, some of those mid 1990's PC accelerator graphics boards that were built from i860's and TMS34020's and megabytes, had their own NIC socket. That way they could avoid the slowdown due to the network stack running on software on the CPU.

      --
      Vintage computer adverts: http://www.vintageadbrowser.com/computers-and-software-ads
    53. Re:Something something online sorting by Anonymous Coward · · Score: 1

      And that 64 core 1TB box you're talking about is a gaming box?

      The motherboards you list look more like server boards than a gaming board.
      http://www.supermicro.com/products/motherboard/xeon/c600/x9qr7-tf_.cfm
      http://www.supermicro.com/Aplus/motherboard/Opteron6000/SR56x0/H8QG7_-LN4F.cfm

      Here's a hint- most gamers don't care about IPMI and KVM features on their gaming rigs. Gamers building gaming rigs are more likely to care about overclocking and "crossfire"/multi-gpu support than IPMI and KVM. So where are the overclocking features?
      Heck one of the boards you listed has only one PCIe slot - how would a gamer put two video cards in?

      So facts are:
      1) Gaming PCs are different from servers. Pointing at a server board and saying it's a gaming board doesn't make you right, just makes you look stupid.
      2) ECC is important if your machine is doing important stuff.

    54. Re:Something something online sorting by LWATCDR · · Score: 1

      Well that is what I was thinking. Using GPUs for the checksums to off load CPUs on softraids. The new Haswell Xeons have GPUs on the die. They do seem to support OpenCL as does the Baytrail Atom. What I do not know is could ZFS or a software RAID benefit from using OpenCL. Many servers come with a GPU even if it is just for set up. Often after the setup the servers run headless so you might as well use the GPU for doing something. Maybe for crypto like Truecrypt, SSH and SSL?

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    55. Re: Something something online sorting by TheLink · · Score: 1

      If the database fits into that amount of RAM, then wouldn't that mean I/O is not a limiting factor?

      Depends on whether you still need the database around if the power ever goes off.

      In some applications the DBs are just read-only or temporary and you copy/build them from permanent storage so it doesn't matter.

      But in many other DB applications you do need to write and it needs to actually be permanently written (within monetary and physical constraints). And it often has to be written when you tell the user it's written. Bad stuff happens if you tell the users/customers "transaction succeeded", delay writing the transactions till later but then the power/battery fails and there's completely no record for thousands of transactions.

      --
    56. Re: Something something online sorting by dwater · · Score: 1

      OK, that's what I was trying to get at with one of my comments.

      However, aren't there 'logs' or something like that, that *are* written straight to disk so as to enable a recovery should there be such a failure? ...or does that not apply. I guess the disk I/O associated with the logs (I forget the correct word) might be a bottleneck.

      --
      Max.
    57. Re: Something something online sorting by dwater · · Score: 1

      "journal" - that's what I meant...similar to some filesystems.

      --
      Max.
    58. Re:Something something online sorting by drsmithy · · Score: 1

      Ah, I see, you're only using them as dumb SAS cards. I was a bit interested to see why you would be doing this if you were actually using them as RAID controllers.

      I do the same thing myself into my FreeBSD fileserver VM with a couple of Dell H310 controllers (reflashed with LSI firmware in IT-mode).

    59. Re:Something something online sorting by HornWumpus · · Score: 1

      No parity is truly insane. Many are running no parity RAM these days.

      But with parity you are only worried about double bit flips. An issue not fully covered, even under ECC.

      --
      John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
    60. Re:Something something online sorting by BLKMGK · · Score: 1

      Bingo! They were flashed to be dumb controllers. If they fail I won't have some weird striping and odd weird file system to try and recover. unRAID uses ReiserFS so if need be I can yank a drive and slap it into another machine to recover it. I trust the software RAID like FreeNAS much more so than I do a used SAS card I got off of FleaBay nice and cheap :-) I'll admit I'm interested in higher speed storage and may build something to play with in the near future but my needs aren't so great that it's required. The ESXi server really did help me consolidate things down and get some junk off of my desktop I no longer need to run.

      --
      Build it, Drive it, Improve it! Hybridz.org
    61. Re:Something something online sorting by steviesteveo · · Score: 1

      You just aren't recognising his innovation.

    62. Re:Something something online sorting by steviesteveo · · Score: 1

      Yeah, and no one is saying anything against GPU compute nodes, just not swooning over the bright future of GPU acceleration for the database itself.

    63. Re:Something something online sorting by brambus · · Score: 2

      SuperMicro X9QR7-TF+ (4x ES-4600, 1TB RAM) SuperMicro H8QG7+-LN4F (4x Operon 6300, 1TB RAM)

      You originally wrote:

      I priced the same machine, with 128 cores and 1TB RAM for something like $20K, but with faster components made for gaming use

      These boards are nowhere near "components game for gaming use". Either you knew that, which would make you a liar, or you didn't, which would make you an uneducated amateur. Take your pick.

      Ok, so desktops are worthless for anything that may rely on memory working. I'm glad no accountant ever does work on desktops. Or databases are ever run on desktops. Or developers never use desktops. In any of those circumstances, the memory randomly flipping bits would be horrible failures. Heck, with as much information that goes through your RAM, your machine must have crashed a dozen times while writing that response.

      Red herring, ignored.

      I've stood in a C-level meeting...

      Shit happened, you had somebody to blame. Thanks for confirming my point.

      Sub/IBM/Dell

      Strawman, ignored.

      In some instances where the budget was small,

      I was talking about multi-million dollar projects, so you're strawmanning again. Good job.

      Supermicro

      Supermicro doesn't make gaming stuff. They're a serious enterprise-class HW vendor.

      We failed over exactly as planned. The repairs fall within budget.

      Good for you if failure/fail-over/repair is cheap. I wasn't talking about those cases. I was talking about cases where downtime costs many times the pennies you saved in your purchase.

      So you can buy one. I can buy three, and (if the employer is good) shared the savings with staff at the end of the year in bonuses.

      Look, you're obviously in a different market than the big-name vendors like Sun/Dell/HP/IBM target. You are also seemingly unaware of the deep discounts they can produce (to the point where they are barely more expensive than your manual Supermicro build is, which, mind you, still isn't "gaming" class hardware you were talking about before). Lastly, if you had been part of a large project, you'd know that software licensing costs usually dwarf the hardware (price out Oracle Enterprise for the rig above and you'll understand why the $200k vs $20k on the hardware was small change).

      Now did I say I placed orders from no-name Chinese brands? No. You also haven't checked server memory. Better machines use Crucial. I've seen all kinds of crap shipped with servers directly from the manufacturer. The price for Crucial memory ordered from Crucial.com is less than through the vendor. Hell, unless there's a great sale at BestBuy/TigerDirect/etc, their prices are better.

      No, you were talking about gaming-class non-ECC memory. You've shifted the goal post since the start quite a bit. First you were badmouthing ECC, now you're talking about buying server-class memory (doesn't matter from whom) for server-class mainboards. Go play that stupid game with somebody else.

    64. Re:Something something online sorting by hardwarefreak · · Score: 1

      Read the paper - page 7 (which bizarrely doesn't render clearly for me at all, and I can't copy/paste)
      "Scale Factor 1 (SF 1) ... data fits in GPU memory"

      They ran the TPC-H ("H"="Huge") with a dataset that was ABSOLUTELY FUCKING TINY.

      "H" has no definition. The TPC benchmark series started well over a decade ago. "A", and each subsequent benchmark created over the years, was labeled more or less sequentially, with few exceptions. TCP-W is a "web" benchmark. The two most widely used, TPC-C and TPC-H are, respectively, emulating "transaction processing" and "decision support" workloads. The "C" and "H" have no meaning to anyone outside those who created the benchmarks. Best guess for the origin of "H" is that "decision support" is also called "data warehousing". So maybe the "H" stands for "house". Again, there is no official description of what the letters represent.

      With that correction out of the way, I'll point out that nVidia currently offers the Tesla K40 GPU accelerator which has 12GB of RAM. Decision support database systems have been mostly cluster architectures for many years now because they cost less than big monolithic servers and yield superior performance on DSS workloads, at least for problem sets of any size. An 8 node cluster with 12GB Teslas provides 96GB of RAM. If/when APIs are available to allow parallel DSS databses to use the GPUs, such clusters would run circles around traditional CPU based clusters for many DSS workloads whose datasets are not significantly larger than the memory size. And even then it is possible to make more system memory accessible to the GPU.

      These guys have shown significant speedups for DSS workloads. It's probably only a matter of time now before we see database engines supporting GPUs. Prior to this I think most people saw GPUs as floating point only accelerators for HPC. This paper, and those preceding it, demonstrate integer workloads can benefit as well.

    65. Re:Something something online sorting by William-Ely · · Score: 1

      I'm running a Haswell Pentium on a Supermicro C202 based motherboard that requires ECC memory. Non-ECC will not work even though it is a Pentium class CPU. I found this out the hard way.

      --
      Mod me down with all of your hatred, and your journey towards the dark side will be complete!
    66. Re:Something something online sorting by fatphil · · Score: 1

      Thanks for the correction. I did check and realise my error after posting, but felt it unimportant, as the way the benchmarks had appeared, the H on was the one used on the at-the-time huger datasets. As time has progressed, they (TPC) now just say it's for "large" volumes of data, but they do clearly emphasise that the size is relevant. Maybe I picked up the folk meaning from a journo, and didn't bother verifying.

      But anyway, even if they clustered 8 nodes together, which they didn't do, 96GB would still not cut it. The whole point of TPC was for real-world scenarios. These guys are still playing with toys. This is not a breakthrough, this is merely an interesting line of investigation. It might lead to a breakthrough, certainly, but they should only publish results when they're actually playing in the same ball-park, not 3 orders of magnitude away.

      --
      Also FatPhil on SoylentNews, id 863
    67. Re:Something something online sorting by hardwarefreak · · Score: 1

      No, the point of the TPC benchmarks is to sell hardware and software. Period. Always has been, always will be. Look at the results. Every system configuration is exact down to the last wire and transistor, all necessary software SKUs, licenses, etc. One can order an identical system directly from the PDF as every part# is there. The TPC organization is funded by fees paid for the test suite, verification of and publication of vendor results. The big vendors spend tens of millions on confgiuration engineering and testing trying to stay at the top of each list.

      You seem to be confused here. The researchers did not publish a TPC-H result. They published a method for running SQL queries on a GPU. The TPC-H benchmark was simply the workload they chose to demonstrate that it not only works, but works pretty well. This is research, not a product launch. They didn't submit their results to TPC. They're not selling a computer system or software. Whether their test rig has the size or throughput of a system configuration published on the TCP website is simply not relevant.

      They proved the concept. Others will pick up the torch just as happened with GPUs in the HPC space. In the not too distant future we'll see commercial DSS systems, from the same vendors on the current lists, with a GPU (or 2 or 4) in each cluster node.

    68. Re:Something something online sorting by afgun · · Score: 1

      I've stood in a C-level meeting, and apologized that a critical name brand server failed. Their on-site tech showed up in 2 hours, and told us that the part would take 2 days to get. "BUT THE CONTRACT SAYS 4 HOUR RESPONSE!" Ya.. 4 hours for them to come back with something. Not 4 hours to resolve the problem completely. 4 hours frequently turns into days, or worse on holidays.

      Apparently the purchaser didn't understand your support contract then, because the support tech easily made the commitment. How is that the vendor's fault? It's not... it's the fault of the support purchaser for not understanding what they bought. Higher level contracts (with call-to-repair guarantees) are available; if something's THAT critical, then you should have a fully functional spare or even better, a high-availability solution in addition to your maintenance contract, which it appears you didn't. So it was apparently not that critical...

    69. Re:Something something online sorting by fatphil · · Score: 1

      They did not publish a formal TPC-H result, they simply name-dropped TPC-H. In a way that, as it can't be compared to anything, TPC themselves is "meaningless".

      And the 3 guys with nvidia email addresses on the paper have no interest in how well nvidia cards sell? It is you who seems confused, or at least naive. This was nvidia marketting. The company I just quit from used to do exactly the same - they all do.

      --
      Also FatPhil on SoylentNews, id 863
    70. Re:Something something online sorting by TempestRose · · Score: 1

      No one is saying it's gonna help with 320 GB of raw data. Clearly it will not. Where it might help is with recomputing the 27 different cubes the various business units want. Every day. Open your eyes. No one says this is for everyone. It has targeted uses. 1 use: recomputing compute-heavy cubes. Every Day. With pricing data, I would think your bosses would be sporting particularly large woodies, just dreaming about the realtime info they could be getting, oh, perhaps every hour even? Lots o' opportunity for floating point calcs there, no? Or are they just collecting the data? Hmm, did I just give away a business idea? Screw it. Contact me and throw me .1% when you make it real. Hell , hire me to help you make it real.

    71. Re:Something something online sorting by TempestRose · · Score: 1

      OK, AC or not, this fucking made me laugh my ass off. TYVM...

    72. Re:Something something online sorting by hardwarefreak · · Score: 1

      They did not publish a formal TPC-H result, they simply name-dropped TPC-H. In a way that, as it can't be compared to anything, TPC themselves is "meaningless".

      They used TPC-H because it's a relevant benchmark everyone in DSS is familiar with. It allows for a reference point. "Name dropping"? Please...

      And the 3 guys with nvidia email addresses on the paper have no interest in how well nvidia cards sell?

      You're kidding right? How many such research papers have you read in your life? Is this the first? If they'd have chosen to use AMD hardware instead of nVidia, you'd see AMD engineers at the top of the page. If one embarks on research to enhance the fuel economy of Ford's EcoTech engine, is one going to go it alone or involve Ford engineers who know everything about said engine? This is known as an "academic/industrial partnership". The bulk of all such research today is done in this manner. If you want to read a study without such commercial involvement, read pure research papers on something like particle physics.

      It is you who seems confused, or at least naive. This was nvidia marketting. The company I just quit from used to do exactly the same - they all do.

      I think everyone who has read this exchange knows who is confused and/or naive, and who has an axe to grind for some illogical reason. Take any 4th year or post grad marketing class and tell me where on the ROI list partnering on academic research papers falls. It's not there. Why? Marketing is an overt exercise designed for maximum exposure. A few employees' names on an academic research paper that will be seen by a few hundred people is the ultimate in obscurity.

      If you want to poo-poo something at least have a few facts to back up your arguments. You've stated none in this exchange. I think you should exit this thread at this point. You simply dig yourself a deeper hole with every reply. However it is clear that you are the type who cannot be humbled no matter how many times you're proven wrong. So, please, continue making illogical arguments. Some may find it humorous.

    73. Re:Something something online sorting by fatphil · · Score: 1

      > It allows for a reference point.

      Now reread the paragraph you're responding to. It's hard for you to be more wrong. It's not a reference point, *meaningless*. People who work with databases will never have *any* interest in this toy. Ever. As someone currently looking at petabyte databases, I even laugh at the few-terabyte setups now. A tweak I was looking at this month managed to save a few terabytes in storage for one typical scenario. It's uncertain if that's significant enough to be worth implementing - more research required.

      > tell me where on the ROI list partnering on academic research papers falls. It's not there

      False. That's basically the entire raison d'etre for the creation of the last place where I worked, a supposed "R&D" centre. It's part of what my job was. So I'm speaking from experience of the cutting-edge IT field in 2013. They were happy to throw a good 7 figures in that direction. Feel free to ask them where the ROI was, all I know is that it happens because it happened.

      --
      Also FatPhil on SoylentNews, id 863
    74. Re:Something something online sorting by JWSmythe · · Score: 1

      It's frequently decisions made by non-technical people, but I'm sure you're familiar with that.

      When there's a healthy 5-figure pricetag on a server, and the salesman goes on about how excellent their support contract is, technical people cringe, and executives say "why do we need spares?"

      So, it could be the most critical piece of equipment in your infrastructure, if you don't have the top brass signing off on buying a spare, you don't get one. Or what I've run into too many times is setups predating me, where exactly the scenario above played out, so there is exactly one server. Trying to sell the top brass on buying more falls on deaf ears, when they're trying to figure out who gets the new office furniture and which private jet to charter for the executive retreat.

      It really doesn't matter how much noise IT makes, its the apparent needs that take priority over the theoretical oh-shit moment. Well, until the oh-shit moment happens, and I end up explaining how I've been insisting on improvements for X years. "Please reference my memos and meeting notes over the last two years warning of exactly this situation" doesn't go over as well as you'd think.

      Hell, one place I worked at, we had to cannibalize old servers to assemble almost enough working servers to keep production going. The staff got a new office, all new workstations, new phones, and raises. I got $2,000 for infrastructure even though there was a detailed plan of what was required just to maintain operation safely. Needless to say, the $2k didn't even make a dent in it.

      --
      Serious? Seriousness is well above my pay grade.
  2. Cost? Time? Hardware? Skill? by AHuxley · · Score: 4, Interesting

    The people with the skills have day jobs and want to enjoy time off with other projects.
    The people with the skills have no jobs and want to write the code but the hardware is too expensive.

    --
    Domestic spying is now "Benign Information Gathering"
  3. Because SQL is basically dead by Maury+Markowitz · · Score: 2, Insightful

    The R&D effort in the SQL field is roughly zero, so it's not surprising people aren't keeping up with the latest developments in the hardware field.

    It's bad enough that the only standardized access system is ODBC, designed 25 years ago when pipes were short and thin and a WAN was the next building over. If we can't get that problem fixed, what's the hope for integrating new technologies?

    1. Re:Because SQL is basically dead by Anonymous Coward · · Score: 2, Informative

      The R&D effort in the SQL field is roughly zero, so it's not surprising people aren't keeping up with the latest developments in the hardware field.

      Except for the part where errybody's keeping up with the latest developments. They're just actually looking at developments that matter. GPUs... Do not matter. If you want to know more, check the first post.

      Processing power is inconsequential compared to I/O. RAM is pretty straightforward; newer, faster RAM comes out, larger amounts become cheaper, you buy it, you throw it into the mix.

      The cool stuff is happening around SSDs (which are also pretty straight forward), solid state memory devices (think FusionIO-style cards; Violin devices; RAMSANs), and crazy arse storage solutions.

    2. Re:Because SQL is basically dead by houstonbofh · · Score: 2

      Run a big query on your database. Now, while the hard drive light is solid red, look at your CPU load. See how it is not using all the CPU because it is waiting on the hard drive? A GPU will not help that.

    3. Re:Because SQL is basically dead by Anonymous Coward · · Score: 1

      Rubbish. GPUs do not access I/O. DBs that aren't toy systems use a fuckton of storage.

    4. Re:Because SQL is basically dead by advocate_one · · Score: 1

      16 gigs of fast RAM as well would be a good boost... but with really big databases, you go parallel... with multiple machines running against small subsets of the data at the same time...

      I'm surprised we haven't seen FPGAs being deployed instead of GPUs...

      --
      Donald 'Duck' Dunn: We had a band powerful enough to turn goat piss into gasoline.
    5. Re:Because SQL is basically dead by TheRaven64 · · Score: 2

      16GB of RAM? What is this, 2000? My laptop has 16GB of RAM, the machines in the rack have 256GB, and they're a year old (and due an upgrade). If you're running a database on something with 16GB of RAM, you either don't have much data or you're seriously skimping on hardware.

      --
      I am TheRaven on Soylent News
    6. Re:Because SQL is basically dead by EvilAlphonso · · Score: 1

      I haven't seen the CPU as the bottleneck on any of the DB servers I have administered in the last 4 years, except on seriously under-spec'd systems. The most CPU intensive DB at work is peaking at 3 cores out of 24, but maxes on IOPS (8GB link to an auto-tiered SAN, 50% SSD disk pool) and RAM (256GB) throughout the entire job.

    7. Re:Because SQL is basically dead by houstonbofh · · Score: 1

      No, but a multi channel SSD Raid would.. expensive yes... but certainly possible. then where is your bottleneck.

      Next would be I/O to the graphics card, as mentioned in the article. But in general, the bus is the next bottleneck.

      However on a server where you pay by CPU having a non-CPU extension makes a lot of sense. This would be why propriety systems have GPU extensions and open source systems do not.

      in short - if you need CPU in open source get get another CPU - it's cheap. If you need CPU in a closed source application you get a GPU - it doesn't work as well as a CPU but it adds performance and it doesn't incur more licensing fees.

      Are you actually using crappy licensing as a reason to use alternative hardware? And when the license is open and they only restriction is technical you can use a cheaper solution, and that is a bad thing?

    8. Re:Because SQL is basically dead by Blaskowicz · · Score: 1

      16GB of RAM is what will be found on the server/compute version of the Radeon R9 290X, around 300GB/s (minus 12.5% in bandwith and capacity for the jury-rigged ECC, I assume). Nvidia sells GPUs with 12GB of memory with similar bandwith right now. I take that the "16 gigs of fast ram" referred to that context.

      It's an order of magnitude faster than CPU memory, bandwith-wise, and that bandwith makes the GPU useful in video games and other stuff.

  4. "Them"? by FaxeTheCat · · Score: 2

    so what's holding them back?

    Wrong question. It is open source. If you need it, you fix it.

    1. Re:"Them"? by houstonbofh · · Score: 1

      so what's holding them back?

      Wrong question. It is open source. If you need it, you fix it.

      No, it is the right question. And the answer is, the people that actually understand these things work also know this will not help anything in real world applications. They are also busy optimizing for additional cheap ram, and the new and fast SSD cards that are almost affordable.

  5. Risk aversion. by Anonymous Coward · · Score: 2, Interesting

    Because a lot of us have personal experience on how "reliable" GPU calculations are.

    A few screen "artifacts" tend to be less painful than db "artifacts". Maybe things have changed. But it's not been that long since nvidia had a huge batch of video cards that were dying in all sorts of ways.

    As for AMD/ATI, I suspect you'd normally use some of their crappy software when doing that GPU processing.

    1. Re:Risk aversion. by Anonymous Coward · · Score: 1

      Business grade GPUs exist, they are not the default, are not cheap and loose some of the speed to error correction. A lot of code already uses APIs like CUDA and OpenCL however that code mostly uses floating point computations which are extreemly optimized and redundand on GPUs, computing pointers and integer operations (likely heavily used by DBs) is something of a lesser priority.

  6. You just answered your own question by vadim_t · · Score: 4, Insightful

    "Many queries that I write are simpler than TPC-H, so what's holding them back?" -- simple queries don't need acceleration.

    A "SELECT * FROM users WHERE user_id = 12", or a "SELECT SUM(price) FROM products" doesn't need a GPU, it's IO bound and would benefit much more from having plenty cache memory, and a SSD. A lot of what things like MySQL get used for is forums and similar, where queries are simple. The current tendency seems to be to use the database as an object store, which results in a lack of gnarly queries that could be optimized.

    I do think such features will eventually make it in, but this isn't going to benefit uses like forums much.

    1. Re:You just answered your own question by tranquilidad · · Score: 4, Insightful

      This...

      If you go beyond the abstract and read the paper you'll notice that they chose a TPC-H scale factor of 1 (1 GB of data) so that the entire dataset would fit in the GPU.

      The question they seem to really be asking is more akin to, "Why don't we make our datasets small enough for complex queries that it can all fit in the storage attached to a processor we like?"

      They continue to answer their own question when discussing results and admit they can't compare costs of "traditional" implementations because those tests were all run with scale of 100 (100 GB of data).

      They say the comparison is difficult against complete systems because of the scaling factor and "...this paper is about the effectiveness of mapping relational queries to utilize the compute throughput [of] GPUs".

      So, it seems to boil down to a test of compute power on data sets small enough to fit in memory rather than an effective test of relational query processing, though they did use relational queries as their base testing model.

    2. Re:You just answered your own question by fahrbot-bot · · Score: 1

      So, it seems to boil down to a test of compute power on data sets small enough to fit in memory rather than an effective test of relational query processing, though they did use relational queries as their base testing model.

      Or... Just because you can do something, doesn't mean you should.

      --
      It must have been something you assimilated. . . .
    3. Re:You just answered your own question by fatphil · · Score: 1

      Exactly!

      "They say the comparison is difficult against complete systems because of the scaling factor[...]"

      The TPC go a little bit further:
      """
      Note 1: The TPC believes that comparisons of TPC-H results measured against different database sizes are misleading and discourages such comparisons. The TPC-H results shown below are grouped by database size to emphasize that only results within each group are comparable.
      """

      Their toy is simply irrelevant in the field of real world databases.

      --
      Also FatPhil on SoylentNews, id 863
    4. Re:You just answered your own question by locopuyo · · Score: 1

      Select * from orders order by amount For huge sorting queries gpu destroys cpu.

    5. Re:You just answered your own question by locopuyo · · Score: 1

      Why would the database be GPU based? It could easily use both CPU for all the normal stuff and GPU where CPU just doesn't cut it.

  7. Why? by koan · · Score: 1

    Isn't everyone using them? I do 3D and the one drag about 3D is render time, I have a piece of software that uses the GPU and I am able to get a decent render in real time.
    Premiere and AfterFX run much better and quite often real time renders too.
    The way GPU's work seems to be the future, so I am puzzled why it isn't more prevalent, and I'm sure there is some technical reason I'm not aware of... right?

    --
    "If any question why we died, Tell them because our fathers lied."
    1. Re:Why? by laffer1 · · Score: 2

      One problem is OS and toolchain support. You might get something together for Windows, OS X and Linux, but that's where the buck stops.

      The next problem is that standalone compute cards are rather expensive and putting in a high power GPU has considerable power requirements. Then most server racks are full of 1u wonders not designed to get rid of heat or even hold a huge AMD or NVIDIA GPU.

      Open source databases are great, but they're often pushed as a cost savings to companies. To turn around and buy extra hardware to make them faster isn't going to cut it.

      Finally, there's the oddity of programming languages that some databases are written in. The popular SQL databases are in C so that's not a problem. Some of the others are in Java, erlang, or some other crazy language that may or may not have OpenCL or CUDA support.

    2. Re:Why? by Anonymous Coward · · Score: 1

      The subject is databases. You're working in graphics... it seems that graphics processing units are good at... processing graphics. But GPUs are not database processing units.

    3. Re:Why? by koan · · Score: 1

      The cards would come down in price if they became popular, most GPU price points drop rapidly after release (except for the higher end cards), power is a problem, power is always a problem.

      Fix the power problem and you're the richest man/woman in the World.

      For the software side what if a company took the approach of building out the hardware, optimizing an OS, and then writing their apps for that hardware? (like Apple).
      I'm actually asking because it seems like a good idea, who wouldn't want a database 12 times faster?

      --
      "If any question why we died, Tell them because our fathers lied."
    4. Re:Why? by hairyfeet · · Score: 1

      Uhhh...the price drops in CONSUMER GPUs, you know, the thing you play the shooty boomy games on? those are NOT what you use to compute your multimillion dollar DBs on, not unless you have no problem with 1+1 occasionally equaling 4.

      The cards you use for the kind of number crunching in TFA would be your Tesla and FirePro cards and ya know what? The price on those does NOT drop quickly, just the opposite in fact with cards that are a couple of gen behind still fetching high dollar. You really can't compare the two, one has massive economies of scale while the other is a teeny tiny niche.

      --
      ACs don't waste your time replying, your posts are never seen by me.
    5. Re:Why? by countach74 · · Score: 1

      Sorry, had to chime in on your claim that price would come down if they became popular. That is contrary to the Law of Supply and Demand. Top end GPU's are expensive because there is demand for the latest and greatest, which then justifies the cost of making very expensive, cutting-edge cards.

    6. Re:Why? by koan · · Score: 1

      Demand grows price drops.

      What's cheaper a handful of high end GPU's bought in bulk or the standard DB hardware used today? And don't just say one or the other show some proof.

      --
      "If any question why we died, Tell them because our fathers lied."
    7. Re:Why? by koan · · Score: 1

      it used to be the same for CPU's, is it still that way?

      --
      "If any question why we died, Tell them because our fathers lied."
    8. Re:Why? by michaelmalak · · Score: 1

      1+1 occasionally equaling 4

      Are you referring to the lack of ECC RAM on consumer grade GPUs or are you saying you know of FDIV or overclocking style unreliability in the compute engines themselves?

    9. Re:Why? by hairyfeet · · Score: 1

      I'm referring to the fact that you can render the exact same scene with 2 GPUs and there WILL be minor differences, even though we are talking about the exact same frame and the exact same data.

      The reason that is is because not only is there no ECC RAM on the GPU but the chips themselves aren't as rigorously vetted like in the pro chips and even the software and firmware is set up for getting pure FPS over perfect accuracy. There is a reason why the pro cards are so high and its NOT economy of scale, nor is it marketing, its because the ones that end up in the pro boards are so called "golden binned" chips, those that come out as close to absolutely perfect as can be, then the ECC and software simply reinforce accuracy over speed which is the polar opposite of a consumer chip. Its no different than how the top of the line AMD octocore and their bottom of the line hexacore are in reality one and the same chip but in the latter case its had one or more cores (for whatever reason) switched off and simply can't clock as high as a golden binned octocore.

      So its the difference between a top o' the line Core i7 and a Celeron, sure at the "core" (pardon the pun) they look similar, might even be able to do similar jobs in some cases, but one has had a hell of a lot more QA and QC applied and a lot more care in construction. Sure you can mine with a consumer GPU but would you REALLY want to bet your company on the figures computed on consumer GPUs?

      --
      ACs don't waste your time replying, your posts are never seen by me.
    10. Re:Why? by Blaskowicz · · Score: 1

      Actually the first gens of Tesla cards (G80, GT200) were über-expensive even though they were not particularly useful, and then the two latter gens (Fermi, Kepler) were like 3x cheaper. Tesla is cheaper than high end Quadro (which is a superset of Tesla), AMD now is competing or intending to compete and Intel will with their next "many-core chip iteration. Geforce Titan (or even the GT640 gddr5) serves as a low entry point, it's the same as Tesla/Quadro minus the ECC (and minus the CAD OpenGL etc. stuff) so it can be used to develop GPGPU stuff, or number crunch if you don't need high integrity (offline 3D rendering, etc.)

  8. They're coming... by Heretic2 · · Score: 3, Informative
  9. What's holding them back? by Culture20 · · Score: 1

    Many queries that you write are simpler than TPC-H. Necessity is the mother of invention.

  10. Re:Servers by fuzzyfuzzyfungus · · Score: 2

    Most servers do not have powerful GPUs, and that is where heavy production databases are run.

    Servers turn over comparatively quickly, though (sure, every shop has ol' reliable trucking away on the 13GB SCSI drive that was pretty cool when it left the factory, doing something obscure but vital; but the population as a whole churns faster than that), and servers with nice chunks of PCIe (typically intended for your zippy network cards or fancy storage HBAs; but they are perfectly normal PCIe slots) aren't at all difficult to find. Nor has (Nvidia in particular, AMD trailing a touch) Team Graphics been shy about pushing server-suitable GPU compute parts.

    It is true that servers today mostly have little to no GPU power; but if the case were made, that would change rather quickly.

  11. Why not? by Black+Parrot · · Score: 3, Funny

    It's waiting for you to get on it.

    --
    Sheesh, evil *and* a jerk. -- Jade
  12. Re:real world databases are usually not pcu bound. by StripedCow · · Score: 1

    so while the computation on the gpu may be 10x faster...feeding the data in/out is 10x slower meaning it did not do anything for you, except require you a lot of extra coding complication do use it. ...
    Benchmarks tend not look like real world queries, of often you can do something that helps a benchmark, but does nothing in the real world,.

    But what if the benchmark is larger than the memory size of the GPU? I don't know the actual size, but I guess they use at least realistic amounts of data (larger than the memory of the GPU card), so that would prove your theory wrong!

    By the way, there's more to databases than just queries. Skimming through the abstract, I see that they only address speeding up the queries. The commit phase of a database is also interesting, but they don't seem to address it.

    --
    If Pandora's box is destined to be opened, *I* want to be the one to open it.
  13. Hardware costs are limiting factor by dkf · · Score: 1

    What's holding them back? I'd have thought it was obvious!

    The big issue with GPGPU for DB work is that you have to have the DB entirely in memory or your performance will suck (even SSDs aren't that fast). To get a big database to work in such a scenario, you have to split it into many smaller pieces, but that makes working with these sorts of things expensive even with an open source DB. The paper even says this. That makes this sort of work only really interesting for people with significant budgets, and they can easily use a commercial DB; the additional cost isn't prohibitive in that scenario.

    Without general hardware availability, there's just that not many people pushing to have the feature; OSS thrives on having many people want it and many developers able to work on it.

    --
    "Little does he know, but there is no 'I' in 'Idiot'!"
  14. Re:Servers by houstonbofh · · Score: 2

    But for that money, more ram or faster drives makes more of a difference...

  15. Improvements have to come a few at a time by leandrod · · Score: 1

    All of these SGBDs are actually toys being sold for more then they are capable of. So developers there have to try to catch up to PostgreSQL before it becomes (even) easier to use and eat their lunch.

    Meanwhile, the issues meriting scarce development and, mainly, review time at PostgreSQL are more interesting than accelerating a few workloads in hardware which is not yet in the servers out there. Things like making PostgreSQL even easier to install, set-up and manage, even more ISO SQL compliant, even more capable, even better than NoSQL at NoSQL loads

    Now, if you can show your GPU aware PostgreSQL extension or modification, and show it is generally useful enough to merit review time for the next release why not?

    --
    Leandro Guimarães Faria Corcete DUTRA
    DA, DBA, SysAdmin, Data Modeller
    GNU Project, Debian GNU/Lin
    1. Re:Improvements have to come a few at a time by cyber-vandal · · Score: 1

      SGBD = DBMS en Anglais ;-)

    2. Re:Improvements have to come a few at a time by leandrod · · Score: 1

      Thank you, even if I fear it is too late to fix.

      While I do speak French too, the mistake is probably from my native (Brazilian) Portuguese.

      --
      Leandro Guimarães Faria Corcete DUTRA
      DA, DBA, SysAdmin, Data Modeller
      GNU Project, Debian GNU/Lin
    3. Re:Improvements have to come a few at a time by cyber-vandal · · Score: 1

      Sorry French results were the first on Google when I wondered what SGBD meant :-)

    4. Re:Improvements have to come a few at a time by leandrod · · Score: 1

      No prob at all.

      --
      Leandro Guimarães Faria Corcete DUTRA
      DA, DBA, SysAdmin, Data Modeller
      GNU Project, Debian GNU/Lin
  16. It depends by Waffle+Iron · · Score: 5, Funny

    Research shows that there is good news and bad news on this approach.

    The good news: Certain SQL queries can get a massive speedup by using a GPU.

    The bad news: Only a small subset of queries got any benefit. They generally looked like this:


    SELECT pixels FROM characters JOIN polygons JOIN textures
    ON characters.character_id = polygons.character_id
    WHERE characters.name = 'orc-wielding-mace' AND textures.name = 'heavy-leather-armor' AND color_theme = 'green'
    ORDER BY y, x

    1. Re:It depends by Anonymous Coward · · Score: 2, Funny

      ORDER BY z ... sorry

  17. Not true by kervin · · Score: 4, Insightful

    ...because I/O is the limiting factor of database performance, not compute power?

    Just a few projects into Database Performance Optimization would convince you that's not a true statement. IO/Memory/CPU are in fact largely interchangeable resources on a database. And depending on your schema you can just as easily run out of any of these resources equally.

    For instance, I'm currently tuning a SQL Server database that's CPU heavy based on our load projection targets. We could tweak/increase query caching that would cause more resultsets to stay in memory. This would mean that less complex queries would be run, drastically reducing I/O and some CPU resource usage. But then drastically increasing memory usage. This is just a simple example of course to illustrate the point.

    Databases run out of CPU resources all the time. And a CPU advancement would be very well received.

    My guess as to why this hasn't been done is that it would require end-users to start buying/renting/leasing GPU enabled hardware for their Database infrastructure. This would be a huge change from how we do things today and this sector moves very slowly.

    Also we have many fairly old but more important Database advancements which have been around for years and are still almost unusable. If you ever tried to horizontally scale most popular Open-source databases you may know what I'm talking about. Multi-master, or just scaling technology in general, is required by about every growing "IT-dependent" company at some point. But that technology ( though available ) is still "in the dark ages" as far as I'm concerned based on reliability and performance measurements.

    1. Re:Not true by Bengie · · Score: 1

      Rule of thumb, if your dataset can fit in memory, it probably won't benefit from GPUs. Talking about 10TB+ datasets and few long running Data Warehouse style queries, not small OLTP style queries. GPUs take a crap if you have any branching, so all queries used must not have any conditions that can cause different rows to take different branches to be useful, so very basic WHERE statements.

    2. Re: Not true by dgatwood · · Score: 2

      Fully interchangeable, no, but they are somewhat so. It's more like saying that the transmission and engine are interchangeable. In a literal sense, it isn't true—neither can do the other's job—but you can make up for a weak engine by adding more gears.

      --

      Check out my sci-fi/humor trilogy at PatriotsBooks.

  18. there are certainly CPU-bound databases by hedrick · · Score: 1

    I'm responsible for a large university learning management system (Sakai). The daabase is completely CPU limited. I assume that's because the working set of data fits in memory. I would think lots of university and enterprise applications would be similar. Another data point is the experiments done on a no-SQL interface to innodb. That shows very large speedups. Surely some of this is due to the CPU overhead in processing SQL.

    1. Re:there are certainly CPU-bound databases by marcosdumay · · Score: 1

      I assume that's because the working set of data fits in memory.

      As memory access count as CPU time, not I/O, doing any query in a dataset that is in memory will be CPU bound. But that does not mean that you'll get improvements by adding CPU speed.

    2. Re:there are certainly CPU-bound databases by Arker · · Score: 1

      As the other poster pointed out, given that your set fits in memory, it's going to appear to be CPU bound. It still probably is not, however. Memory access is still likely to be the actual bottleneck.

      --
      =-=-=-=-=-=-=-=-=-=-=-=-=-=-
      Friends don't let friends enable ecmascript.
  19. postgres can. by jdew · · Score: 1

    Guess nobody ever heard of the pgstrom

  20. Re:Servers by PPH · · Score: 1

    IT staff needs GPUs to play Crysis. Your DBMS gets a lower priority.

    --
    Have gnu, will travel.
  21. Plenty to do first... by fostware · · Score: 1

    Besides datasets not fitting in to GPGPU memory, and I/O bottlenecks, I'm still seeing plenty of badly written SQL

    A current contract has plenty of SQL work (not for me though), and the bulk of their time is cleaning up data exceptions, badly written report queries, and moving oft-used or large-dataset queries to stored procedures. GPGPU's will hide some of the rot, but if the SQL was written better in the first place, we're able to use parallelism and better use existing commodity hardware in clients virtualised environments.

    I'm not dissing the prospect of GPU acceleration, just the priority TFA gives to it.

    --
    "We know what happens to people who stay in the middle of the road. They get run over." - Aneurin Bevan
    1. Re:Plenty to do first... by Grishnakh · · Score: 1

      This might be a stupid question as I'm not a DB expert, but isn't the problem of badly-written SQL something that could be mitigated by improvements in the SQL parser of a RDMBS? Other programming language compilers are frequently designed to optimize output code despite non-optimal constructs written by programmers. It seems to me that some of the improvements you talk of could be automated, especially moving oft-used queries to stored procedures.

    2. Re:Plenty to do first... by fostware · · Score: 1

      I honestly don't know of any decent AQL optimisers...

      I know MS SQL Management Studio has SQL Profiler, Index Tuning Advisor, and Database Performance Tuning Advisor.
      But there's nothing in Aqua Data Studio that works with PostgreSQL, which means co-workers and I must rely on good looks and mad skillz (I'm only passable on both)

      --
      "We know what happens to people who stay in the middle of the road. They get run over." - Aneurin Bevan
    3. Re:Plenty to do first... by Bengie · · Score: 1

      When your queries start getting into the 10 table joins, the join optimizer starts to attempt to make educated guesses because of the number of possible join arrangements. The metadata used is based on samples of the current data. To mitigate having to keep these metadata perfectly up to date, which would be very expensive and slow, the RDMBS only samples a subset.

      While this works most of the time, there are some cases that don't. I've had quite a few times where I had to force join orders and/or join types to get the query to work correctly. Talking about 1-4 magnitude differences in performance many times. Since I have control over the DB, I can know how the data will relate and can force the DB into certain join orders.

      Some times, breaking the query up and loading the output into temp tables can speed things up. I do not recommend this as "normal", but some cases warrant it.

    4. Re:Plenty to do first... by Grishnakh · · Score: 1

      See, (again I'm speaking from a position of relative ignorance here) it seems like the RDMBS should be intelligent enough to figure this stuff out automatically, instead of requiring an in-house expert. It should be adaptive and learn from the current usage patterns, in relation to the data it stores. So if, for instance, breaking the query up and using temp tables speeds things up, the DB should figure this out and do it automatically. It wouldn't work for one-time queries, but if the same kind of queries are being done over and over, it should recognize the common queries, and behind-the-scenes look for ways of speeding up these queries, so that when they're done in the future, it can apply these improved methods and deliver much faster results.

    5. Re:Plenty to do first... by Bengie · · Score: 1

      Many of these optimizations that are done "manually" can be done because I know certain things that the RDMBS does not know about the usage case. It can guess about things and use current meta data, but those guesses are not always correct.

      Lets make an example. Say table A is a small table with a relation to table B, and table B is several magnitudes larger than A. Now say table B has a relation to table C, but table C is only a few factors larger than B.

      Lets assume there is also a reverse, where table D is a few factors small than table C, and table E is several magnitudes smaller than table D. Say I have a join that returns a large data set and I need to filer on tables A and E. It is hard for the optimizer to know about the logical relations between these tables and may join A->B->C->D->E or the reverse, E->D->C->B->A. The problem that arises is the set of ABC is relatively small and the same for EDC, but the set of ABCD is HUGE and so is EDCB.

      One way around this is to manually join ABC with DE or EDC with AB. It would be hard for the optimizer to figure this out. The DB probably could have had a better design, but that's what I was given.

      This is what happens when someone designs a database that is technically properly normalized, but does not play well with actual usage. In their normal use cases, they're just seeking, so it works fine, but when I have to do large joins with few seeks and mostly merge joins, then it's crazy slow. This is why designers need to understand how their stuff is actually used. Being technically correct doesn't mean it's a good design.

  22. Postgres by slackergod · · Score: 2

    Looks like exactly what PostgreSQL's PGStrom project is trying to acheive.

  23. Conspicuous omission - PostgreSQL by bill_mcgonigle · · Score: 1

    it doesn't seem like any code has made it into Open Source databases like MonetDB, MySQL, CouchDB, etc.

    Lemme guess, MySQL fanatic?

    You can already go download:

        https://wiki.postgresql.org/wiki/PGStrom

    if it fits your problem domain and PostGIS has some hackers adding GPU support:

        http://data-informed.com/fast-database-emerges-from-mit-class-gpus-and-students-invention/

    Why not the others? Perhaps because PostgreSQL makes developing extensions easier - it's got the largest extension ecosystem, so I'm just presuming there. If it turns out well in Pg-land, the others will naturally adopt it.

    So the answer to the story title is "they do." The next question would be, "why isn't it widely deployed", and the answer would be, "it's not done yet." Yadda, yadda, yadda, patches welcome. If the whole summary is just a way to try to turn "hey this is neat" (it is) into an ill-founded complaint story, then write a better story next time. It's neat stuff, no need to whine.

    --
    My God, it's Full of Source!
    OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
  24. true. large, busy Wordpress CPU bound by raymorris · · Score: 1

    Indeed. We have a large WordPress based site and it is bound by database CPU despite the fairly powerful CPU it uses. It should scale to many cores, so I'm thinking of trying a pair of the 8 core AMD processors. Intel is faster PER CORE, but an AMD rig could have 16 cores.

  25. Re:Servers by fuzzyfuzzyfungus · · Score: 1

    Oh, with the exception of dedicated GPU compute setups, definitely, that's why the servers in use are configured as they are. My point was not that servers should have more GPU power; but that (if a change in software made doing so a good idea) the existing hardware wouldn't provide too much 'inertia' to stop or slow adoption.

    There doesn't seem to be too much interest, on the whole; but if one were interested they could change the composition of their servers in fairly short order; and a broader shift could happen comparatively quickly (again, given suitable software).

  26. GPU not 7 times faster than 32 CPU cores by loufoque · · Score: 2

    A GPU, even a GTX Titan, simply isn't 7 times faster than a modern 32-core x86 CPU in real life. Most of the gain probably comes from just general optimization that could have been done on the CPU too.

    1. Re:GPU not 7 times faster than 32 CPU cores by dkf · · Score: 1

      Yes, because a general CPU can handle much more complex code efficiently than a GPU can. Using a GPU well requires writing code in a form that is suitable for it; this works well for some algorithms, others can be twisted to work that way, and yet others simply will never be a good fit.

      --
      "Little does he know, but there is no 'I' in 'Idiot'!"
    2. Re:GPU not 7 times faster than 32 CPU cores by godrik · · Score: 1

      I did not look at the actual numbers claimed nor what they are. But a factor of 7 between a GPU and a 32 core intel system is not impossible. My BS alarm trip around a factor of 20 for a 2 processor system.

      If you look at state of the art nvidia GPU, you pick a tesla K10, ( http://www.nvidia.com/object/tesla-servers.html ). You get about 4T.5flop/s single precision of performance and a bandwidth of 320GB/s. The flop is realistic for compute intensive (read dense mat mul) and the bandwidth is never reached. Probably 250GB/s is more reasonnable.

      On the CPU side, if you peak a Xeon E5 such as this one ( http://ark.intel.com/products/64595/ ), you need 4 of them to get to 32 cores. you get 32core*2.6Ghz*8floatpersimd = 665Gflop/s which is actually realistic for dense kernel such as matmul. and 4*50GB/s bandwidth. But in practice you difficulty reach 30GB/s per processor so 120GB/s aggregated.

      So the GPU is about 7.5 times faster floating point wise and 2 times faster bandwidth wise. but here we are talking peak, and practical performance varies a lot from application to application and depending if you can use your architecture properly. But overall for some well chosen kernel a factor of 10 still seems not too unreasonnable.

    3. Re: GPU not 7 times faster than 32 CPU cores by loufoque · · Score: 1

      Extracting the peak performance of a GPU is often very difficult, while it's reasonably straightforward to get close on the CPU.
      In practice, I personally often see CPUs starting to beat GPUs at around 32 cores for real applications, but that's with a GPU 3 to 4 times less powerful than above.

    4. Re: GPU not 7 times faster than 32 CPU cores by godrik · · Score: 1

      As i said it really depends on application. Dense compute intensive kernel (typically matmul but any O(n^3) on O(n^2) data typically does it) will reach 80% of peak flop on both architectures. After that the situation is really complication. I have been looking at sparse linear algebra kernel (spmv or graph traversal) and these kernel are quite catastrophic for both cpu and gpu. Most of the time they are memory bound sometimes by latency. And here most conventional insight can be discarded. Depending on the shape of the matrix, the performance of the gpu can be horrible or very good.
      People love to talk "in real application" but that is mostly meaningless. In which real application? Weather forecasting can certainly exploit gpu close to peak performance. Text compression, probably not so well. In the field of relational database, it certainly heavily depend on the query. Though a factor of 7 seems a lot in that case.

    5. Re: GPU not 7 times faster than 32 CPU cores by loufoque · · Score: 1

      Trivial linear algebra kernels, even sparse ones, are not real applications. Sparse linear algebra should be interesting to do on the GPU, since you don't suffer from the lack of gather instruction and you have no cache. Apart from that, FLOPS is not a good unit really, since for non-trivial algorithms the number and types of the operations being done are non trivial, you might have dependencies stalling the pipeline, you might need to spill and thus depend more on local memory... What's more interesting is finding how many cycles are required for each kernel.
      Real applications are things like physics simulation, computer vision, quantitative finance, or audio/video transcoding. They're not as simple to optimize as a simple BLAS routine.

    6. Re: GPU not 7 times faster than 32 CPU cores by godrik · · Score: 1

      There is no good unit. It all depends on your application. For some application FLOPS is what matter. For some application bandwidth is what matters. For some application size of the memory is what matters. There is no simple performance metric that account for every single application.

      I don't know how familiar you are with the computations you are mentionning. But large scale scientific (read physics/engineering) applications are essentially composed of BLAS routines. I have been working with physicist where 50% of the time of their application was eigensolving a large sparse matrix (where the other 50% is building that sparse matrix). Or with nuclear engineers where 80% of the time of their application was spent solving dense linear systems. If BLAS routines (or blas like routine) are so popular it is precisely because they are a significant part of some scientific applications.

      FLOPS is a good measure of performance for SOME applications which are compute bound. For instance many combinatorial optimization algortihm rely heavily on solving dense linear systems. For these applications FLOPS is the meaningful performance metric. That is why top-500 uses linpack as its benchmark because it is meaningful for many applications. Currently the top-500 benchmark is being reassessed to take more sparsity in and the new version should include conjugate gradient algorithm on stencils. Because it is more representative of current scientific application (solving heat equation on 3D objects)

      I have also been working in graph analytics and here we measure more things like edge per second (for instance the graph500 benchmark does that). Here it is meaningful because most of these application boil down to graph traversals. But that metric is quite controversial since the performance you get depends highly on the structure of the graph/matrix. And you need an instance benchmark that represents your application target. For instance, graphs of roads get typically terrible performance on the GPU because they have high diameter and little parallelism can be exposed and CPU typically get better performance there. On social networks, the diameter of the graph is much smaller, there is more parallelism so GPU can be utilize closer to its peak performance.

      tl;dr, there is no one metric that represent "real applications". Each application has different requirements. And each application needs to be investigated separately. FLOP is meaningful for many "real applications".

  27. does not calculate in real life by DomasMituzas · · Score: 1

    putting MonetDB, CouchDB and MySQL in single line already shows seriousness of the question. First of all, TPC-H is decision support (ad-hoc, analytic) workload, and putting all data into memory needs comparison with in-memory ad-hoc platforms like MemSQL where the difference might not be as pronounced. Also, it is easy to have hundreds of gigs of RAM for CPU driven systems, whereas GPU memory is still tiny. Yes, doing complex window functions on streaming data may seem fine, but anything requiring larger arenas of random data access would fall of the cliff. For all the people talking about speeding your Wordpress, you need to look at OLTP or even more readonly small data benchmarks (TPC-C is already too complex). Database that is efficient at transactional workload has too much overhead for analytical processing. Then there are all the datacenter considerations - getting rid of heat once you have thousands of GPUs around is no longer a trivial task, and may involve oil immersion or water cooling. Yes, sorting a dataset can be faster, but assembling it from all the I/O devices and memory is a task that is the major expense. Thats why multithreading works - there are lots of waits for memory already, making them even longer would be difficult. The I/O we talk about is not just reading from disk or disks or ssds, it is also about getting into the chip, and bandwidth there is still constrained. And yes, CPU can get quite busy in database server, for all the network, storage, compression, page and row mangling code has to run somewhere - sizing hardware for large scale databases is a tough balancing act. But very little of that can work on GPU in online world. Nice research though :)

  28. Re:Let's see... by mc6809e · · Score: 1

    ...maybe it has something to do with the fact that it's called a Graphics Processing Unit? Why the fuck are we using them as CPUs?

    We use them as CPUs because we don't suffer from that cognitive bias known as functional fixedness.

  29. The economics are wonderful by Groo+Wanderer · · Score: 2

    Gee, a $1000 GPU that runs 7x as fast a 1/8th of an $1500 CPU. It woud be good idea if you didn't need that CPU to run it, but just barely so. If you cheap out on the CPU and only spend ~$750 on it, assuminng there is no slowdown on the GPU because of it, then the economics break. And people wonder why GPU compute on databases isn't catching on.

    Then there is the power use aka TCO/running costs to think about. And everything mentioned above. And.... This study has all he hallmarks of an Nvidia research project who's targets are financial analysts rather than potential customers. The science is fine but that is not the intent.

                -Charlie

  30. Interesting but flawed paper by sloth+jr · · Score: 1

    This is clearly the question that corporate co-authors Nvidia and Logicblox hoped you would ask.

    The paper seems to represent more of an evolutionary rather than revolutionary approach, but suffers from some unfortunate hand-waving, particularly in their attempt to negate the real cost of memory->PCIe transfers (to their credit, at least they call out that latency), their unwillingness to perform comparisons on like-to-like base hardware, and their rather odd choice of front-end environment. Coupled with their odd price-performance metric, I suspect that Nvidia marketing got way up in Gatech's business on this. My suspicion is that there are real use cases where SIMD processing is going to substantially speedup relational database performance on easily partitioned datasets, but as more vectorization effort is placed on main CPU, the advantages of kicking off to coprocessor will eventually go the way of the 387.

  31. Re:Use SQL Server by Maow · · Score: 1

    Don't use open source db. Use SQL Server for security and speed.

    I agree, simply because I'm paid 50 cents to post this.

    How much were you paid?

  32. ARM64 in the data centre? by ChunderDownunder · · Score: 1

    Typical reponses above:
    (a) DB operations aren't CPU intensive
    (b) Servers don't come with dedicated graphics cards of any note
    (c) Loading each server with a AMD or Nvidia card would increase power usage

    So in summary, certain operations may benefit using GPUs but there's not a cost-effective solution to warrant such experimentation.

    I'd be surprised ARM if haven't sponsored cloud research into OpenCL on the Mali GPUs.

  33. Older doesn't mean one has to be mellower by Taco+Cowboy · · Score: 2

    I don't do much of this sort of thing anymore but there was a time when I tried to look inside every file on my computer, telnet to every host available just to learn everything I could about this wonderful new tool that had come into my grasp. I sometimes miss those days and that guy, but now I tire easily and kind of just want everything to work.

    I do feel what you are feeling.

    As we get older we get more easily tired. But that doesn't mean I will rest more just because I get tired.

    On the contrary - I push myself harder simply because I get more easily tired.

    Only by doing so I get things to even out - maybe I am not as fast and as sharp, in both physical sense and in mental state, but as I push myself harder, I will do more in the same 24 hours allocated to me every single day.

    Why should I let the young uns having all the fun ?

    Why should I let my scopes be idle just because I tell myself "oh, I'm tired now, I can test that thing tomorrow" ?

    If I need to find out something, I don't waste time debating with myself whether I should do that thing or not - I just go ahead and do it.

    That's how I live my life, anyway.

    --
    Muchas Gracias, Señor Edward Snowden !
  34. AlenkaDB by antonmks · · Score: 1

    Just wanted to mention AlenkaDB :
    https://github.com/antonmks/Alenka
    It is open source and it runs pretty fast on datasets that do not fit into gpu memory - check the 1TB TPC-H benchmarks.
    Database users are pretty conservative, so I haven't seen many people using it so far, aside from some folks at U.S. DoD.

  35. Wrong question by Coeurderoy · · Score: 1

    The right question would be : when will a major Open Source DB be released with a GPU accelerator...

    The issue is that it is quite hard to do, and it's harder to do it in a way that is sufficiently generic and elegant to deserve public dissemination.

  36. GPUs are proprietary by FithisUX · · Score: 1

    this is the reason. We need a standard GPU access API and vendor independent. If the DBs need a GPU to speed up, please use Parallela or support OpenGraphics.

  37. Re:Nope by Blaskowicz · · Score: 1

    It IS consumer shit, but versions where you can enable ECC and the clock/voltage profiles are toned down. BTW the ECC is not available on midrange FirePro and Quadro, or on older generations.

  38. Re:real world databases are usually not pcu bound. by steviesteveo · · Score: 1

    But what if the benchmark is larger than the memory size of the GPU? I don't know the actual size, but I guess they use at least realistic amounts of data (larger than the memory of the GPU card), so that would prove your theory wrong!

    They didn't (1GB), he's right.

  39. Re:real world databases are usually not pcu bound. by StripedCow · · Score: 1

    (I stand corrected then. Thanks for looking it up.)

    --
    If Pandora's box is destined to be opened, *I* want to be the one to open it.