<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments for Emery Blogger</title>
	<atom:link href="http://emeryblogger.com/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://emeryblogger.com</link>
	<description>Emery Berger&#039;s Blog</description>
	<lastBuildDate>Thu, 02 Feb 2012 18:52:02 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>Comment on Take a Stand for Double-Blind Reviewing! by Ranjit Jhala (@RanjitJhala)</title>
		<link>http://emeryblogger.com/2012/02/01/take-a-stand-for-double-blind-reviewing/#comment-190</link>
		<dc:creator><![CDATA[Ranjit Jhala (@RanjitJhala)]]></dc:creator>
		<pubDate>Thu, 02 Feb 2012 18:52:02 +0000</pubDate>
		<guid isPermaLink="false">http://emeryblogger.com/?p=223#comment-190</guid>
		<description><![CDATA[Indeed. This is a bit like the switch to allowing PC submissions which I am sure (or like to think) was helped by the hassle of getting qualified PC members to serve.]]></description>
		<content:encoded><![CDATA[<p>Indeed. This is a bit like the switch to allowing PC submissions which I am sure (or like to think) was helped by the hassle of getting qualified PC members to serve.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Take a Stand for Double-Blind Reviewing! by emeryberger</title>
		<link>http://emeryblogger.com/2012/02/01/take-a-stand-for-double-blind-reviewing/#comment-189</link>
		<dc:creator><![CDATA[emeryberger]]></dc:creator>
		<pubDate>Thu, 02 Feb 2012 17:47:59 +0000</pubDate>
		<guid isPermaLink="false">http://emeryblogger.com/?p=223#comment-189</guid>
		<description><![CDATA[I am not sure what other reasons people may have for refusing to serve; I do feel strongly about this particular topic.

But as I point out in my post, even just bringing up double-blind is often enough to get the PC to adopt it. If enough of us do at least that, I believe we will change our communities for the better.]]></description>
		<content:encoded><![CDATA[<p>I am not sure what other reasons people may have for refusing to serve; I do feel strongly about this particular topic.</p>
<p>But as I point out in my post, even just bringing up double-blind is often enough to get the PC to adopt it. If enough of us do at least that, I believe we will change our communities for the better.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Take a Stand for Double-Blind Reviewing! by Jason Flinn</title>
		<link>http://emeryblogger.com/2012/02/01/take-a-stand-for-double-blind-reviewing/#comment-188</link>
		<dc:creator><![CDATA[Jason Flinn]]></dc:creator>
		<pubDate>Thu, 02 Feb 2012 17:42:24 +0000</pubDate>
		<guid isPermaLink="false">http://emeryblogger.com/?p=223#comment-188</guid>
		<description><![CDATA[Interesting post.  I am generally in favor of double-blind reviewing (though I have flip-flopped at least a few times on the issue). 

I am troubled, however, by the recent(?) trend to refuse to serve on a PC unless the conference changes .  If there are a lot of &#039;s, then the community is deeply hurt by not getting the best PC and overworking more flexible members.  

If this is something you feel very deeply about, sure.  But, it&#039;s also important to realize that there can be legitimate differences of opinion over an issue and work to change those opinions in less harmful ways.]]></description>
		<content:encoded><![CDATA[<p>Interesting post.  I am generally in favor of double-blind reviewing (though I have flip-flopped at least a few times on the issue). </p>
<p>I am troubled, however, by the recent(?) trend to refuse to serve on a PC unless the conference changes .  If there are a lot of &#8216;s, then the community is deeply hurt by not getting the best PC and overworking more flexible members.  </p>
<p>If this is something you feel very deeply about, sure.  But, it&#8217;s also important to realize that there can be legitimate differences of opinion over an issue and work to change those opinions in less harmful ways.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Take a Stand for Double-Blind Reviewing! by emeryberger</title>
		<link>http://emeryblogger.com/2012/02/01/take-a-stand-for-double-blind-reviewing/#comment-187</link>
		<dc:creator><![CDATA[emeryberger]]></dc:creator>
		<pubDate>Thu, 02 Feb 2012 15:13:37 +0000</pubDate>
		<guid isPermaLink="false">http://emeryblogger.com/?p=223#comment-187</guid>
		<description><![CDATA[Actually, this is not at all required by double-blind submission.

Mike addresses this concern in &lt;a href=&quot;http://www.cs.umd.edu/~mwh/dbr-faq.html#a6&quot; rel=&quot;nofollow&quot;&gt;his FAQ&lt;/a&gt;:

&lt;blockquote&gt;&lt;strong&gt;Q&lt;/strong&gt;: &lt;em&gt;Am I allowed to post my (non-blinded) paper on my web page? Can I advertise the unblinded version of my paper on mailing lists or send it to colleagues? May I give a talk about my work while it is under review?&lt;/em&gt;

&lt;strong&gt;A&lt;/strong&gt;: As far as the authors&#039; publicity actions are concerned, a paper under double-blind review is largely the same as a paper under regular (single-blind) review. Double-blind reviewing should not hinder the usual communication of results.

That said, we do ask that you not attempt to deliberately subvert the double-blind reviewing process by announcing the names of the authors of your paper to the potential reviewers of your paper. It is difficult to define exactly what counts as &quot;subversion&quot; here, but some blatant examples include: sending individual e-mail to members of the PC or ERC about your work (unless they are conflicted out anyway), or posting mail to a major mailing list (e.g. TYPES) announcing your paper. On the other hand, it is perfectly fine, for example, to visit other institutions and give talks about your work, to present your submitted work during job interviews, to present your work at professional meetings (e.g. Dagstuhl), or to post your work on your web page. PC/ERC members will not be asked to recuse themselves from reviewing your paper unless they feel you have gone out of your way to advertise your authorship information to them. If you&#039;re not sure about what constitutes &quot;going out of your way&quot;, please consult directly with the Program Chair. &lt;/blockquote&gt;]]></description>
		<content:encoded><![CDATA[<p>Actually, this is not at all required by double-blind submission.</p>
<p>Mike addresses this concern in <a href="http://www.cs.umd.edu/~mwh/dbr-faq.html#a6" rel="nofollow">his FAQ</a>:</p>
<blockquote><p><strong>Q</strong>: <em>Am I allowed to post my (non-blinded) paper on my web page? Can I advertise the unblinded version of my paper on mailing lists or send it to colleagues? May I give a talk about my work while it is under review?</em></p>
<p><strong>A</strong>: As far as the authors&#8217; publicity actions are concerned, a paper under double-blind review is largely the same as a paper under regular (single-blind) review. Double-blind reviewing should not hinder the usual communication of results.</p>
<p>That said, we do ask that you not attempt to deliberately subvert the double-blind reviewing process by announcing the names of the authors of your paper to the potential reviewers of your paper. It is difficult to define exactly what counts as &#8220;subversion&#8221; here, but some blatant examples include: sending individual e-mail to members of the PC or ERC about your work (unless they are conflicted out anyway), or posting mail to a major mailing list (e.g. TYPES) announcing your paper. On the other hand, it is perfectly fine, for example, to visit other institutions and give talks about your work, to present your submitted work during job interviews, to present your work at professional meetings (e.g. Dagstuhl), or to post your work on your web page. PC/ERC members will not be asked to recuse themselves from reviewing your paper unless they feel you have gone out of your way to advertise your authorship information to them. If you&#8217;re not sure about what constitutes &#8220;going out of your way&#8221;, please consult directly with the Program Chair. </p></blockquote>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Take a Stand for Double-Blind Reviewing! by Alexandre Passos</title>
		<link>http://emeryblogger.com/2012/02/01/take-a-stand-for-double-blind-reviewing/#comment-186</link>
		<dc:creator><![CDATA[Alexandre Passos]]></dc:creator>
		<pubDate>Thu, 02 Feb 2012 02:32:31 +0000</pubDate>
		<guid isPermaLink="false">http://emeryblogger.com/?p=223#comment-186</guid>
		<description><![CDATA[One problem with double-blind (rather than single-blind) is that it prohibits people from posting their papers in their web pages and/or arXiv once the first good draft is done.

Sometimes I feel like physics and mathematics manage to move faster than computer science, ironically enough, because they embrace these technologies fuller.]]></description>
		<content:encoded><![CDATA[<p>One problem with double-blind (rather than single-blind) is that it prohibits people from posting their papers in their web pages and/or arXiv once the first good draft is done.</p>
<p>Sometimes I feel like physics and mathematics manage to move faster than computer science, ironically enough, because they embrace these technologies fuller.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Dthreads: Efficient Deterministic Multithreading by emeryberger</title>
		<link>http://emeryblogger.com/2011/07/06/dthreads-efficient-deterministic-multithreading/#comment-92</link>
		<dc:creator><![CDATA[emeryberger]]></dc:creator>
		<pubDate>Thu, 05 Jan 2012 03:55:27 +0000</pubDate>
		<guid isPermaLink="false">http://emeryblogger.wordpress.com/?p=165#comment-92</guid>
		<description><![CDATA[Hi Warren,

In short, processes share private copy-on-write mappings to memory spaces (heap &amp; globals). Dthreads hijacks all synchronization operations. Updates are committed in rounds. The PowerPoint presentation (best accompanied by the video) provides a nice overview.

Dthreads&#039; implementation is sui generis; languages with language-level determinism don&#039;t have to jump through as many hoops as we do with C/C++.

Dthreads certainly builds on related work, which we discuss in the paper.

-- Emery]]></description>
		<content:encoded><![CDATA[<p>Hi Warren,</p>
<p>In short, processes share private copy-on-write mappings to memory spaces (heap &amp; globals). Dthreads hijacks all synchronization operations. Updates are committed in rounds. The PowerPoint presentation (best accompanied by the video) provides a nice overview.</p>
<p>Dthreads&#8217; implementation is sui generis; languages with language-level determinism don&#8217;t have to jump through as many hoops as we do with C/C++.</p>
<p>Dthreads certainly builds on related work, which we discuss in the paper.</p>
<p>&#8211; Emery</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Dthreads: Efficient Deterministic Multithreading by WarrenP</title>
		<link>http://emeryblogger.com/2011/07/06/dthreads-efficient-deterministic-multithreading/#comment-89</link>
		<dc:creator><![CDATA[WarrenP]]></dc:creator>
		<pubDate>Wed, 04 Jan 2012 20:43:25 +0000</pubDate>
		<guid isPermaLink="false">http://emeryblogger.wordpress.com/?p=165#comment-89</guid>
		<description><![CDATA[This is a great idea.  Could you expand what it means to &quot;explode threads into processes&quot; some more. The  shared memory structures must mean that synchronization primitive handles are handles to these shared memory areas then?  Is this implementation for C++ roughly homomorphic to any other non-C++-language&#039;s deterministic threading capabilities? Does this approach owe anything to some other language or RTL library for some other platform?
 
Warren Postma]]></description>
		<content:encoded><![CDATA[<p>This is a great idea.  Could you expand what it means to &#8220;explode threads into processes&#8221; some more. The  shared memory structures must mean that synchronization primitive handles are handles to these shared memory areas then?  Is this implementation for C++ roughly homomorphic to any other non-C++-language&#8217;s deterministic threading capabilities? Does this approach owe anything to some other language or RTL library for some other platform?</p>
<p>Warren Postma</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Dthreads: Efficient Deterministic Multithreading by Randy MacLeod</title>
		<link>http://emeryblogger.com/2011/07/06/dthreads-efficient-deterministic-multithreading/#comment-87</link>
		<dc:creator><![CDATA[Randy MacLeod]]></dc:creator>
		<pubDate>Wed, 04 Jan 2012 18:07:35 +0000</pubDate>
		<guid isPermaLink="false">http://emeryblogger.wordpress.com/?p=165#comment-87</guid>
		<description><![CDATA[It&#039;s deadlocking on malloc in main(). 
I had a valid dot product threaded program that compile and ran fine with pthread but not dthreads. I stripped it down to the program show below. Am I doing something wrong? I could enable some debugging in heaplayers if you like.

$ g++ -Wall -fpermissive -o ../dthread-malloc.dth ../dthread-malloc.c -L. -ldthread -ldl
../dthread-malloc.c: In function ‘int main(int, char**)’:
../dthread-malloc.c:26:46: warning: cast from ‘double*’ to ‘unsigned int’ loses precision [-fpermissive]
../dthread-malloc.c:26:63: warning: cast from ‘double*’ to ‘unsigned int’ loses precision [-fpermissive]

$ LD_LIBRARY_PATH=. ltrace -f ../dthread-fail.dth 
[pid 10858] __libc_start_main(0x400758, 1, 0x7fffd39fa678, 0x400860, 0x4008f0 
[pid 10858] malloc(3200^C 
[pid 10858] --- SIGINT (Interrupt) ---
[pid 10858] +++ killed by SIGINT +++


#include 
#include 
#include 

#include 

#define NUMTHRDS 4
#define VECLEN 100

int main(int argc, char *argv[])
{
  double *a, *b;

  /* Assign storage and initialize values */
  a = (double*) malloc (NUMTHRDS*VECLEN*sizeof(double));
  b = (double*) malloc (NUMTHRDS*VECLEN*sizeof(double));
  
  if (a == NULL &#124;&#124; b == NULL) {
    perror(&quot;malloc in main.&quot;);
    exit(EXIT_FAILURE);
  }


  /* After joining, print out the results and cleanup */
  printf (&quot;a = %x, b = %x \n&quot;, (unsigned int)a, (unsigned int)b);

  free (a);
  free (b);

  exit(EXIT_SUCCESS);
}   

$ LD_LIBRARY_PATH=. gdb ../dthread-fail.dth 
GNU gdb (Ubuntu/Linaro 7.3-0ubuntu2) 7.3-2011.08
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later 
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type &quot;show copying&quot;
and &quot;show warranty&quot; for details.
This GDB was configured as &quot;x86_64-linux-gnu&quot;.
For bug reporting instructions, please see:
...
Reading symbols from /home/rmacleod/src/tools/debug/dthread-fail.dth...(no debugging symbols found)...done.
(gdb) run
Starting program: /home/rmacleod/src/tools/debug/dthread-fail.dth 
[Thread debugging using libthread_db enabled]
^C
Program received signal SIGINT, Interrupt.
__lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:136
136	../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: No such file or directory.
	in ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
(gdb) bt
#0  __lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:136
#1  0x00007ffff740a1e5 in _L_lock_883 () from /lib/x86_64-linux-gnu/libpthread.so.0
#2  0x00007ffff740a03a in __pthread_mutex_lock (mutex=0x7fff7a3cf000) at pthread_mutex_lock.c:61
#3  0x00007ffff7bcadb6 in malloc () from ./libdthread.so
#4  0x0000000000400780 in main ()
(gdb) bt full
#0  __lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:136
No locals.
#1  0x00007ffff740a1e5 in _L_lock_883 () from /lib/x86_64-linux-gnu/libpthread.so.0
No symbol table info available.
#2  0x00007ffff740a03a in __pthread_mutex_lock (mutex=0x7fff7a3cf000) at pthread_mutex_lock.c:61
        __PRETTY_FUNCTION__ = &quot;__pthread_mutex_lock&quot;
        type = 2050813952
#3  0x00007ffff7bcadb6 in malloc () from ./libdthread.so
No symbol table info available.
#4  0x0000000000400780 in main ()
No symbol table info available.
(gdb)]]></description>
		<content:encoded><![CDATA[<p>It&#8217;s deadlocking on malloc in main().<br />
I had a valid dot product threaded program that compile and ran fine with pthread but not dthreads. I stripped it down to the program show below. Am I doing something wrong? I could enable some debugging in heaplayers if you like.</p>
<p>$ g++ -Wall -fpermissive -o ../dthread-malloc.dth ../dthread-malloc.c -L. -ldthread -ldl<br />
../dthread-malloc.c: In function ‘int main(int, char**)’:<br />
../dthread-malloc.c:26:46: warning: cast from ‘double*’ to ‘unsigned int’ loses precision [-fpermissive]<br />
../dthread-malloc.c:26:63: warning: cast from ‘double*’ to ‘unsigned int’ loses precision [-fpermissive]</p>
<p>$ LD_LIBRARY_PATH=. ltrace -f ../dthread-fail.dth<br />
[pid 10858] __libc_start_main(0&#215;400758, 1, 0x7fffd39fa678, 0&#215;400860, 0x4008f0<br />
[pid 10858] malloc(3200^C<br />
[pid 10858] &#8212; SIGINT (Interrupt) &#8212;<br />
[pid 10858] +++ killed by SIGINT +++</p>
<p>#include<br />
#include<br />
#include </p>
<p>#include </p>
<p>#define NUMTHRDS 4<br />
#define VECLEN 100</p>
<p>int main(int argc, char *argv[])<br />
{<br />
  double *a, *b;</p>
<p>  /* Assign storage and initialize values */<br />
  a = (double*) malloc (NUMTHRDS*VECLEN*sizeof(double));<br />
  b = (double*) malloc (NUMTHRDS*VECLEN*sizeof(double));</p>
<p>  if (a == NULL || b == NULL) {<br />
    perror(&#8220;malloc in main.&#8221;);<br />
    exit(EXIT_FAILURE);<br />
  }</p>
<p>  /* After joining, print out the results and cleanup */<br />
  printf (&#8220;a = %x, b = %x \n&#8221;, (unsigned int)a, (unsigned int)b);</p>
<p>  free (a);<br />
  free (b);</p>
<p>  exit(EXIT_SUCCESS);<br />
}   </p>
<p>$ LD_LIBRARY_PATH=. gdb ../dthread-fail.dth<br />
GNU gdb (Ubuntu/Linaro 7.3-0ubuntu2) 7.3-2011.08<br />
Copyright (C) 2011 Free Software Foundation, Inc.<br />
License GPLv3+: GNU GPL version 3 or later<br />
This is free software: you are free to change and redistribute it.<br />
There is NO WARRANTY, to the extent permitted by law.  Type &#8220;show copying&#8221;<br />
and &#8220;show warranty&#8221; for details.<br />
This GDB was configured as &#8220;x86_64-linux-gnu&#8221;.<br />
For bug reporting instructions, please see:<br />
&#8230;<br />
Reading symbols from /home/rmacleod/src/tools/debug/dthread-fail.dth&#8230;(no debugging symbols found)&#8230;done.<br />
(gdb) run<br />
Starting program: /home/rmacleod/src/tools/debug/dthread-fail.dth<br />
[Thread debugging using libthread_db enabled]<br />
^C<br />
Program received signal SIGINT, Interrupt.<br />
__lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:136<br />
136	../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: No such file or directory.<br />
	in ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S<br />
(gdb) bt<br />
#0  __lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:136<br />
#1  0x00007ffff740a1e5 in _L_lock_883 () from /lib/x86_64-linux-gnu/libpthread.so.0<br />
#2  0x00007ffff740a03a in __pthread_mutex_lock (mutex=0x7fff7a3cf000) at pthread_mutex_lock.c:61<br />
#3  0x00007ffff7bcadb6 in malloc () from ./libdthread.so<br />
#4  0&#215;0000000000400780 in main ()<br />
(gdb) bt full<br />
#0  __lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:136<br />
No locals.<br />
#1  0x00007ffff740a1e5 in _L_lock_883 () from /lib/x86_64-linux-gnu/libpthread.so.0<br />
No symbol table info available.<br />
#2  0x00007ffff740a03a in __pthread_mutex_lock (mutex=0x7fff7a3cf000) at pthread_mutex_lock.c:61<br />
        __PRETTY_FUNCTION__ = &#8220;__pthread_mutex_lock&#8221;<br />
        type = 2050813952<br />
#3  0x00007ffff7bcadb6 in malloc () from ./libdthread.so<br />
No symbol table info available.<br />
#4  0&#215;0000000000400780 in main ()<br />
No symbol table info available.<br />
(gdb)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Dthreads: Efficient Deterministic Multithreading by emeryberger</title>
		<link>http://emeryblogger.com/2011/07/06/dthreads-efficient-deterministic-multithreading/#comment-86</link>
		<dc:creator><![CDATA[emeryberger]]></dc:creator>
		<pubDate>Wed, 04 Jan 2012 12:20:49 +0000</pubDate>
		<guid isPermaLink="false">http://emeryblogger.wordpress.com/?p=165#comment-86</guid>
		<description><![CDATA[Hi,

Please send us your test program that appeared to deadlock. Thanks!]]></description>
		<content:encoded><![CDATA[<p>Hi,</p>
<p>Please send us your test program that appeared to deadlock. Thanks!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Dthreads: Efficient Deterministic Multithreading by emeryberger</title>
		<link>http://emeryblogger.com/2011/07/06/dthreads-efficient-deterministic-multithreading/#comment-85</link>
		<dc:creator><![CDATA[emeryberger]]></dc:creator>
		<pubDate>Wed, 04 Jan 2012 12:20:05 +0000</pubDate>
		<guid isPermaLink="false">http://emeryblogger.wordpress.com/?p=165#comment-85</guid>
		<description><![CDATA[Thread updates proceed in epochs: currently, Dthreads commits each thread&#039;s updates deterministically at synchronization points (thread create / join / end, lock acquire / release, condition variable wait / signal / broadcast).]]></description>
		<content:encoded><![CDATA[<p>Thread updates proceed in epochs: currently, Dthreads commits each thread&#8217;s updates deterministically at synchronization points (thread create / join / end, lock acquire / release, condition variable wait / signal / broadcast).</p>
]]></content:encoded>
	</item>
</channel>
</rss>

