{"id":759,"date":"2013-11-01T14:57:04","date_gmt":"2013-11-01T13:57:04","guid":{"rendered":"http:\/\/trigonakis.com\/blog\/?p=759"},"modified":"2013-11-03T20:46:10","modified_gmt":"2013-11-03T19:46:10","slug":"everything-you-always-wanted-to-know-about-synchronization-but-were-afraid-to-ask","status":"publish","type":"post","link":"http:\/\/trigonakis.com\/blog\/2013\/11\/01\/everything-you-always-wanted-to-know-about-synchronization-but-were-afraid-to-ask\/","title":{"rendered":"Everything You Always Wanted to Know about Synchronization but Were Afraid to Ask"},"content":{"rendered":"<p>It&#8217;s just one day before traveling to the US to present &#8220;Everything You Always Wanted to Know about Synchronization but Were Afraid to Ask&#8221; in the the 24th ACM Symposium on Operating Systems Principles (SOSP). I am really glad that I will have the opportunity to share the knowledge we collected in over a year of hard work. You can get a copy of the paper <a href=\"http:\/\/dl.acm.org\/citation.cfm?id=2517349.2522714&amp;coll=DL&amp;dl=GUIDE\">here<\/a>.<\/p>\n<p>This publication is about understanding the low-level details of the hardware (e.g., the cache-coherence protocol) and how they affect synchronization (and sharing of data in general) in software. If you want to better understand your hardware, to optimize your system\/application, or to understand why something scales or does not scale, I believe you will be interested in reading the paper.<\/p>\n<p>We also published the software we developed to perform this study as the SSYNC synchronization suite (SSYNC stands for <strong>S<\/strong>imple <strong>Synch<\/strong>ronization).\u00a0If the information in the paper is not sufficient for your needs, or if you have a hardware platform that is not very similar with the ones we used in the paper, then you can use the tools and libraries of SSYNC to evaluate your own platform.<\/p>\n<p>SSYNC is available at\u00a0<a title=\"http:\/\/lpd.epfl.ch\/site\/ssync\" href=\"http:\/\/lpd.epfl.ch\/site\/ssync\" target=\"_blank\">http:\/\/lpd.epfl.ch\/site\/ssync<\/a>\u00a0and contains:<\/p>\n<ul>\n<li><strong>ccbench<\/strong>: a tool for measuring the latencies of the hardware cache-coherence protocol<\/li>\n<li><strong>libslock<\/strong>: a library with cross-platform implementations of various locking algorithms<\/li>\n<li><strong>libssmp<\/strong>: a message passing library optimized for x86, SPARC, and Tilera platforms<\/li>\n<li><strong>TM2C<\/strong>: the first software\u00a0<strong>T<\/strong>ransactional\u00a0<strong>M<\/strong>emory for\u00a0<strong>M<\/strong>any-<strong>C<\/strong>ores<\/li>\n<\/ul>\n<p>I hope you will enjoy reading the paper \ud83d\ude42<\/p>\n","protected":false},"excerpt":{"rendered":"<p>It&#8217;s just one day before traveling to the US to present &#8220;Everything You Always Wanted to Know about Synchronization but Were Afraid to Ask&#8221; in the the 24th ACM Symposium on Operating Systems Principles (SOSP). I am really glad that I will have the opportunity to share the knowledge we collected in over a year [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":760,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false}}},"categories":[14],"tags":[12,211,13,210,209],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"http:\/\/trigonakis.com\/blog\/wp-content\/uploads\/2013\/11\/tagcloud2.png","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p1ouW6-cf","_links":{"self":[{"href":"http:\/\/trigonakis.com\/blog\/wp-json\/wp\/v2\/posts\/759"}],"collection":[{"href":"http:\/\/trigonakis.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/trigonakis.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/trigonakis.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/trigonakis.com\/blog\/wp-json\/wp\/v2\/comments?post=759"}],"version-history":[{"count":12,"href":"http:\/\/trigonakis.com\/blog\/wp-json\/wp\/v2\/posts\/759\/revisions"}],"predecessor-version":[{"id":772,"href":"http:\/\/trigonakis.com\/blog\/wp-json\/wp\/v2\/posts\/759\/revisions\/772"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/trigonakis.com\/blog\/wp-json\/wp\/v2\/media\/760"}],"wp:attachment":[{"href":"http:\/\/trigonakis.com\/blog\/wp-json\/wp\/v2\/media?parent=759"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/trigonakis.com\/blog\/wp-json\/wp\/v2\/categories?post=759"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/trigonakis.com\/blog\/wp-json\/wp\/v2\/tags?post=759"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}