News for hackers. Stuff that matters.
Re:Metaprogramming Python For Big Data by vtuulos on Thursday December 12, 2013 @04:19AM (#6893584)
Author here: i just checked this morning - we have 100B+ rows in our deliroll matrices, hosted on a single machine.

I'm happy to answer any questions.

Re:Metaprogramming Python For Big Data by vtuulos on Thursday December 12, 2013 @10:26AM (#6894882)
Btw, if you would be interested in hacking Deliroll and other related things, feel free to contact me - my email is on the slides. We are hiring.
Re:Metaprogramming Python For Big Data by storrgie on Thursday December 12, 2013 @08:19AM (#6894229)
What did you use to make these slides?
Re:Metaprogramming Python For Big Data by vtuulos on Thursday December 12, 2013 @08:49AM (#6894349)
Re:Metaprogramming Python For Big Data by nly on Thursday December 12, 2013 @08:49AM (#6894351)
What data format are you using for your sparse matrices, and what's the INSERT performance like?
Re:Metaprogramming Python For Big Data by vtuulos on Thursday December 12, 2013 @10:12AM (#6894808)
Matrices are read-only. The set of matrices is updated once a day to include the latest data.

The data format is a collection of pre-aggregated row and column vectors, encoded with variable length integers and run-length encoding. I should give a separate presentation about this.

Re:Metaprogramming Python For Big Data by fixxer on Thursday December 12, 2013 @01:45PM (#6896209)
I should give a separate presentation about this.

Please do. Also, any change of releasing this?

Re:Metaprogramming Python For Big Data by Fede_V on Thursday December 12, 2013 @04:40AM (#6893634)
Awesome to see tech like numba being used like this. Are you guys going to write a more 'techy' version of how you accomplish all of this?
Re:Metaprogramming Python For Big Data by vtuulos on Thursday December 12, 2013 @04:46AM (#6893653)
Yes, definitely. We might be able to open-source some parts of the system eventually as well.
Re:Metaprogramming Python For Big Data by Fede_V on Thursday December 12, 2013 @06:50AM (#6893969)
Excellent. For sparse storage, do you use Scipy Sparse, or you have your own custom built solution?

I know continuum was working on a version of memmapped numpy (blaze, iirc) arrays which looked really interesting.

Re:Metaprogramming Python For Big Data by vtuulos on Thursday December 12, 2013 @08:54AM (#6894371)
I started with Scipy Sparse. I ditched it for a custom solution so I could support variable-length integers, run-length encoding etc.
Re:Metaprogramming Python For Big Data by pwang on Thursday December 12, 2013 @10:41AM (#6894983)
Good work Ville, let me know when you post those slides/writeup. :-)
Re:Metaprogramming Python For Big Data by vtuulos on Thursday December 12, 2013 @11:29AM (#6895289)
Thanks Peter! Let me know if you happen to visit SF. It would be nice to catch up.
Re:Metaprogramming Python For Big Data by 3pt14159 on Thursday December 12, 2013 @03:42AM (#6893479)
This is next level. I've been doing this type of stuff manually for years I don't know why it never occurred to me to build out the general solution.
Re:Metaprogramming Python For Big Data by eliteraspberrie on Wednesday December 11, 2013 @11:08PM (#6892741)
Numba is impressive! If you use NumPy regularly, check it out: http://numba.pydata.org/
Re:Metaprogramming Python For Big Data by parrotdoxical on Thursday December 12, 2013 @09:37AM (#6894601)
This is awesome. While it's great how performant the approach is, I also really dig how elegant the whole solution is -- using Postgres FDW with Numba is very pragmatic and clean, while at the same time potentially extensible to GPGPU. I might try and give this a go for some DSP stuff at some point.
Re:Metaprogramming Python For Big Data by mathattack on Wednesday December 11, 2013 @09:58PM (#6892554)
Thanks for sharing. It's interesting when people walk through their though process.
Re:Metaprogramming Python For Big Data by wedesoft on Thursday December 12, 2013 @08:37AM (#6894294)
I did something similar with Ruby. I used GCC and on-the-fly linking for JIT compilation: http://www.wedesoft.de/hornetseye-api/
Re:Metaprogramming Python For Big Data by virmundi on Thursday December 12, 2013 @08:37AM (#6894295)
It looks really neat. Isn't 660 GB not that much really? I grant that the slides say they've used an optimized binary for the storage, but how does this compare to pandas?
Re:Metaprogramming Python For Big Data by vtuulos on Thursday December 12, 2013 @09:04AM (#6894419)
660GB was just a small benchmark. The real thing uses more than a petabyte of raw data.

Pandas uses NumPy internally. You could use Deliroll as a replacement for NumPy in Pandas to get a nice interactive environment for amounts of data that can't be easily handled with plain NumPy.

Re:Metaprogramming Python For Big Data by virmundi on Thursday December 12, 2013 @09:08AM (#6894445)
This is interesting. My current project is a fraud detection system. We currently leverage Cascading/Hadoop. But I wanted to make sure the system is not Hadoop-centric. So I made a point of having the system be language agnostic. It looks like there might be a fit for this tool.

I passed the slides along to my team to see what they think. If they just impress upon the team that we need to store something other than just 0x0A delimited text files, I'll consider it a win.

Re:Metaprogramming Python For Big Data by CraigJPerry on Thursday December 12, 2013 @07:12AM (#6894035)
So is numba more like a Cython replacement? I know nothing about it, just assumed it was a NumPy replacement?
Re:Metaprogramming Python For Big Data by pwang on Thursday December 12, 2013 @10:40AM (#6894980)
You can think of it like that. It's a Python -> Machine Code compiler based on LLVM, and it uses Numpy types (and Blaze types) to do type inference on numerical and data transformation functions.

http://numba.pydata.org/

Re:Metaprogramming Python For Big Data by doug1001 on Friday December 13, 2013 @03:49AM (#6899624)
really impressive work; i like how you guys (apparently) began with a blank page, and set aside at least a few stale assumptions that most consider inviolate principles in DW design--eg, denormalization, star/snowflake schema.
Re:Metaprogramming Python For Big Data by meowface on Thursday December 12, 2013 @03:09AM (#6893409)
Very cool. Impressive that they got that kind of efficiency with Python.
Re:Metaprogramming Python For Big Data by agumonkey on Thursday December 12, 2013 @06:56AM (#6893987)
Beautiful work. Also, I read lisp on the last two slides.
Re:Metaprogramming Python For Big Data by cbsmith on Thursday December 12, 2013 @01:46AM (#6893151)
Or just use FastBit-Python directly...