Live data from Hacker News

1.1B Taxi Rides on Kdb+/q and 4 Xeon Phi CPUs

tech.marksblogg.com

11–20 of 104 posts

Re: 1.1B Taxi Rides on Kdb+/q and 4 Xeon Phi CPUs

#11
I don't see how these results provide much useful information in terms of being able to say x is faster than y.

The hardware doesn't seem consistent across different benchmarks. He says it's fast for a "cpu system", but for practical purposes Phi competes more with GPGPUs.

Would this be just as fast with one redis system with 512GB ram? I don't know too many apples to oranges here.

Re: 1.1B Taxi Rides on Kdb+/q and 4 Xeon Phi CPUs

#12

I don't see how these results provide much useful information in terms of being able to say x is faster than y. The hardware doesn't seem consistent across different benchmarks. He says it's fast for a "cpu system", but for practical purposes Phi competes more with GPGPUs. Would this be just as fast with one redis system with 512GB ram? I don't know too many apples to oranges here.

A single machine doesn't have the required memory bandwidth to do this in the same time.

Re: 1.1B Taxi Rides on Kdb+/q and 4 Xeon Phi CPUs

#13

I don't see how these results provide much useful information in terms of being able to say x is faster than y. The hardware doesn't seem consistent across different benchmarks. He says it's fast for a "cpu system", but for practical purposes Phi competes more with GPGPUs. Would this be just as fast with one redis system with 512GB ram? I don't know too many apples to oranges here.

The author isn't testing just the software but combinations of various software/hardware systems, including for example PostgreSQL on an i5 CPU, 16GB RAM and 850 SSD hardware: http://tech.marksblogg.com/billion-nyc-taxi-rides-postgresql...

Re: 1.1B Taxi Rides on Kdb+/q and 4 Xeon Phi CPUs

#14
post #3

Under a second to do an avg across 1.1 billion rows spread over four machines. That's pretty amazing.

For a columnar database, that's a continuous chunk of memory. Assuming 32bit q defaults to 32bit int, 1.1 billion integers across four machines means each 64-core (with 4 threads/core) KNL chip is averaging over 275M elements of int array, or 1.1M 32bit int operations per thread. Now think again whether that's amazing or not.

Re: 1.1B Taxi Rides on Kdb+/q and 4 Xeon Phi CPUs

#15
post #3

Under a second to do an avg across 1.1 billion rows spread over four machines. That's pretty amazing.

is it ? those things are trivial enough to be entirely bandwidth limited. total_amount is 4 byte, passenger_count is 1 and those are tightly packed in a column layout. streaming through that in 150ms is almost within the reach of a single normal chip with dual channel DDR3 ram.

Of course, not quite, and that's discounting the (small) sync overhead but still, no need to shell out 4 big servers, overpriced phi chips and fancy wide bus memory.

Re: 1.1B Taxi Rides on Kdb+/q and 4 Xeon Phi CPUs

#16
post #13

I don't see how these results provide much useful information in terms of being able to say x is faster than y. The hardware doesn't seem consistent across different benchmarks. He says it's fast for a "cpu system", but for practical purposes Phi competes more with GPGPUs. Would this be just as fast with one redis system with 512GB ram? I don't know too many apples to oranges here.

The author isn't testing just the software but combinations of various software/hardware systems, including for example PostgreSQL on an i5 CPU, 16GB RAM and 850 SSD hardware: http://tech.marksblogg.com/billion-nyc-taxi-rides-postgresql...

Great, and btw I think it's cool and I enjoyed reading it.

But what useful conclusions can be drawn from it?

Re: 1.1B Taxi Rides on Kdb+/q and 4 Xeon Phi CPUs

#17
In my experience, kdb+'s k and q (which is broadly speaking a legibility wrapper around k, which again broadly speaking is APL without unicode) are phenomenally fast for dense time series datasets. Though they can struggle (relatively, still pretty fast) with sparse data that's not really what they are built for. They were built for high-performance trading systems, and trading data is dense.

If you like writing dense, clever regexs (which I do) then you'll love k & q. The amount that you can get done with just a few characters is unparalleled.

Which leads to, IMHO, their main drawback: k/q (like clever regexes) are often write-only code. Picking up another's codebase or even your own after some time has passed can be very hard/impossible because of how mindbendingly dense with logic the code it. Even if they were the best choice for a given domain, I'd try to steer clear of using them for anything other then exploratory work that doesn't need to be maintained.

Re: 1.1B Taxi Rides on Kdb+/q and 4 Xeon Phi CPUs

#18
post #13

Earlier quoted context omitted.

The author isn't testing just the software but combinations of various software/hardware systems, including for example PostgreSQL on an i5 CPU, 16GB RAM and 850 SSD hardware: http://tech.marksblogg.com/billion-nyc-taxi-rides-postgresql...

Great, and btw I think it's cool and I enjoyed reading it. But what useful conclusions can be drawn from it?

At least that Xeon Phi is a great piece of engineering! :)

Re: 1.1B Taxi Rides on Kdb+/q and 4 Xeon Phi CPUs

#19
This was a good idea for a test. I'll definitely check out the author's other stuff. Commenting briefly on cost: while the article mentions the free 32 bit version early on, the actual benchmarks were done using the commercial version. I've had the impression the comercial version was cost prohibitive for us poor folks. For those interested in experimenting with Xeon Phi though, it looks like you can get started for ~$5k: http://dap.xeonphi.com/

Re: 1.1B Taxi Rides on Kdb+/q and 4 Xeon Phi CPUs

#20
post #6

How does Phi's MCDRAM compare to GDDR5 (wrt throughput)?

According to wikipedia, the fastest GDDR5 can do 256 Gbit per chip[0]. I don't know how many chips are typically used. MCDRAM in the article does 400 GB/s, or 3,200 Gb/s. That would require 12.5 of those GDDR5 chips, assuming they scale linearly.

[0]: https://en.wikipedia.org/wiki/GDDR5_SDRAM#Commercial_impleme...

Post reply on HN