<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Armando Fox &#187; parallel language programming</title>
	<atom:link href="http://www.armandofox.com/geek/category/parallel-language-programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.armandofox.com/geek</link>
	<description>A breadth-first traversal of life</description>
	<lastBuildDate>Thu, 02 Feb 2012 23:36:57 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Some undergrad projects in bridging efficiency &amp; productivity layers</title>
		<link>http://www.armandofox.com/geek/2009/08/some-undergrad-projects-in-bridging-efficiency-productivity-layers/</link>
		<comments>http://www.armandofox.com/geek/2009/08/some-undergrad-projects-in-bridging-efficiency-productivity-layers/#comments</comments>
		<pubDate>Tue, 11 Aug 2009 21:16:45 +0000</pubDate>
		<dc:creator>fox</dc:creator>
				<category><![CDATA[SWDYFORPs]]></category>
		<category><![CDATA[parallel language programming]]></category>

		<guid isPermaLink="false">http://www.armandofox.com/geek/?p=222</guid>
		<description><![CDATA[Relative to our current work on SEJITS, autotuning, and &#8220;frictionless high performance software&#8221;:

Start an autotuning DB for use by SEJITS as well as manual use. Challenge is to determine a schema for this info that could be used both for human queries and machine queries (eg via XMLRPC). Each time an autotuning parameter set is [...]]]></description>
			<content:encoded><![CDATA[<p>Relative to our current work on SEJITS, autotuning, and &#8220;frictionless high performance software&#8221;:</p>
<ul>
<li>Start an autotuning DB for use by SEJITS as well as manual use. Challenge is to determine a schema for this info that could be used both for human queries and machine queries (eg via XMLRPC). Each time an autotuning parameter set is determined, add it to the DB.</li>
<li>Use Archana&#8217;s and Kristal&#8217;s KCCA algorithms as as test case for &#8220;frictionless&#8221;.  They are sparse-matrix eigenvalue solver problems.</li>
<li>SEJITS: take Andrew Ng et al&#8217;s paper on mapping a variety of SML algorithms to &#8220;summation form&#8221; for GPU execution, and apply SEJITS to those computations.</li>
<li>SEJITS: look at LAWN 223 (Cholesky factorization on GPU) and encapsulate it in a specializer.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.armandofox.com/geek/2009/08/some-undergrad-projects-in-bridging-efficiency-productivity-layers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>STM panel at MS Research Fac Summit 07</title>
		<link>http://www.armandofox.com/geek/2007/07/stm-panel-at-ms-research-fac-summit-07/</link>
		<comments>http://www.armandofox.com/geek/2007/07/stm-panel-at-ms-research-fac-summit-07/#comments</comments>
		<pubDate>Mon, 16 Jul 2007 21:24:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[parallel language programming]]></category>

		<guid isPermaLink="false">http://radlab.cs.berkeley.edu/people/fox/wp/?p=3</guid>
		<description><![CDATA[There&#8217;s no consensus currently in language community on how to
&#8220;approach&#8221; STM: libraries only?  extend existing lang?  new lang?  use
it to improve implementation of existing abstractions in existing
langs, or need new lang to express abstractions uniquely matched to the
use of STM?
TRANSACT workshops at PODC, PPoPP may be worth keeping an eye on from
PARlab [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s no consensus currently in language community on how to<br />
&#8220;approach&#8221; STM: libraries only?  extend existing lang?  new lang?  use<br />
it to improve implementation of existing abstractions in existing<br />
langs, or need new lang to express abstractions uniquely matched to the<br />
use of STM?</p>
<p>TRANSACT workshops at PODC, PPoPP may be worth keeping an eye on from<br />
PARlab perspective.  (www.cs.rochester.edu/meetings/TRANSACT07) ;<br />
TRANSACT08 will be colocated with HPCA-14/PPoPP in Salt Lake City</p>
<p>Christos: features like iterators, retry, abstract locks, etc being<br />
exposed to HLLs and implemented using STM.  (Analogy: datbase<br />
&#8220;programmers&#8221; think about atomicity  but program in SQL)</p>
<p>Implicit hypothesis: STM programming langs/models will be declarative,<br />
more like SQL than like Java</p>
<p>I/O within STM: better idea might be system level txns, coordinate txns<br />
across multiple resources.  (Quicksilver did this but was hairy)</p>
<p>Christos: not enough exp. yet with STM to have tried to solve all the<br />
parallelism problems it could potentially solve.</p>
<p>Good news; STM useful for more than managing concurrency.  eg: debugging<br />
(deterministic replay), profiling/tuning (contention/locality<br />
monitoring), security (isolation), F/T&#8230;maybe these will be &#8220;killer<br />
apps&#8221; for STM?  (=&gt; maybe, but doesn&#8217;t nec. help manycore research)</p>
<p>Maurice Herlihy: interested in integrating STM with *managed* languages<br />
(implicit memory mgt, bounds checking, etc) =&gt; discuss synchronization<br />
at object level, not addresses or other low-level structures</p>
<p>Declare a class or obj as &#8216;atomic&#8217;- compiler (Phoenix) does whole-object<br />
dataflow analysis to figure out where STM can be used to enforce</p>
<p>&#8220;Libraries either low-oevrhead but hard to use, or inefficient but easy<br />
to use; compiler support combines best of both worlds including the<br />
opportunity for nonlocal optimization&#8221;</p>
<p>Mike Scott, U Rochester: RSTM library (result of 3+ yrs doing TM<br />
libraries for Java, C&#8230;) + Delaunay mesh app</p>
<p>&#8220;Smart pointer&#8221; API (callback at initialize &amp; dereference; design<br />
pattern from C++).  Needed because you want to be able to distinguish<br />
between initial &amp; subsequent accesses (in a STM environment).</p>
<p>Can also check for conditions like trying to access a txnl object<br />
outside of txn code.</p>
<p>&#8220;Programming model provided by library doomed to be too cumbersome for<br />
naive users&#8230;compiler support will be essential for<br />
semantics/programmer understandability as well<br />
as performance&#8221;</p>
<p>&#8220;Awkwardnesses&#8221; such as having to define accessors (in C++; C# avoids<br />
this, as does Ruby)</p>
<p>Can&#8217;t share code templates between txnl and non-txnl code (due to<br />
explicit labeling of txnl types)  &#8211; so can&#8217;t share code.  (Ruby &#8220;duck<br />
typing&#8221; might solve this!)</p>
<p>Can&#8217;t use this-&gt; dereference for typing reasons (have to explicitly pass<br />
a smartpointer to a method&#8230;.ugh)</p>
<p>These things could be fixed in a compiler &#8211; but not in a library.<br />
(except in Ruby, whre Modules might serve?)</p>
<p>Deeper challenges that can&#8217;t be plastered over by compiler:</p>
<p>What reverts when you abort a txn?  In library approach, only the things<br />
labeled as txn are rolled back.  Other stuff doesn&#8217;t.  Major gotcha<br />
because goes against your intuition of how txn abort &#8220;should&#8221; work.</p>
<p>Class-level txn typing probably will be obsoleted by per-object.</p>
<p>FORTRESS &#8211; a new lang design (from Sun?) that emphasizes &#8220;high level<br />
control constructs&#8221; like Mapreduce that are tightly integrated with<br />
transactional support in those languages, but also designed as a<br />
&#8220;FORTRAN replacement&#8221; for manycore scientific programming</p>
<p>http://www.pervasivedatarush.com/node/42</p>
<p>From a critique/summary of FORTRESS:<br />
&#8220;I am not convinced Fortress will be a better foundation for DSELs than<br />
a functional language like Scheme or Haskell. In both of these<br />
languages, any code you write seems to be a very natural extension of<br />
the provided base language. Fortress allows arbitrary specification of<br />
its abstract syntax, but in a way that does not feel as natural and<br />
simplistic. &#8221;</p>
<p>From another commentary &#8211; this echoes my own view:</p>
<p>http://alblue.blogspot.com/2007/06/programming-languages-and-multi-core.html</p>
<p>&#8220;Maybe what&#8217;s needed is parallelism at a higher level. Instead of<br />
insisting on a functional language through-and-through, it may be<br />
possible to do some parts in a functional style but then break that (in<br />
a controlled way) in smaller segments.&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.armandofox.com/geek/2007/07/stm-panel-at-ms-research-fac-summit-07/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

