On Fri, Dec 30, 2011 at 5:45 AM, <jason-sage@creativetrax.com> wrote:
On 12/29/11 10:37 PM, Jaidev Deshpande wrote:
Hi!
Along with test coverage, have any of you considered any systematic monitoring of NumPy performance?
I'm mildly obsessed with performance and benchmarking of NumPy. I used to use a lot of MATLAB until a year back and I tend to compare Python performance with it all the time. I generally don't feel happy until I'm convinced that I've extracted the last bit of speed out of my Python code.
I think the generalization of this idea is more or less equivalent to performance benchmarking. Of course, I know there's a lot more than 'MATLAB vs Python' to it. I'd be more than happy to be involved. GSoC or otherwise.
Where do I start?
We've recently had a discussion about more intelligent timeit commands and timing objects in Python/Sage. People here might find the discussion interesting, and it might also be interesting to collaborate on code. The basic idea was a much smarter timeit command that uses more intelligent statistics and presents a much more comprehensive look at the timing information.
Here is the discussion: https://groups.google.com/forum/#!topic/sage-devel/8lq3twm9Olc
Here is our ticket tracking the issue: http://trac.sagemath.org/sage_trac/ticket/12168
Here are some examples of the analysis: http://sagenb.org/home/pub/3857/
Nice. It would be cool to have this available as a separate ipython magic command. For performance monitoring it's probably unnecessary, regular %timeit should be OK for that.
Performance monitoring does require quite a bit of infrastructure (like Wes' vbench project) though, which could be a good (GSOC) project. There's other VCS's to support, maybe a buildbot plugin, many options there. Ralf