3 ms·
Very cool. We had a similar experience when implementing the Simplex method for linear optimization, except we evaluated PyPy versus Julia instead of Cython. It
by idunning 13y ago
Very cool. We had a similar experience when implementing the Simplex method for linear optimization, except we evaluated PyPy versus Julia instead of Cython. Its similar in that it benchmarks "just" the language, not BLAS, which is common pitfall I see when people compare the two. I guess at this point, a year or so later, it isn't surprising to me anymore that Julia is as fast as it is for these sorts of computational tasks - its been demonstrated pretty comprehensively at this point.
Slides: http://www.mit.edu/~mlubin/informs2013.pdf http://www.mit.edu/~mlubin/informs2013.pdf
Paper: http://arxiv.org/abs/1312.1431 http://arxiv.org/abs/1312.1431
- lqdc13 13y agoI am always confused by this. I think the primary reason for picking a language is how simple it is to write something in it. So if I can call scipy and get the result easily in one line, I would do that. When implementing new algorithms, it will indeed be easier with Julia. Pypy unfortunately cannot be used by most people who would benefit a lot from it because numpy/scipy isn't currently supported. I am curious if you tried running your pypy code with Numba.
- EpicEng 13y agoDepends on your requirements. In many applications, performance matters a whole lot more than "how much can I accomplish in one line of code."
- lqdc13 13y agoIn those applications, everyone would be writing everything in C then and such benchmarks would be useless.
- pjmlp 13y agoWhy spend time increasing the amount of unsafe code in the world, if comparable speeds can be achieved in better designed languages?!
- EpicEng 13y agoThat's certainly not true. Take the matter at hand; if I have performance requirements that can be met using Julia, but not by using Python, I'll go with Julia over C because ease of use also matters, though it's not always the driving requirement.
- tenfingers 13y agoActually, performance evaluation is one of my first considerations for picking a language if I already know what kind of operating environment/performance I need to achieve. I would argue that my personal choice is 1) familiarity with the language (ie, pick the most comfortable language for the task at hand) 2) performance required