X-Git-Url: http://pere.pagekite.me/gitweb/homepage.git/blobdiff_plain/878cbf60f5bc3d51a314370e4e0464e1d8a19763..67c72508423527be4030a4f47f13f22b2fa5537e:/blog/index.rss diff --git a/blog/index.rss b/blog/index.rss index 4cd9a718d2..a28f100dc5 100644 --- a/blog/index.rss +++ b/blog/index.rss @@ -6,6 +6,76 @@ http://people.skolelinux.org/pere/blog/ + + Coz can help you find bottlenecks in multi-threaded software - nice free software + http://people.skolelinux.org/pere/blog/Coz_can_help_you_find_bottlenecks_in_multi_threaded_software___nice_free_software.html + http://people.skolelinux.org/pere/blog/Coz_can_help_you_find_bottlenecks_in_multi_threaded_software___nice_free_software.html + Thu, 11 Aug 2016 12:00:00 +0200 + <p>This summer, I read a great article +"<a href="https://www.usenix.org/publications/login/summer2016/curtsinger">coz: +This Is the Profiler You're Looking For</a>" in USENIX ;login: about +how to profile multi-threaded programs. It presented a system for +profiling software by running experiences in the running program, +testing how run time performance is affected by "speeding up" parts of +the code to various degrees compared to a normal run. It does this by +slowing down parallel threads while the "faster up" code is running +and measure how this affect processing time. The processing time is +measured using probes inserted into the code, either using progress +counters (COZ_PROGRESS) or as latency meters (COZ_BEGIN/COZ_END). It +can also measure unmodified code by measuring complete the program +runtime and running the program several times instead.</p> + +<p>The project and presentation was so inspiring that I would like to +get the system into Debian. I +<a href="https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=830708">created +a WNPP request for it</a> and contacted upstream to try to make the +system ready for Debian by sending patches. The build process need to +be changed a bit to avoid running 'git clone' to get dependencies, and +to include the JavaScript web page used to visualize the collected +profiling information included in the source package. +But I expect that should work out fairly soon.</p> + +<p>The way the system work is fairly simple. To run an coz experiment +on a binary with debug symbols available, start the program like this: + +<p><blockquote><pre> +coz run --- program-to-run +</pre></blockquote></p> + +<p>This will create a text file profile.coz with the instrumentation +information. To show what part of the code affect the performance +most, use a web browser and either point it to +<a href="http://plasma-umass.github.io/coz/">http://plasma-umass.github.io/coz/</a> +or use the copy from git (in the gh-pages branch). Check out this web +site to have a look at several example profiling runs and get an idea what the end result from the profile runs look like. To make the +profiling more useful you include &lt;coz.h&gt; and insert the +COZ_PROGRESS or COZ_BEGIN and COZ_END at appropriate places in the +code, rebuild and run the profiler. This allow coz to do more +targeted experiments.</p> + +<p>A video published by ACM +<a href="https://www.youtube.com/watch?v=jE0V-p1odPg">presenting the +Coz profiler</a> is available from Youtube. There is also a paper +from the 25th Symposium on Operating Systems Principles available +titled +<a href="https://www.usenix.org/conference/atc16/technical-sessions/presentation/curtsinger">Coz: +finding code that counts with causal profiling</a>.</p> + +<p><a href="https://github.com/plasma-umass/coz">The source code</a> +for Coz is available from github. It will only build with clang +because it uses a +<a href="https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55606">C++ +feature missing in GCC</a>, but I've submitted +<a href="https://github.com/plasma-umass/coz/pull/67">a patch to solve +it</a> and hope it will be included in the upstream source soon.</p> + +<p>Please get in touch if you, like me, would like to see this piece +of software in Debian. I would very much like some help with the +packaging effort, as I lack the in depth knowledge on how to package +C++ libraries.</p> + + + Sales number for the Free Culture translation, first half of 2016 http://people.skolelinux.org/pere/blog/Sales_number_for_the_Free_Culture_translation__first_half_of_2016.html @@ -579,62 +649,5 @@ blog posts about isenkram</a> to learn how to do that.</p> - - Discharge rate estimate in new battery statistics collector for Debian - http://people.skolelinux.org/pere/blog/Discharge_rate_estimate_in_new_battery_statistics_collector_for_Debian.html - http://people.skolelinux.org/pere/blog/Discharge_rate_estimate_in_new_battery_statistics_collector_for_Debian.html - Mon, 23 May 2016 09:35:00 +0200 - <p>Yesterday I updated the -<a href="https://tracker.debian.org/pkg/battery-stats">battery-stats -package in Debian</a> with a few patches sent to me by skilled and -enterprising users. There were some nice user and visible changes. -First of all, both desktop menu entries now work. A design flaw in -one of the script made the history graph fail to show up (its PNG was -dumped in ~/.xsession-errors) if no controlling TTY was available. -The script worked when called from the command line, but not when -called from the desktop menu. I changed this to look for a DISPLAY -variable or a TTY before deciding where to draw the graph, and now the -graph window pop up as expected.</p> - -<p>The next new feature is a discharge rate estimator in one of the -graphs (the one showing the last few hours). New is also the user of -colours showing charging in blue and discharge in red. The percentages -of this graph is relative to last full charge, not battery design -capacity.</p> - -<p align="center"><img src="http://people.skolelinux.org/pere/blog/images/2016-05-23-battery-stats-rate.png"/></p> - -<p>The other graph show the entire history of the collected battery -statistics, comparing it to the design capacity of the battery to -visualise how the battery life time get shorter over time. The red -line in this graph is what the previous graph considers 100 percent: - -<p align="center"><img src="http://people.skolelinux.org/pere/blog/images/2016-05-23-battery-stats-history.png"/></p> - -<p>In this graph you can see that I only charge the battery to 80 -percent of last full capacity, and how the capacity of the battery is -shrinking. :(</p> - -<p>The last new feature is in the collector, which now will handle -more hardware models. On some hardware, Linux power supply -information is stored in /sys/class/power_supply/ACAD/, while the -collector previously only looked in /sys/class/power_supply/AC/. Now -both are checked to figure if there is power connected to the -machine.</p> - -<p>If you are interested in how your laptop battery is doing, please -check out the -<a href="https://tracker.debian.org/pkg/battery-stats">battery-stats</a> -in Debian unstable, or rebuild it on Jessie to get it working on -Debian stable. :) The upstream source is available from <a -href="https://github.com/petterreinholdtsen/battery-stats">github</a>. -Patches are very welcome.</p> - -<p>As usual, if you use Bitcoin and want to show your support of my -activities, please send Bitcoin donations to my address -<b><a href="bitcoin:15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b">15oWEoG9dUPovwmUL9KWAnYRtNJEkP1u1b</a></b>.</p> - - -