<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;AkEAQ307fyp7ImA9WhBUEE4.&quot;"><id>tag:blogger.com,1999:blog-9016598576148758656</id><updated>2013-04-26T21:57:22.307-07:00</updated><category term="WaitForMultipleObjects" /><category term="coroutine" /><category term="futex" /><category term="ThreadSanitizer" /><category term="relacy" /><category term="SignalObjectAndWait" /><category term="AddressSanitizer" /><category term="fiber" /><category term="Google" /><title>1024cores</title><subtitle type="html">This is an accompanying blog for the www.1024cores.net site about lockfree/waitfree synchronization algorithms and data structures, scalability-oriented architecture, multicore design patterns, high-performance computing, threading technologies and libraries, message-passing systems and related topics.</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://blog.1024cores.net/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://blog.1024cores.net/" /><author><name>Dmitry Vyukov</name><uri>http://www.blogger.com/profile/10137998824493472445</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_RFsQM3PhHjY/Ssc4aREXG6I/AAAAAAAAAGE/NXwPsETLTk8/S220/ninja.jpeg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>20</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/1024cores" /><feedburner:info uri="1024cores" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>1024cores</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2F1024cores" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2F1024cores" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2F1024cores" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/1024cores" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2F1024cores" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2F1024cores" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2F1024cores" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare href="http://www.plusmo.com/add?url=http%3A%2F%2Ffeeds.feedburner.com%2F1024cores" src="http://plusmo.com/res/graphics/fbplusmo.gif">Subscribe with Plusmo</feedburner:feedFlare><feedburner:feedFlare href="http://www.thefreedictionary.com/_/hp/AddRSS.aspx?http%3A%2F%2Ffeeds.feedburner.com%2F1024cores" src="http://img.tfd.com/hp/addToTheFreeDictionary.gif">Subscribe with The Free Dictionary</feedburner:feedFlare><feedburner:feedFlare href="http://www.bitty.com/manual/?contenttype=rssfeed&amp;contentvalue=http%3A%2F%2Ffeeds.feedburner.com%2F1024cores" src="http://www.bitty.com/img/bittychicklet_91x17.gif">Subscribe with Bitty Browser</feedburner:feedFlare><feedburner:feedFlare href="http://www.live.com/?add=http%3A%2F%2Ffeeds.feedburner.com%2F1024cores" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><feedburner:feedFlare href="http://mix.excite.eu/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2F1024cores" src="http://image.excite.co.uk/mix/addtomix.gif">Subscribe with Excite MIX</feedburner:feedFlare><feedburner:feedFlare href="http://www.webwag.com/wwgthis.php?url=http%3A%2F%2Ffeeds.feedburner.com%2F1024cores" src="http://www.webwag.com/images/wwgthis.gif">Subscribe with Webwag</feedburner:feedFlare><feedburner:feedFlare href="http://www.podcastready.com/oneclick_bookmark.php?url=http%3A%2F%2Ffeeds.feedburner.com%2F1024cores" src="http://www.podcastready.com/images/podcastready_button.gif">Subscribe with Podcast Ready</feedburner:feedFlare><feedburner:feedFlare href="http://www.wikio.com/subscribe?url=http%3A%2F%2Ffeeds.feedburner.com%2F1024cores" src="http://www.wikio.com/shared/img/add2wikio.gif">Subscribe with Wikio</feedburner:feedFlare><feedburner:feedFlare href="http://www.dailyrotation.com/index.php?feed=http%3A%2F%2Ffeeds.feedburner.com%2F1024cores" src="http://www.dailyrotation.com/rss-dr2.gif">Subscribe with Daily Rotation</feedburner:feedFlare><entry gd:etag="W/&quot;DEEHR3g5eCp7ImA9WhBSFUk.&quot;"><id>tag:blogger.com,1999:blog-9016598576148758656.post-370808653614044208</id><published>2013-02-22T07:23:00.001-08:00</published><updated>2013-02-22T07:23:56.620-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2013-02-22T07:23:56.620-08:00</app:edited><title>Go, data races and combining</title><content type="html">Hi,&lt;br /&gt;
&lt;br /&gt;
I continue my work on speeding up &lt;a href="http://golang.org/" target="_blank"&gt;Go language&lt;/a&gt;. The next major release will feature faster parallel garbage collector, goroutine blocking profiler (enabled with -blockprofile flag) and a lot of other&amp;nbsp;&lt;a href="https://groups.google.com/forum/?fromgroups=#!topic/golang-nuts/FxELIOik2f4" target="_blank"&gt;yummy&amp;nbsp;features&lt;/a&gt;. Last but not least --&amp;nbsp;&lt;a href="http://tip.golang.org/doc/articles/race_detector.html" target="_blank"&gt;builtin data race detector&lt;/a&gt;. Yay! Just add -race flag.&lt;br /&gt;
&lt;br /&gt;
The race detector is based on our &lt;a href="https://code.google.com/p/thread-sanitizer/" target="_blank"&gt;ThreadSanitizer&lt;/a&gt; technology, which is initially developed for C/C++. Now that both C and C++ standards have multithreading support, data races officially banned as "undefined behavior". You can read my essay on data race &lt;a href="http://software.intel.com/en-us/blogs/2013/01/06/benign-data-races-what-could-possibly-go-wrong" target="_blank"&gt;here&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
If you are subscribed to this blog, you are probably interested in synchronization and concurrency stuff. It's not that I am writing a lot lately, but here is at least something new -- &lt;a href="http://software.intel.com/en-us/blogs/2013/02/22/combineraggregator-synchronization-primitive" target="_blank"&gt;Combiner/Aggregator Synchronization Primitive&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;
Best&lt;div class="blogger-post-footer"&gt;&lt;a href="http://www.1024cores.net/" rel="tag" style="display:none"&gt;CodeProject&lt;/a&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=P1fNdmzECbA:cylDSDfHls4:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=P1fNdmzECbA:cylDSDfHls4:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=P1fNdmzECbA:cylDSDfHls4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=P1fNdmzECbA:cylDSDfHls4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=P1fNdmzECbA:cylDSDfHls4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=P1fNdmzECbA:cylDSDfHls4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=P1fNdmzECbA:cylDSDfHls4:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=P1fNdmzECbA:cylDSDfHls4:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=P1fNdmzECbA:cylDSDfHls4:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/1024cores/~4/P1fNdmzECbA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.1024cores.net/feeds/370808653614044208/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.1024cores.net/2013/02/go-data-races-and-combining.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9016598576148758656/posts/default/370808653614044208?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9016598576148758656/posts/default/370808653614044208?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/1024cores/~3/P1fNdmzECbA/go-data-races-and-combining.html" title="Go, data races and combining" /><author><name>Dmitry Vyukov</name><uri>http://www.blogger.com/profile/10137998824493472445</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_RFsQM3PhHjY/Ssc4aREXG6I/AAAAAAAAAGE/NXwPsETLTk8/S220/ninja.jpeg" /></author><thr:total>2</thr:total><feedburner:origLink>http://blog.1024cores.net/2013/02/go-data-races-and-combining.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0IBSHY7eyp7ImA9WhRRFE0.&quot;"><id>tag:blogger.com,1999:blog-9016598576148758656.post-6824919241633829906</id><published>2011-11-27T06:52:00.000-08:00</published><updated>2011-11-27T06:52:39.803-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-27T06:52:39.803-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="AddressSanitizer" /><title>AddressSanitizer, etc</title><content type="html">Hi,&lt;br /&gt;
&lt;br /&gt;
While Go becomes faster and more scalable (if you don't yet tried it, don't miss &lt;a href="http://tour.golang.org/" target="_blank"&gt;An Online Tour of Go&lt;/a&gt;), our team was working on the &lt;a href="http://code.google.com/p/address-sanitizer/" target="_blank"&gt;AddressSanitizer&lt;/a&gt;&amp;nbsp;(ASan) - a fast memory error detector for C/C++. The tool is really fast, a typical slowdown is only about 2x (while with, for example, Valgrind/Memcheck we observe slowdowns of 20-50x). And the speed is a real game changer here - we build Chromium with&amp;nbsp;ASan&amp;nbsp;and then do interactive browsing, or execute thousands of randomly generated tests and then do dichotomy reduction of crashing tests. It's interesting to observe how the tools spreads basically w/o our efforts, for example, here somebody writes how to &lt;a href="http://ehsanakhgari.org/blog/2011-06-30/building-firefox-address-sanitizer" target="_blank"&gt;build Firefox&lt;/a&gt; with&amp;nbsp;ASan, and here is an interesting story of &lt;a href="http://blogs.perl.org/users/rurban/2011/11/adventures-with-clang-and-asan.html" target="_blank"&gt;"ASanified"&amp;nbsp;Perl&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Here are some concurrency-related links:&lt;br /&gt;
&lt;a href="http://www.concurrencykit.org/index.html" target="_blank"&gt;Concurrency Kit&lt;/a&gt;&amp;nbsp;provides a plethora of concurrency primitives, safe memory reclamation mechanisms and lock-less and lock-free data structures designed to aid in the design and implementation of high performance concurrent systems.&lt;br /&gt;
&lt;a href="http://dzmitryhuba.blogspot.com/search/label/Concurrency" target="_blank"&gt;Chasing state of the art&lt;/a&gt;: Java synchronization algorithms.&lt;div&gt;Intel has updated and extended (AVX, NUMA) its&amp;nbsp;&lt;a href="http://software.intel.com/en-us/articles/intel-guide-for-developing-multithreaded-applications/" target="_blank"&gt;Guide for Developing Multithreaded Applications&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://www.1024cores.net/" rel="tag" style="display:none"&gt;CodeProject&lt;/a&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=jTKz_9J1icY:o5EKz4dGi8Y:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=jTKz_9J1icY:o5EKz4dGi8Y:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=jTKz_9J1icY:o5EKz4dGi8Y:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=jTKz_9J1icY:o5EKz4dGi8Y:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=jTKz_9J1icY:o5EKz4dGi8Y:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=jTKz_9J1icY:o5EKz4dGi8Y:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=jTKz_9J1icY:o5EKz4dGi8Y:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=jTKz_9J1icY:o5EKz4dGi8Y:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=jTKz_9J1icY:o5EKz4dGi8Y:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/1024cores/~4/jTKz_9J1icY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.1024cores.net/feeds/6824919241633829906/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.1024cores.net/2011/11/addresssanitizer-etc.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9016598576148758656/posts/default/6824919241633829906?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9016598576148758656/posts/default/6824919241633829906?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/1024cores/~3/jTKz_9J1icY/addresssanitizer-etc.html" title="AddressSanitizer, etc" /><author><name>Dmitry Vyukov</name><uri>http://www.blogger.com/profile/10137998824493472445</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_RFsQM3PhHjY/Ssc4aREXG6I/AAAAAAAAAGE/NXwPsETLTk8/S220/ninja.jpeg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.1024cores.net/2011/11/addresssanitizer-etc.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE8AQ3Y4eSp7ImA9WhdRFUk.&quot;"><id>tag:blogger.com,1999:blog-9016598576148758656.post-3637638525372894291</id><published>2011-08-05T05:20:00.000-07:00</published><updated>2011-08-05T05:20:42.831-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-05T05:20:42.831-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="futex" /><category scheme="http://www.blogger.com/atom/ns#" term="fiber" /><category scheme="http://www.blogger.com/atom/ns#" term="WaitForMultipleObjects" /><category scheme="http://www.blogger.com/atom/ns#" term="SignalObjectAndWait" /><category scheme="http://www.blogger.com/atom/ns#" term="Google" /><category scheme="http://www.blogger.com/atom/ns#" term="coroutine" /><category scheme="http://www.blogger.com/atom/ns#" term="ThreadSanitizer" /><category scheme="http://www.blogger.com/atom/ns#" term="relacy" /><title>Relacy Race Detector 2.4 and more</title><content type="html">Hi,&lt;br /&gt;
&lt;br /&gt;
It's been a long time since I blogged the last time. Since that I had joined &lt;a href="http://www.google.com/"&gt;Google&lt;/a&gt;, and was busy working on the &lt;a href="http://code.google.com/p/data-race-test/"&gt;ThreadSanitizer&lt;/a&gt; project, which is one the best race detectors out there (not saying that it's free and open source). Also I am actively contributing to the &lt;a href="http://golang.org/"&gt;Go language&lt;/a&gt; concurrency/scalability related things, and it already &lt;a href="http://groups.google.com/group/golang-nuts/browse_thread/thread/d8d3e370200b44aa"&gt;starts paying off&lt;/a&gt;. The language has &lt;a href="http://golang.org/doc/effective_go.html#concurrency"&gt;built-in support for concurrency &lt;/a&gt;and is very nice and simple to say the least of it. But any of that things requires a separate blog post.&lt;br /&gt;
&lt;br /&gt;
OK, I've just uploaded Relacy Race Detector version 2.4, you may download it &lt;a href="http://www.1024cores.net/home/downloads/relacy_2_4.zip"&gt;here&lt;/a&gt;.&lt;br /&gt;
Features:&lt;br /&gt;
+ Support for futex(FUTEX_WAIT/FUTEX_WAKE) &lt;br /&gt;
+ Linux/Darwin performance improved (2.5x for Linux, 7x for Darwin)&lt;br /&gt;
Fixes:&lt;br /&gt;
+ Fixed a bunch of issues with WaitForMultipleObjects()/SignalObjectAndWait()&lt;br /&gt;
+ Fixed rare spurious memory leak reports related to test progress reporting&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The credit for the release goes to &lt;a href="http://cbloomrants.blogspot.com/"&gt;Charles Bloom&lt;/a&gt; - check out the blog, you may find a lot of interesting concurrency related stuff there.&lt;br /&gt;
&lt;br /&gt;
The performance improvement is a result of an interesting optimization related to fiber/ucontext switching, and it deserves a separate post:&lt;br /&gt;
&lt;a href="http://www.1024cores.net/home/lock-free-algorithms/tricks/fibers"&gt;http://www.1024cores.net/home/lock-free-algorithms/tricks/fibers&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Also check out SPAA11 &lt;a href="http://people.csail.mit.edu/edya/publications/LocationBasedMemoryFense-SPAA11.pdf"&gt;"Location-Based Memory Fences"&lt;/a&gt; paper that I co-authored.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
P.S. Google office in Moscow is &lt;a href="http://fishki.net/comment.php?id=80465"&gt;awesome&lt;/a&gt;, people and possibilities are even better. Do not hesitate to &lt;a href="http://www.google.ru/jobs/swe/index.html"&gt;submit your CV now&lt;/a&gt;... and don't forget to indicate me as a referee :)&lt;div class="blogger-post-footer"&gt;&lt;a href="http://www.1024cores.net/" rel="tag" style="display:none"&gt;CodeProject&lt;/a&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=vootoAaUh3E:H6eYQJc1LjA:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=vootoAaUh3E:H6eYQJc1LjA:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=vootoAaUh3E:H6eYQJc1LjA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=vootoAaUh3E:H6eYQJc1LjA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=vootoAaUh3E:H6eYQJc1LjA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=vootoAaUh3E:H6eYQJc1LjA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=vootoAaUh3E:H6eYQJc1LjA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=vootoAaUh3E:H6eYQJc1LjA:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=vootoAaUh3E:H6eYQJc1LjA:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/1024cores/~4/vootoAaUh3E" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.1024cores.net/feeds/3637638525372894291/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.1024cores.net/2011/08/relacy-race-detector-24-and-more.html#comment-form" title="9 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9016598576148758656/posts/default/3637638525372894291?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9016598576148758656/posts/default/3637638525372894291?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/1024cores/~3/vootoAaUh3E/relacy-race-detector-24-and-more.html" title="Relacy Race Detector 2.4 and more" /><author><name>Dmitry Vyukov</name><uri>http://www.blogger.com/profile/10137998824493472445</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_RFsQM3PhHjY/Ssc4aREXG6I/AAAAAAAAAGE/NXwPsETLTk8/S220/ninja.jpeg" /></author><thr:total>9</thr:total><feedburner:origLink>http://blog.1024cores.net/2011/08/relacy-race-detector-24-and-more.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUcNRXsyeip7ImA9Wx9VFkk.&quot;"><id>tag:blogger.com,1999:blog-9016598576148758656.post-6391618744821168293</id><published>2011-02-02T03:44:00.000-08:00</published><updated>2011-02-02T03:44:54.592-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-02-02T03:44:54.592-08:00</app:edited><title>Cache-oblivious Algorithms</title><content type="html">Hi!&lt;br /&gt;
&lt;br /&gt;
This time it's about Parallel Computations, and the first real article in the section is titled&amp;nbsp;&lt;a href="http://www.1024cores.net/home/parallel-computing/cache-oblivious-algorithms"&gt;Cache-oblivious Algorithms&lt;/a&gt;. It introduces the problem of memory bandwidth, the concept of cache hierarchy in modern computers; then describes the underlying idea of cache-oblivious algorithms, and proceeds with an example of how to design a cache-oblivious algorithm for a simple problem.Presented benchmark results show unconditional superiority of the approach.&lt;div class="blogger-post-footer"&gt;&lt;a href="http://www.1024cores.net/" rel="tag" style="display:none"&gt;CodeProject&lt;/a&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=aGNzZIzu9WU:7udvDFO9V-I:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=aGNzZIzu9WU:7udvDFO9V-I:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=aGNzZIzu9WU:7udvDFO9V-I:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=aGNzZIzu9WU:7udvDFO9V-I:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=aGNzZIzu9WU:7udvDFO9V-I:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=aGNzZIzu9WU:7udvDFO9V-I:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=aGNzZIzu9WU:7udvDFO9V-I:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=aGNzZIzu9WU:7udvDFO9V-I:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=aGNzZIzu9WU:7udvDFO9V-I:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/1024cores/~4/aGNzZIzu9WU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.1024cores.net/feeds/6391618744821168293/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.1024cores.net/2011/02/cache-oblivious-algorithms.html#comment-form" title="4 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9016598576148758656/posts/default/6391618744821168293?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9016598576148758656/posts/default/6391618744821168293?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/1024cores/~3/aGNzZIzu9WU/cache-oblivious-algorithms.html" title="Cache-oblivious Algorithms" /><author><name>Dmitry Vyukov</name><uri>http://www.blogger.com/profile/10137998824493472445</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_RFsQM3PhHjY/Ssc4aREXG6I/AAAAAAAAAGE/NXwPsETLTk8/S220/ninja.jpeg" /></author><thr:total>4</thr:total><feedburner:origLink>http://blog.1024cores.net/2011/02/cache-oblivious-algorithms.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU8FSXw4eyp7ImA9Wx9VFEQ.&quot;"><id>tag:blogger.com,1999:blog-9016598576148758656.post-8774294713539814325</id><published>2011-01-31T10:16:00.000-08:00</published><updated>2011-01-31T10:16:58.233-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-01-31T10:16:58.233-08:00</app:edited><title>Distributed Reader-Writer Mutex</title><content type="html">A new article&amp;nbsp;&lt;a href="http://www.1024cores.net/home/lock-free-algorithms/reader-writer-problem/distributed-reader-writer-mutex"&gt;Distributed Reader-Writer Mutex&lt;/a&gt;&amp;nbsp;describes design and implementation of a simple yet scalable rw mutex.&amp;nbsp;The mutex uses an interesting technique of &lt;a href="http://www.1024cores.net/home/lock-free-algorithms/tricks/per-processor-data"&gt;per-processor data&lt;/a&gt;.&amp;nbsp;Results of a benchmark against plain pthread_rwlock_t are presented.&lt;br /&gt;
&lt;br /&gt;
By the way, I've changed code license on the site, now all code is covered by the &lt;a href="http://www.1024cores.net/site/1024cores/home/code-license"&gt;Simplified BSD License&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;a href="http://www.1024cores.net/" rel="tag" style="display:none"&gt;CodeProject&lt;/a&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=cGQwHqijbdk:HgL5O4emCss:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=cGQwHqijbdk:HgL5O4emCss:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=cGQwHqijbdk:HgL5O4emCss:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=cGQwHqijbdk:HgL5O4emCss:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=cGQwHqijbdk:HgL5O4emCss:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=cGQwHqijbdk:HgL5O4emCss:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=cGQwHqijbdk:HgL5O4emCss:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=cGQwHqijbdk:HgL5O4emCss:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=cGQwHqijbdk:HgL5O4emCss:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/1024cores/~4/cGQwHqijbdk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.1024cores.net/feeds/8774294713539814325/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.1024cores.net/2011/01/distributed-reader-writer-mutex.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9016598576148758656/posts/default/8774294713539814325?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9016598576148758656/posts/default/8774294713539814325?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/1024cores/~3/cGQwHqijbdk/distributed-reader-writer-mutex.html" title="Distributed Reader-Writer Mutex" /><author><name>Dmitry Vyukov</name><uri>http://www.blogger.com/profile/10137998824493472445</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_RFsQM3PhHjY/Ssc4aREXG6I/AAAAAAAAAGE/NXwPsETLTk8/S220/ninja.jpeg" /></author><thr:total>2</thr:total><feedburner:origLink>http://blog.1024cores.net/2011/01/distributed-reader-writer-mutex.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0UMQXk6eSp7ImA9Wx9VEUg.&quot;"><id>tag:blogger.com,1999:blog-9016598576148758656.post-4644882315164735803</id><published>2011-01-27T12:14:00.000-08:00</published><updated>2011-01-27T12:14:40.711-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-01-27T12:14:40.711-08:00</app:edited><title>Per-processor Data</title><content type="html">A new article&amp;nbsp;&lt;a href="http://www.1024cores.net/home/lock-free-algorithms/tricks/per-processor-data"&gt;Per-processor Data&lt;/a&gt;&amp;nbsp;is available under &lt;a href="http://www.1024cores.net/home/lock-free-algorithms/tricks"&gt;Lockfree/Tips&amp;amp;Tricks&lt;/a&gt; section. It introduces an interesting technique of per-processor data, as well as some implementation aspects.&lt;div class="blogger-post-footer"&gt;&lt;a href="http://www.1024cores.net/" rel="tag" style="display:none"&gt;CodeProject&lt;/a&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=wyy5iASsryw:LkgxociHD9A:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=wyy5iASsryw:LkgxociHD9A:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=wyy5iASsryw:LkgxociHD9A:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=wyy5iASsryw:LkgxociHD9A:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=wyy5iASsryw:LkgxociHD9A:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=wyy5iASsryw:LkgxociHD9A:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=wyy5iASsryw:LkgxociHD9A:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=wyy5iASsryw:LkgxociHD9A:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=wyy5iASsryw:LkgxociHD9A:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/1024cores/~4/wyy5iASsryw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.1024cores.net/feeds/4644882315164735803/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.1024cores.net/2011/01/per-processor-data.html#comment-form" title="16 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9016598576148758656/posts/default/4644882315164735803?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9016598576148758656/posts/default/4644882315164735803?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/1024cores/~3/wyy5iASsryw/per-processor-data.html" title="Per-processor Data" /><author><name>Dmitry Vyukov</name><uri>http://www.blogger.com/profile/10137998824493472445</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_RFsQM3PhHjY/Ssc4aREXG6I/AAAAAAAAAGE/NXwPsETLTk8/S220/ninja.jpeg" /></author><thr:total>16</thr:total><feedburner:origLink>http://blog.1024cores.net/2011/01/per-processor-data.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkUDSXs-fyp7ImA9Wx9VEU4.&quot;"><id>tag:blogger.com,1999:blog-9016598576148758656.post-2460369666732204072</id><published>2011-01-27T06:24:00.000-08:00</published><updated>2011-01-27T06:24:38.557-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-01-27T06:24:38.557-08:00</app:edited><title>Case Study: MultiLane - a concurrent blocking multiset</title><content type="html">I've published a new article&amp;nbsp;&lt;a href="http://www.1024cores.net/home/scalable-architecture/multilane"&gt;Case Study: MultiLane - a concurrent blocking multiset&lt;/a&gt;. It's about&amp;nbsp;Dave Dice et al &amp;nbsp;paper of the same name. The paper describes MultiLane technique which can be used to improve scalability of producer-consumer systems. I also describe some alternative architectural approaches to the problem.&lt;div class="blogger-post-footer"&gt;&lt;a href="http://www.1024cores.net/" rel="tag" style="display:none"&gt;CodeProject&lt;/a&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=h_6UuOiNwEY:tauJcuCmQGY:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=h_6UuOiNwEY:tauJcuCmQGY:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=h_6UuOiNwEY:tauJcuCmQGY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=h_6UuOiNwEY:tauJcuCmQGY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=h_6UuOiNwEY:tauJcuCmQGY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=h_6UuOiNwEY:tauJcuCmQGY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=h_6UuOiNwEY:tauJcuCmQGY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=h_6UuOiNwEY:tauJcuCmQGY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=h_6UuOiNwEY:tauJcuCmQGY:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/1024cores/~4/h_6UuOiNwEY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.1024cores.net/feeds/2460369666732204072/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.1024cores.net/2011/01/case-study-multilane-concurrent.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9016598576148758656/posts/default/2460369666732204072?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9016598576148758656/posts/default/2460369666732204072?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/1024cores/~3/h_6UuOiNwEY/case-study-multilane-concurrent.html" title="Case Study: MultiLane - a concurrent blocking multiset" /><author><name>Dmitry Vyukov</name><uri>http://www.blogger.com/profile/10137998824493472445</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_RFsQM3PhHjY/Ssc4aREXG6I/AAAAAAAAAGE/NXwPsETLTk8/S220/ninja.jpeg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.1024cores.net/2011/01/case-study-multilane-concurrent.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUQBSX8-eyp7ImA9Wx9WGEQ.&quot;"><id>tag:blogger.com,1999:blog-9016598576148758656.post-2381882350142628836</id><published>2011-01-24T11:29:00.000-08:00</published><updated>2011-01-24T11:29:18.153-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-01-24T11:29:18.153-08:00</app:edited><title>Lockfree Tips&amp;Tricks</title><content type="html">&lt;div align="LEFT" lang="en-US" style="margin-bottom: 0in; orphans: 2; widows: 2;"&gt;&lt;/div&gt;&lt;div align="LEFT" lang="en-US" style="margin-bottom: 0in; orphans: 2; widows: 2;"&gt;&lt;span class="Apple-style-span" style="line-height: 21px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; Hi!&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT" lang="en-US" style="margin-bottom: 0in; orphans: 2; widows: 2;"&gt;&lt;span class="Apple-style-span" style="line-height: 21px;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT" lang="en-US" style="margin-bottom: 0in; orphans: 2; widows: 2;"&gt;&lt;span class="Apple-style-span" style="line-height: 21px;"&gt;I've kicked off a new subsection &lt;a href="http://www.1024cores.net/home/lock-free-algorithms/tricks"&gt;Lockfree/Tips&amp;amp;Tricks&lt;/a&gt;, in which I collect various separate topics related to design and implementation of synchronization algorithms. There are 2 articles for warm-up: &lt;a href="http://www.1024cores.net/home/lock-free-algorithms/tricks/spinning"&gt;Spinning&lt;/a&gt; (active/passive/hybrid, pros&amp;amp;cons, implementation) and &lt;a href="http://www.1024cores.net/home/lock-free-algorithms/tricks/pointer-packing"&gt;Pointer Packing&lt;/a&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div align="LEFT" lang="en-US" style="margin-bottom: 0in; orphans: 2; widows: 2;"&gt;&lt;span class="Apple-style-span" style="line-height: 21px;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://www.1024cores.net/" rel="tag" style="display:none"&gt;CodeProject&lt;/a&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=VyUaS3fdQFg:Y1l0XTN1lLc:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=VyUaS3fdQFg:Y1l0XTN1lLc:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=VyUaS3fdQFg:Y1l0XTN1lLc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=VyUaS3fdQFg:Y1l0XTN1lLc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=VyUaS3fdQFg:Y1l0XTN1lLc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=VyUaS3fdQFg:Y1l0XTN1lLc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=VyUaS3fdQFg:Y1l0XTN1lLc:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=VyUaS3fdQFg:Y1l0XTN1lLc:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=VyUaS3fdQFg:Y1l0XTN1lLc:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/1024cores/~4/VyUaS3fdQFg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.1024cores.net/feeds/2381882350142628836/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.1024cores.net/2011/01/lockfree-tips.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9016598576148758656/posts/default/2381882350142628836?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9016598576148758656/posts/default/2381882350142628836?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/1024cores/~3/VyUaS3fdQFg/lockfree-tips.html" title="Lockfree Tips&amp;Tricks" /><author><name>Dmitry Vyukov</name><uri>http://www.blogger.com/profile/10137998824493472445</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_RFsQM3PhHjY/Ssc4aREXG6I/AAAAAAAAAGE/NXwPsETLTk8/S220/ninja.jpeg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.1024cores.net/2011/01/lockfree-tips.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkcMQHs8cSp7ImA9Wx9WF08.&quot;"><id>tag:blogger.com,1999:blog-9016598576148758656.post-8708272833908837949</id><published>2011-01-22T11:21:00.000-08:00</published><updated>2011-01-22T11:21:21.579-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-01-22T11:21:21.579-08:00</app:edited><title>Lock-Free Link Pack</title><content type="html">Check out updated &lt;a href="http://www.1024cores.net/home/lock-free-algorithms/links"&gt;Lock-Free Links&lt;/a&gt; page. There you will find links to books, blogs, websites, research groups, separate articles and some sources to study. Perhaps, more than I ever needs to know about synchronization algorithms :)&lt;br /&gt;
Have I read all that? Well, mostly, but not all :)&lt;div class="blogger-post-footer"&gt;&lt;a href="http://www.1024cores.net/" rel="tag" style="display:none"&gt;CodeProject&lt;/a&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=EoELG3Es59U:-6LlyBGCNhg:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=EoELG3Es59U:-6LlyBGCNhg:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=EoELG3Es59U:-6LlyBGCNhg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=EoELG3Es59U:-6LlyBGCNhg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=EoELG3Es59U:-6LlyBGCNhg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=EoELG3Es59U:-6LlyBGCNhg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=EoELG3Es59U:-6LlyBGCNhg:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=EoELG3Es59U:-6LlyBGCNhg:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=EoELG3Es59U:-6LlyBGCNhg:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/1024cores/~4/EoELG3Es59U" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.1024cores.net/feeds/8708272833908837949/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.1024cores.net/2011/01/lock-free-link-pack.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9016598576148758656/posts/default/8708272833908837949?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9016598576148758656/posts/default/8708272833908837949?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/1024cores/~3/EoELG3Es59U/lock-free-link-pack.html" title="Lock-Free Link Pack" /><author><name>Dmitry Vyukov</name><uri>http://www.blogger.com/profile/10137998824493472445</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_RFsQM3PhHjY/Ssc4aREXG6I/AAAAAAAAAGE/NXwPsETLTk8/S220/ninja.jpeg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.1024cores.net/2011/01/lock-free-link-pack.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck8GQHo8eyp7ImA9Wx9WFk8.&quot;"><id>tag:blogger.com,1999:blog-9016598576148758656.post-7150270016752411754</id><published>2011-01-21T06:40:00.000-08:00</published><updated>2011-01-21T06:40:21.473-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-01-21T06:40:21.473-08:00</app:edited><title>Case Study: FastFlow Queue</title><content type="html">Hi!&lt;br /&gt;
&lt;br /&gt;
I've posted a new article&amp;nbsp;&lt;a href="http://www.1024cores.net/home/lock-free-algorithms/queues/fastflow"&gt;Case Study: FastFlow Queue&lt;/a&gt;, in which I&amp;nbsp;examine design and implementation of a nonblocking single-producer/single-consumer queue, which used as a base building block in the &lt;a href="http://www.1024cores.net/home/technologies/fastflow"&gt;FastFlow&lt;/a&gt;&amp;nbsp;multicore programming library. In the second part of the article I design and implement "a better" queue. Benchmark results confirm better performance and scalability.&lt;br /&gt;
&lt;br /&gt;
By the way, thanks to all who has participated in the poll on &lt;s&gt;left&amp;nbsp;&lt;/s&gt;right pane.&lt;div class="blogger-post-footer"&gt;&lt;a href="http://www.1024cores.net/" rel="tag" style="display:none"&gt;CodeProject&lt;/a&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=CTRfZFM4LsA:lUBhZJoZ5Kc:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=CTRfZFM4LsA:lUBhZJoZ5Kc:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=CTRfZFM4LsA:lUBhZJoZ5Kc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=CTRfZFM4LsA:lUBhZJoZ5Kc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=CTRfZFM4LsA:lUBhZJoZ5Kc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=CTRfZFM4LsA:lUBhZJoZ5Kc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=CTRfZFM4LsA:lUBhZJoZ5Kc:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=CTRfZFM4LsA:lUBhZJoZ5Kc:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=CTRfZFM4LsA:lUBhZJoZ5Kc:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/1024cores/~4/CTRfZFM4LsA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.1024cores.net/feeds/7150270016752411754/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.1024cores.net/2011/01/case-study-fastflow-queue.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9016598576148758656/posts/default/7150270016752411754?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9016598576148758656/posts/default/7150270016752411754?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/1024cores/~3/CTRfZFM4LsA/case-study-fastflow-queue.html" title="Case Study: FastFlow Queue" /><author><name>Dmitry Vyukov</name><uri>http://www.blogger.com/profile/10137998824493472445</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_RFsQM3PhHjY/Ssc4aREXG6I/AAAAAAAAAGE/NXwPsETLTk8/S220/ninja.jpeg" /></author><thr:total>2</thr:total><feedburner:origLink>http://blog.1024cores.net/2011/01/case-study-fastflow-queue.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkQDQX8yfyp7ImA9Wx9XFEo.&quot;"><id>tag:blogger.com,1999:blog-9016598576148758656.post-2164742513470790161</id><published>2011-01-08T00:12:00.000-08:00</published><updated>2011-01-08T00:12:50.197-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-01-08T00:12:50.197-08:00</app:edited><title>Alternative web addresses</title><content type="html">It seems that Google hosting periodically has outages. Just in case you have problems accessing the main URL, you can use the following one:&lt;br /&gt;
&lt;a href="http://sites.google.com/site/1024cores"&gt;http://sites.google.com/site/1024cores&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://www.1024cores.net/" rel="tag" style="display:none"&gt;CodeProject&lt;/a&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=gAmzwlGvjO4:vL5FEgj_99c:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=gAmzwlGvjO4:vL5FEgj_99c:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=gAmzwlGvjO4:vL5FEgj_99c:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=gAmzwlGvjO4:vL5FEgj_99c:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=gAmzwlGvjO4:vL5FEgj_99c:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=gAmzwlGvjO4:vL5FEgj_99c:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=gAmzwlGvjO4:vL5FEgj_99c:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=gAmzwlGvjO4:vL5FEgj_99c:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=gAmzwlGvjO4:vL5FEgj_99c:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/1024cores/~4/gAmzwlGvjO4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.1024cores.net/feeds/2164742513470790161/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.1024cores.net/2011/01/alternative-web-addresses.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9016598576148758656/posts/default/2164742513470790161?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9016598576148758656/posts/default/2164742513470790161?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/1024cores/~3/gAmzwlGvjO4/alternative-web-addresses.html" title="Alternative web addresses" /><author><name>Dmitry Vyukov</name><uri>http://www.blogger.com/profile/10137998824493472445</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_RFsQM3PhHjY/Ssc4aREXG6I/AAAAAAAAAGE/NXwPsETLTk8/S220/ninja.jpeg" /></author><thr:total>2</thr:total><feedburner:origLink>http://blog.1024cores.net/2011/01/alternative-web-addresses.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0QNSXg9fyp7ImA9Wx9XFEw.&quot;"><id>tag:blogger.com,1999:blog-9016598576148758656.post-864249688982793713</id><published>2011-01-07T08:56:00.000-08:00</published><updated>2011-01-07T08:56:38.667-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-01-07T08:56:38.667-08:00</app:edited><title>Differential Reference Counting</title><content type="html">Just published an article on &lt;a href="http://www.1024cores.net/home/lock-free-algorithms/object-life-time-management/differential-reference-counting"&gt;Differential Reference Counting&lt;/a&gt; - reference counting algorithm which provides strong thread-safety and permits useful use cases that are not permitted by plain atomic reference counting (like boost::shared_ptr).&lt;div class="blogger-post-footer"&gt;&lt;a href="http://www.1024cores.net/" rel="tag" style="display:none"&gt;CodeProject&lt;/a&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=5yTctyQSKD0:z6CMtznfeaI:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=5yTctyQSKD0:z6CMtznfeaI:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=5yTctyQSKD0:z6CMtznfeaI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=5yTctyQSKD0:z6CMtznfeaI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=5yTctyQSKD0:z6CMtznfeaI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=5yTctyQSKD0:z6CMtznfeaI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=5yTctyQSKD0:z6CMtznfeaI:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=5yTctyQSKD0:z6CMtznfeaI:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=5yTctyQSKD0:z6CMtznfeaI:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/1024cores/~4/5yTctyQSKD0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.1024cores.net/feeds/864249688982793713/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.1024cores.net/2011/01/differential-reference-counting.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9016598576148758656/posts/default/864249688982793713?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9016598576148758656/posts/default/864249688982793713?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/1024cores/~3/5yTctyQSKD0/differential-reference-counting.html" title="Differential Reference Counting" /><author><name>Dmitry Vyukov</name><uri>http://www.blogger.com/profile/10137998824493472445</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_RFsQM3PhHjY/Ssc4aREXG6I/AAAAAAAAAGE/NXwPsETLTk8/S220/ninja.jpeg" /></author><thr:total>2</thr:total><feedburner:origLink>http://blog.1024cores.net/2011/01/differential-reference-counting.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkQDQXozeCp7ImA9Wx9XEks.&quot;"><id>tag:blogger.com,1999:blog-9016598576148758656.post-7974518106292504642</id><published>2011-01-05T12:46:00.000-08:00</published><updated>2011-01-05T12:46:10.480-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-01-05T12:46:10.480-08:00</app:edited><title>Lazy Concurrent Initialization</title><content type="html">I've added an article on&amp;nbsp;&lt;a href="http://www.1024cores.net/home/lock-free-algorithms/lazy-concurrent-initialization"&gt;Lazy Concurrent Initialization&lt;/a&gt;. It describes 2 types of initialization - blocking and non-blocking, describes available implementations in Windows API, POSIX threads and C1x/C++0x&amp;nbsp;and provides guidelines for efficient implementation based on atomic operations and fine-grained memory fences.&lt;div class="blogger-post-footer"&gt;&lt;a href="http://www.1024cores.net/" rel="tag" style="display:none"&gt;CodeProject&lt;/a&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=7wx6Al5fe14:EBuruFj6npQ:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=7wx6Al5fe14:EBuruFj6npQ:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=7wx6Al5fe14:EBuruFj6npQ:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=7wx6Al5fe14:EBuruFj6npQ:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=7wx6Al5fe14:EBuruFj6npQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=7wx6Al5fe14:EBuruFj6npQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=7wx6Al5fe14:EBuruFj6npQ:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=7wx6Al5fe14:EBuruFj6npQ:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=7wx6Al5fe14:EBuruFj6npQ:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/1024cores/~4/7wx6Al5fe14" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.1024cores.net/feeds/7974518106292504642/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.1024cores.net/2011/01/lazy-concurrent-initialization.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9016598576148758656/posts/default/7974518106292504642?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9016598576148758656/posts/default/7974518106292504642?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/1024cores/~3/7wx6Al5fe14/lazy-concurrent-initialization.html" title="Lazy Concurrent Initialization" /><author><name>Dmitry Vyukov</name><uri>http://www.blogger.com/profile/10137998824493472445</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_RFsQM3PhHjY/Ssc4aREXG6I/AAAAAAAAAGE/NXwPsETLTk8/S220/ninja.jpeg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.1024cores.net/2011/01/lazy-concurrent-initialization.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEUMRH46fip7ImA9Wx9XEUs.&quot;"><id>tag:blogger.com,1999:blog-9016598576148758656.post-413452506295017450</id><published>2011-01-04T08:41:00.000-08:00</published><updated>2011-01-04T09:31:25.016-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-01-04T09:31:25.016-08:00</app:edited><title>What new materials would you like to appear on 1024cores?</title><content type="html">Hi!&lt;br /&gt;
&lt;br /&gt;
I would like you to share you preferences regarding what kinds of information you would like to appear on &lt;a href="http://www.1024cores.net/"&gt;1024cores&lt;/a&gt;&amp;nbsp;in the near future. You know, I need to kind of prioritize everything I may potentially share there, and your input is important to me.&lt;br /&gt;
&lt;br /&gt;
I've started a poll on the right pane &amp;gt;&amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I have a lot of thoughts and ideas on lock-free algorithms: about queues and reader-writer problem, about object life-time management, lazy initialization, caching, etc&lt;br /&gt;
&lt;br /&gt;
I may share more thought on scalable architecture: message-passing and pipelining, overloads, patterns, etc.&lt;br /&gt;
&lt;br /&gt;
I may share thing related to parallel computations: some principles, caveats, problems and solutions, patterns and anti-patterns, etc.&lt;br /&gt;
&lt;br /&gt;
Concurrency Myth Busters is going to be a section on common misconceptions around multicore, concurrency and parallelism.&lt;br /&gt;
&lt;br /&gt;
I may highlight some hardware aspects like caches, NUMA and HyperThreading.&lt;br /&gt;
&lt;br /&gt;
There are also Links, Libraries and Tools.&lt;br /&gt;
&lt;br /&gt;
And if you check Other, please, drop a comment here regarding what exactly you mean.&lt;br /&gt;
&lt;br /&gt;
Also don't hesitate to share here other thoughts, comments and suggestions on the site here.&lt;br /&gt;
&lt;br /&gt;
Thank you.&lt;div class="blogger-post-footer"&gt;&lt;a href="http://www.1024cores.net/" rel="tag" style="display:none"&gt;CodeProject&lt;/a&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=j4SKxECNbEk:aJ4p6j7oeWw:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=j4SKxECNbEk:aJ4p6j7oeWw:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=j4SKxECNbEk:aJ4p6j7oeWw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=j4SKxECNbEk:aJ4p6j7oeWw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=j4SKxECNbEk:aJ4p6j7oeWw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=j4SKxECNbEk:aJ4p6j7oeWw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=j4SKxECNbEk:aJ4p6j7oeWw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=j4SKxECNbEk:aJ4p6j7oeWw:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=j4SKxECNbEk:aJ4p6j7oeWw:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/1024cores/~4/j4SKxECNbEk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.1024cores.net/feeds/413452506295017450/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.1024cores.net/2011/01/what-new-materials-would-you-like-to.html#comment-form" title="9 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9016598576148758656/posts/default/413452506295017450?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9016598576148758656/posts/default/413452506295017450?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/1024cores/~3/j4SKxECNbEk/what-new-materials-would-you-like-to.html" title="What new materials would you like to appear on 1024cores?" /><author><name>Dmitry Vyukov</name><uri>http://www.blogger.com/profile/10137998824493472445</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_RFsQM3PhHjY/Ssc4aREXG6I/AAAAAAAAAGE/NXwPsETLTk8/S220/ninja.jpeg" /></author><thr:total>9</thr:total><feedburner:origLink>http://blog.1024cores.net/2011/01/what-new-materials-would-you-like-to.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkQCQ3c8eCp7ImA9Wx9XEEs.&quot;"><id>tag:blogger.com,1999:blog-9016598576148758656.post-6804252810547886956</id><published>2011-01-03T05:48:00.000-08:00</published><updated>2011-01-03T06:19:22.970-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-01-03T06:19:22.970-08:00</app:edited><title>Parallel Disk IO</title><content type="html">I've added an article on Parallel Disk IO Subsystem:&lt;br /&gt;
&lt;a href="http://www.1024cores.net/home/scalable-architecture/parallel-disk-io"&gt;http://www.1024cores.net/home/scalable-architecture/parallel-disk-io&lt;/a&gt;&lt;br /&gt;
It's based on my Wide Finder 2 entry, but it's quite general and describes common aspects and patterns and anti-patterns. It shows how not to under-subscribe nor over-subscribe CPUs and disks, how to keep data hot in caches and memory, how to automatically adapt to various external conditions, etc.&lt;br /&gt;
&lt;br /&gt;
Here is also a brief write-up on the Wide Finder 2 entry itself:&lt;br /&gt;
&lt;a href="http://www.1024cores.net/home/scalable-architecture/wide-finder-2"&gt;http://www.1024cores.net/home/scalable-architecture/wide-finder-2&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://www.1024cores.net/" rel="tag" style="display:none"&gt;CodeProject&lt;/a&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=630c5aZDhXE:wVG8vGDb8yk:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=630c5aZDhXE:wVG8vGDb8yk:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=630c5aZDhXE:wVG8vGDb8yk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=630c5aZDhXE:wVG8vGDb8yk:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=630c5aZDhXE:wVG8vGDb8yk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=630c5aZDhXE:wVG8vGDb8yk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=630c5aZDhXE:wVG8vGDb8yk:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=630c5aZDhXE:wVG8vGDb8yk:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=630c5aZDhXE:wVG8vGDb8yk:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/1024cores/~4/630c5aZDhXE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.1024cores.net/feeds/6804252810547886956/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.1024cores.net/2011/01/parallel-disk-io.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9016598576148758656/posts/default/6804252810547886956?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9016598576148758656/posts/default/6804252810547886956?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/1024cores/~3/630c5aZDhXE/parallel-disk-io.html" title="Parallel Disk IO" /><author><name>Dmitry Vyukov</name><uri>http://www.blogger.com/profile/10137998824493472445</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_RFsQM3PhHjY/Ssc4aREXG6I/AAAAAAAAAGE/NXwPsETLTk8/S220/ninja.jpeg" /></author><thr:total>2</thr:total><feedburner:origLink>http://blog.1024cores.net/2011/01/parallel-disk-io.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUMGQX89eyp7ImA9Wx9QF08.&quot;"><id>tag:blogger.com,1999:blog-9016598576148758656.post-530995321167014980</id><published>2010-12-30T08:43:00.000-08:00</published><updated>2010-12-30T08:43:40.163-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-12-30T08:43:40.163-08:00</app:edited><title>Scalable Architecture</title><content type="html">Hi!&lt;br /&gt;
&lt;br /&gt;
I've just kicked off the "Scalable Architecture" section on the site. For starters there is an&amp;nbsp;&lt;a href="http://www.1024cores.net/home/scalable-architecture/introduction"&gt;Introduction&lt;/a&gt;&amp;nbsp;which describes fundamental concepts of Distribution and Independence, as well as some ways as to how you may reason about architecture in the context of scalability.&lt;br /&gt;
There is also &lt;a href="http://www.1024cores.net/home/scalable-architecture/general-recipe"&gt;General "Bird's Eye View" Recipe&lt;/a&gt; for scalable architecture.&lt;br /&gt;
And free-standing &lt;a href="http://www.1024cores.net/home/scalable-architecture/task-scheduling-strategies"&gt;introduction to task scheduling strategies&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;a href="http://www.1024cores.net/" rel="tag" style="display:none"&gt;CodeProject&lt;/a&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=tVVorG7oZ1A:s-7DSut43_A:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=tVVorG7oZ1A:s-7DSut43_A:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=tVVorG7oZ1A:s-7DSut43_A:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=tVVorG7oZ1A:s-7DSut43_A:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=tVVorG7oZ1A:s-7DSut43_A:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=tVVorG7oZ1A:s-7DSut43_A:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=tVVorG7oZ1A:s-7DSut43_A:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=tVVorG7oZ1A:s-7DSut43_A:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=tVVorG7oZ1A:s-7DSut43_A:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/1024cores/~4/tVVorG7oZ1A" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.1024cores.net/feeds/530995321167014980/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.1024cores.net/2010/12/scalable-architecture.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9016598576148758656/posts/default/530995321167014980?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9016598576148758656/posts/default/530995321167014980?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/1024cores/~3/tVVorG7oZ1A/scalable-architecture.html" title="Scalable Architecture" /><author><name>Dmitry Vyukov</name><uri>http://www.blogger.com/profile/10137998824493472445</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_RFsQM3PhHjY/Ssc4aREXG6I/AAAAAAAAAGE/NXwPsETLTk8/S220/ninja.jpeg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.1024cores.net/2010/12/scalable-architecture.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEIGRnozeSp7ImA9Wx9QF08.&quot;"><id>tag:blogger.com,1999:blog-9016598576148758656.post-8403306477674704682</id><published>2010-12-30T08:28:00.000-08:00</published><updated>2010-12-30T08:28:47.481-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-12-30T08:28:47.481-08:00</app:edited><title>About Me</title><content type="html">&lt;span class="Apple-style-span" style="color: #333333; font-family: Georgia, 'Times New Roman', serif; font-size: 14px; line-height: 21px;"&gt;You know, I've got a&amp;nbsp;rightful comments &lt;s&gt;Who the #$%^ are you?&lt;/s&gt; that there are too many&amp;nbsp;undergrads&amp;nbsp;writing naive things about lock-free algorithms all over the Internet, so I kind of need to prove my "authority" on the matter :)&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #333333; font-family: Georgia, 'Times New Roman', serif; font-size: 14px; line-height: 21px;"&gt;So I've published the About Me page:&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #333333; font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-size: 15px; line-height: 21px;"&gt;&lt;a href="http://www.1024cores.net/home/about-me"&gt;http://www.1024cores.net/home/about-me&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #333333; font-family: Georgia, 'Times New Roman', serif;"&gt;&lt;span class="Apple-style-span" style="font-size: 15px; line-height: 21px;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://www.1024cores.net/" rel="tag" style="display:none"&gt;CodeProject&lt;/a&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=HFK6b0QRktY:HtXUFTLBNsI:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=HFK6b0QRktY:HtXUFTLBNsI:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=HFK6b0QRktY:HtXUFTLBNsI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=HFK6b0QRktY:HtXUFTLBNsI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=HFK6b0QRktY:HtXUFTLBNsI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=HFK6b0QRktY:HtXUFTLBNsI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=HFK6b0QRktY:HtXUFTLBNsI:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=HFK6b0QRktY:HtXUFTLBNsI:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=HFK6b0QRktY:HtXUFTLBNsI:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/1024cores/~4/HFK6b0QRktY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.1024cores.net/feeds/8403306477674704682/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.1024cores.net/2010/12/about-me.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9016598576148758656/posts/default/8403306477674704682?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9016598576148758656/posts/default/8403306477674704682?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/1024cores/~3/HFK6b0QRktY/about-me.html" title="About Me" /><author><name>Dmitry Vyukov</name><uri>http://www.blogger.com/profile/10137998824493472445</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_RFsQM3PhHjY/Ssc4aREXG6I/AAAAAAAAAGE/NXwPsETLTk8/S220/ninja.jpeg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.1024cores.net/2010/12/about-me.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkAARngycCp7ImA9Wx9QE0U.&quot;"><id>tag:blogger.com,1999:blog-9016598576148758656.post-2630648691742575994</id><published>2010-12-26T09:32:00.000-08:00</published><updated>2010-12-26T09:32:27.698-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-12-26T09:32:27.698-08:00</app:edited><title>So what is a memory model? And how to cook it?</title><content type="html">Just posted a new article on fundamentals of memory models in the context of multi-threading. It covers 3 basic properties: Atomicity, Visibility and Ordering, along with some compiler-related and high-level languages aspects:&lt;br /&gt;
&lt;a href="http://www.1024cores.net/home/lock-free-algorithms/so-what-is-a-memory-model-and-how-to-cook-it"&gt;http://www.1024cores.net/home/lock-free-algorithms/so-what-is-a-memory-model-and-how-to-cook-it&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;a href="http://www.1024cores.net/" rel="tag" style="display:none"&gt;CodeProject&lt;/a&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=erxvXM85Cn4:pGSyam8WO5o:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=erxvXM85Cn4:pGSyam8WO5o:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=erxvXM85Cn4:pGSyam8WO5o:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=erxvXM85Cn4:pGSyam8WO5o:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=erxvXM85Cn4:pGSyam8WO5o:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=erxvXM85Cn4:pGSyam8WO5o:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=erxvXM85Cn4:pGSyam8WO5o:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=erxvXM85Cn4:pGSyam8WO5o:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=erxvXM85Cn4:pGSyam8WO5o:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/1024cores/~4/erxvXM85Cn4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.1024cores.net/feeds/2630648691742575994/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.1024cores.net/2010/12/so-what-is-memory-model-and-how-to-cook.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9016598576148758656/posts/default/2630648691742575994?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9016598576148758656/posts/default/2630648691742575994?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/1024cores/~3/erxvXM85Cn4/so-what-is-memory-model-and-how-to-cook.html" title="So what is a memory model? And how to cook it?" /><author><name>Dmitry Vyukov</name><uri>http://www.blogger.com/profile/10137998824493472445</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_RFsQM3PhHjY/Ssc4aREXG6I/AAAAAAAAAGE/NXwPsETLTk8/S220/ninja.jpeg" /></author><thr:total>2</thr:total><feedburner:origLink>http://blog.1024cores.net/2010/12/so-what-is-memory-model-and-how-to-cook.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEIHRHw6fSp7ImA9Wx9QEko.&quot;"><id>tag:blogger.com,1999:blog-9016598576148758656.post-2496218302453575480</id><published>2010-12-25T03:20:00.000-08:00</published><updated>2010-12-25T03:28:55.215-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-12-25T03:28:55.215-08:00</app:edited><title>1024cores officially goes into public beta</title><content type="html">&lt;a href="http://www.1024cores.net/"&gt;http://www.1024cores.net&lt;/a&gt; - a site devoted to concurrency, synchronization algorithms, parallel computations (HPC), multi-threading, multi-core, scalability -&amp;nbsp;officially goes into public beta.&lt;br /&gt;
&lt;br /&gt;
So what is already there - some materials on synchronization (lock-free) algorithms, some articles on parallel computations (my write-ups for Intel Threading Challenge), and some initial sections on libraries, tools and external references (books, blogs, articles).&lt;br /&gt;
Much more is coming&amp;nbsp;(including sections of scalable architecture and hardware aspects), so subscribe to the RSS feed or follow &lt;a href="http://blog.1024cores.net/"&gt;http://blog.1024cores.net&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Also don't hesitate to tweet/buzz/share/blog about the site. I&amp;nbsp;appreciate it. Thank you in advance.&lt;br /&gt;
Stay tuned!&lt;div class="blogger-post-footer"&gt;&lt;a href="http://www.1024cores.net/" rel="tag" style="display:none"&gt;CodeProject&lt;/a&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=VaVHatUOxcg:rnsiBEQEJaE:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=VaVHatUOxcg:rnsiBEQEJaE:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=VaVHatUOxcg:rnsiBEQEJaE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=VaVHatUOxcg:rnsiBEQEJaE:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=VaVHatUOxcg:rnsiBEQEJaE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=VaVHatUOxcg:rnsiBEQEJaE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=VaVHatUOxcg:rnsiBEQEJaE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=VaVHatUOxcg:rnsiBEQEJaE:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=VaVHatUOxcg:rnsiBEQEJaE:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/1024cores/~4/VaVHatUOxcg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.1024cores.net/feeds/2496218302453575480/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.1024cores.net/2010/12/1024cores-officially-goes-into-public.html#comment-form" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9016598576148758656/posts/default/2496218302453575480?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9016598576148758656/posts/default/2496218302453575480?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/1024cores/~3/VaVHatUOxcg/1024cores-officially-goes-into-public.html" title="1024cores officially goes into public beta" /><author><name>Dmitry Vyukov</name><uri>http://www.blogger.com/profile/10137998824493472445</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_RFsQM3PhHjY/Ssc4aREXG6I/AAAAAAAAAGE/NXwPsETLTk8/S220/ninja.jpeg" /></author><thr:total>2</thr:total><feedburner:origLink>http://blog.1024cores.net/2010/12/1024cores-officially-goes-into-public.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak4FQnY5fCp7ImA9Wx9RGEk.&quot;"><id>tag:blogger.com,1999:blog-9016598576148758656.post-1177739027334843575</id><published>2010-12-20T04:41:00.000-08:00</published><updated>2010-12-20T04:41:53.824-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-12-20T04:41:53.824-08:00</app:edited><title>Welcome!</title><content type="html">Hi!&lt;br /&gt;
My name is Dmitry Vyukov (aka Dmitiy V'jukov, dvyukov and remark), and this an&amp;nbsp;accompanying blog for the &lt;a href="http://www.1024cores.net/"&gt;1024cores&lt;/a&gt;&amp;nbsp;site. The site is dedicated to&amp;nbsp;lock-free, wait-free, obstruction-free, atomic-free synchronization algorithms and data structures, scalability-oriented architecture, multi-core/multi-processor design patterns, high-performance computing, threading technologies and libraries, message-passing systems and related topics.&lt;br /&gt;
In this blog I am going to post announcement of a new content available on the site, so subscribe to it right now! ;)&lt;div class="blogger-post-footer"&gt;&lt;a href="http://www.1024cores.net/" rel="tag" style="display:none"&gt;CodeProject&lt;/a&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=o0NgdiQlMPk:qf3IWA0xxYA:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=o0NgdiQlMPk:qf3IWA0xxYA:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=o0NgdiQlMPk:qf3IWA0xxYA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=o0NgdiQlMPk:qf3IWA0xxYA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=o0NgdiQlMPk:qf3IWA0xxYA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=o0NgdiQlMPk:qf3IWA0xxYA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=o0NgdiQlMPk:qf3IWA0xxYA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/1024cores?a=o0NgdiQlMPk:qf3IWA0xxYA:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/1024cores?i=o0NgdiQlMPk:qf3IWA0xxYA:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/1024cores/~4/o0NgdiQlMPk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.1024cores.net/feeds/1177739027334843575/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://blog.1024cores.net/2010/12/welcome.html#comment-form" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/9016598576148758656/posts/default/1177739027334843575?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/9016598576148758656/posts/default/1177739027334843575?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/1024cores/~3/o0NgdiQlMPk/welcome.html" title="Welcome!" /><author><name>Dmitry Vyukov</name><uri>http://www.blogger.com/profile/10137998824493472445</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="http://2.bp.blogspot.com/_RFsQM3PhHjY/Ssc4aREXG6I/AAAAAAAAAGE/NXwPsETLTk8/S220/ninja.jpeg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.1024cores.net/2010/12/welcome.html</feedburner:origLink></entry></feed>
