|
From: Emilio C. <er...@gm...> - 2013-07-23 18:18:20
|
Hi everyone, We're developing a new Valgrind tool called aprof, a performance profiler designed to help developers discover asymptotic performance bottlenecks in a program. The tool automatically generates, for each executed procedure, a 2D chart that relates performance to input size, yielding clues to the "big Oh" of the underlying algorithm. Charts that analyze the input workloads are also generated, among many others. The tool and a profile visualizer have been brewing for some time and we now have a first stable version. For the time being, we're keeping them at: https://code.google.com/p/aprof The ideas behind aprof are described in a PLDI 2012 paper: http://aprof.googlecode.com/files/pldi055-coppa.pdf (slides: http://aprof.googlecode.com/files/aprof-PLDI.pdf). The function tracing infrastructure is essentially based on Callgrind (many thanks to Joseph Weidendorfer for his invaluable help). Any comments/suggestions from you veterans would be greatly appreciated. Regards, Emilio |
|
From: Josef W. <Jos...@gm...> - 2013-07-24 09:39:14
|
Hi Emilio, Am 23.07.2013 20:18, schrieb Emilio Coppa: > We're developing a new Valgrind tool called aprof, a performance > profiler designed to help developers discover asymptotic performance > bottlenecks in a program. that's interesting. As I understand, your tool makes it possible to predict the runtime of function calls. I wonder if this could be used for scheduling decisions, e.g. if a function call is the body of an OpenMP for loop, to get better dynamic scheduling decisions for improved load balancing. Josef > The tool automatically generates, for each executed procedure, a 2D > chart that relates performance to input size, yielding clues to the > "big Oh" of the underlying algorithm. Charts that analyze the input > workloads are also generated, among many others. > > The tool and a profile visualizer have been brewing for some time and > we now have a first stable version. For the time being, we're keeping > them at: > > https://code.google.com/p/aprof > > The ideas behind aprof are described in a PLDI 2012 paper: > http://aprof.googlecode.com/files/pldi055-coppa.pdf (slides: > http://aprof.googlecode.com/files/aprof-PLDI.pdf). > > The function tracing infrastructure is essentially based on Callgrind > (many thanks to Joseph Weidendorfer for his invaluable help). > > Any comments/suggestions from you veterans would be greatly appreciated. > > Regards, > Emilio > > ------------------------------------------------------------------------------ > See everything from the browser to the database with AppDynamics > Get end-to-end visibility with application monitoring from AppDynamics > Isolate bottlenecks and diagnose root cause in seconds. > Start your free trial of AppDynamics Pro today! > http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk > _______________________________________________ > Valgrind-developers mailing list > Val...@li... > https://lists.sourceforge.net/lists/listinfo/valgrind-developers > |
|
From: Emilio C. <er...@gm...> - 2013-07-25 14:11:53
|
Hi Josef, Thanks for your feedback! As I understand, your tool makes it possible to predict the runtime > of function calls. I wonder if this could be used for scheduling > decisions, e.g. if a function call is the body of an OpenMP for loop, > to get better dynamic scheduling decisions for improved load balancing. > This is an interesting idea. One critical point in getting an actual runtime prediction using our profiles is that a scheduler would need to guess the size of the input given to a task in advance. A possible approach may be to allow programmers to provide hints to the scheduler by specifying the expected input size of a task, but there may be more clever ways of speculating about workloads. Definitely worth investigating. Emilio |