X-Git-Url: http://pere.pagekite.me/gitweb/homepage.git/blobdiff_plain/c8233dad2dd7e42afdd9c0cd89d53f5c4af25f58..c377f7290d89b193518b495fc8e9e639ebf3e849:/blog/index.rss diff --git a/blog/index.rss b/blog/index.rss index a9695469c5..c0c91c80ff 100644 --- a/blog/index.rss +++ b/blog/index.rss @@ -6,6 +6,46 @@ http://people.skolelinux.org/pere/blog/ + + Coz profiler for multi-threaded software is now in Debian + http://people.skolelinux.org/pere/blog/Coz_profiler_for_multi_threaded_software_is_now_in_Debian.html + http://people.skolelinux.org/pere/blog/Coz_profiler_for_multi_threaded_software_is_now_in_Debian.html + Sun, 13 Nov 2016 12:30:00 +0100 + <p><a href="http://coz-profiler.org/">The Coz profiler</a>, a nice +profiler able to run benchmarking experiments on the instrumented +multi-threaded program, finally +<a href="https://tracker.debian.org/pkg/coz-profiler">made it into +Debian unstable yesterday</A>. Lluís Vilanova and I have spent many +months since +<a href="http://people.skolelinux.org/pere/blog/Coz_can_help_you_find_bottlenecks_in_multi_threaded_software___nice_free_software.html">I +blogged about the coz tool</a> in August working with upstream to make +it suitable for Debian. There are still issues with clang +compatibility, inline assembly only working x86 and minimized +JavaScript libraries.</p> + +<p>To test it, install 'coz-profiler' using apt and run it like this:</p> + +<p><blockquote> +<tt>coz run --- /path/to/binary-with-debug-info</tt> +</blockquote></p> + +<p>This will produce a profile.coz file in the current working +directory with the profiling information. This is then given to a +JavaScript application provided in the package and available from +<a href="http://plasma-umass.github.io/coz/">a project web page</a>. +To start the local copy, invoke it in a browser like this:</p> + +<p><blockquote> +<tt>sensible-browser /usr/share/coz-profiler/viewer/index.htm</tt> +</blockquote></p> + +<p>See the project home page and the +<a href="https://www.usenix.org/publications/login/summer2016/curtsinger">USENIX +;login: article on Coz</a> for more information on how it is +working.</p> + + + How to talk with your loved ones in private http://people.skolelinux.org/pere/blog/How_to_talk_with_your_loved_ones_in_private.html @@ -895,75 +935,5 @@ electronic form.</p> - - 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> - - -