<?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>Stefan-Marr.de &#187; VMs</title>
	<atom:link href="http://soft.vub.ac.be/~smarr/tag/vms/feed/" rel="self" type="application/rss+xml" />
	<link>http://soft.vub.ac.be/~smarr</link>
	<description>personal and research notes</description>
	<lastBuildDate>Tue, 24 Jan 2012 18:41:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Modularity and Conventions for Maintainable Concurrent Language Implementations: A Review of Our Experiences and Practices</title>
		<link>http://soft.vub.ac.be/~smarr/2012/01/modularity-and-conventions-for-maintainable-concurrent-language-implementations-a-review-of-our-experiences-and-practices/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=modularity-and-conventions-for-maintainable-concurrent-language-implementations-a-review-of-our-experiences-and-practices</link>
		<comments>http://soft.vub.ac.be/~smarr/2012/01/modularity-and-conventions-for-maintainable-concurrent-language-implementations-a-review-of-our-experiences-and-practices/#comments</comments>
		<pubDate>Tue, 24 Jan 2012 11:30:37 +0000</pubDate>
		<dc:creator>Stefan</dc:creator>
				<category><![CDATA[Research]]></category>
		<category><![CDATA[Case Study]]></category>
		<category><![CDATA[concurrency]]></category>
		<category><![CDATA[Experience Report]]></category>
		<category><![CDATA[MISS Workshop]]></category>
		<category><![CDATA[Modularity]]></category>
		<category><![CDATA[Virtual Machines]]></category>
		<category><![CDATA[VMs]]></category>

		<guid isPermaLink="false">http://soft.vub.ac.be/~smarr/?p=521</guid>
		<description><![CDATA[Modularity: AOSD&#8217;12 will be in Potsdam at the end of March, and I am looking forward especially to the MISS&#8217;12 workshop. My understanding of the workshop&#8217;s format is that its goal is to encourage the participants to actively interact. Far to often, workshops are just a collection of semi-related presentations, without a common problem and [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://aosd.net/2012/">Modularity: AOSD&#8217;12</a> will be in Potsdam at the end of March, and I am looking forward especially to the <a href="http://www.aosd.net/workshops/miss/2012/">MISS&#8217;12 workshop</a>.</p>

<p>My understanding of the workshop&#8217;s format is that its goal is to encourage the participants to actively interact. Far to often, workshops are just a collection of semi-related presentations, without a common problem and without a common goal. I fear a bit, the MISS workshop will have a similar problem. Being part of the program committee, I have seen all the submissions and the author do tend to prefer <em>business as usual</em> over actual position papers. From my perspective, this is really a pity. It is a lost chance to really exchange ideas actively and perhaps start collaborations with interesting people. A technical paper, with a few ideas and a work-in-progress prototype does not qualify as a position paper in my opinion. Usually, that kind of work only encourages discussion between people that have been working on similar things already. But let&#8217;s see how it turns out.</p>

<p>Our contribution to the workshop is a little experience report on how concurrency and modularity are related to each other in interpreter implementations. And, to make it short: modularity does matter to manage concurrency invariants, but things like AOP are far less important than some people might hope.</p>

<p><strong>Abstract</strong></p>
<blockquote>
<p>In this paper, we review what we have learned from implementing languages for
parallel and concurrent programming, and investigate the role of modularity.
To identify the approaches used to facilitate correctness and maintainability,
we ask the following questions: What guides modularization? Are informal
approaches used to facilitate correctness? Are concurrency concerns
modularized? And, where is language support lacking most?</p>

<p>Our subjects are AmbientTalk, SLIP, and the RoarVM. All three evolved over the
years, enabling us to look back at specific experiments to understand the
impact of concurrency on modularity.</p>

<p>We conclude from our review that concurrency concerns are one of the strongest
drivers for the definition of module boundaries. It helps when languages offer
sophisticated modularization constructs. However, with respect to concurrency,
other language features like single-assignment are of greater importance.
Furthermore, tooling that enables remodularization taking concurrency
invariants into account would be of great value.</p></blockquote>
<ul>
	<li>Modularity and Conventions for Maintainable Concurrent Language Implementations: A Review of Our Experiences and Practices, <em>Stefan Marr</em>, <em>Jens Nicolay</em>, <em>Tom Van Cutsem</em>, <em>Theo D&#8217;Hondt</em>, Proceedings of the 2nd Workshop on  Modularity In Systems Software (MISS&#8217;2012), ACM (2012), to appear.</li>
	<li>Paper: <a title="Modularity and Conventions for Maintainable Concurrent Language Implementations: A Review of Our Experiences and Practices" href="http://soft.vub.ac.be/~smarr/downloads/miss12-smarr-et-al-modularity-and-conventions-for-maintainable-concurrent-language-implementations.pdf">PDF</a><br /> ©ACM, 2012. This is the author&#8217;s version of the work. It is posted here by permission of ACM for your personal use. Not for redistribution. To appear.</li>
	<li>BibTex: <a href="http://www.bibsonomy.org/bibtex/2442f0063842536e3628d10a4244620b6/gron">BibSonomy</a></li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://soft.vub.ac.be/~smarr/2012/01/modularity-and-conventions-for-maintainable-concurrent-language-implementations-a-review-of-our-experiences-and-practices/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Towards an Actor-based Concurrent Machine Model</title>
		<link>http://soft.vub.ac.be/~smarr/2010/02/towards-an-actor-based-concurrent-machine-model/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=towards-an-actor-based-concurrent-machine-model</link>
		<comments>http://soft.vub.ac.be/~smarr/2010/02/towards-an-actor-based-concurrent-machine-model/#comments</comments>
		<pubDate>Sat, 20 Feb 2010 23:19:08 +0000</pubDate>
		<dc:creator>Stefan</dc:creator>
				<category><![CDATA[Research]]></category>
		<category><![CDATA[Actors]]></category>
		<category><![CDATA[concurrency]]></category>
		<category><![CDATA[Manycore]]></category>
		<category><![CDATA[multicore]]></category>
		<category><![CDATA[paper]]></category>
		<category><![CDATA[Smalltalk]]></category>
		<category><![CDATA[Virtual Machines]]></category>
		<category><![CDATA[VMs]]></category>
		<category><![CDATA[workshop]]></category>

		<guid isPermaLink="false">http://soft.vub.ac.be/~smarr/?p=289</guid>
		<description><![CDATA[Already quite a while ago, I was involved in writing a workshop paper about an actor model for virtual machines. Actually, the main idea was to find a concurrency model for a VM which supports multi-dimensional separation of concerns. However, AOP is not that interesting for me at the moment, so I am focussing on [...]]]></description>
			<content:encoded><![CDATA[<p>Already quite a while ago, I was involved in writing a workshop paper about an actor model for virtual machines. Actually, the main idea was to find a concurrency model for a VM which supports multi-dimensional separation of concerns. However, AOP is not that interesting for me at the moment, so I am focussing on the concurrency, especially the actor-based VM model.</p>
<p>After one year, I am back looking at that paper, and it still looks like a great model. Think, I will incorporate it into my manycore VM now <img src='http://soft.vub.ac.be/~smarr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h3>Abstract</h3>
<blockquote>
<p>In this position paper we propose to extend an existing delegation-based machine model with concurrency primitives. The original machine model which is built on the concepts of objects, messages, and delegation, provides support for languages enabling multi-dimensional separation of concerns (MDSOC). We propose to extend this model with an actor-based concurrency model, allowing for both true parallelism as well as lightweight concurrency primitives such as coroutines. In order to demonstrate its expressiveness, we informally describe how three high-level languages supporting different concurrency models can be mapped onto our extended machine model. We also provide an outlook on the extended model&#8217;s potential to support concurrency-related MDSOC features.</p></blockquote>
<ul>
	<li>Towards an Actor-based Concurrent Machine Model, <em>Hans Schippers, Tom Van Cutsem, Stefan Marr, Michael Haupt, Robert Hirschfeld</em>, Proceedings of the fourth workshop on the Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems (ICOOOLPS), New York, NY, USA, ACM (2009), p. 4&#8211;9.</li>
	<li>Paper: <a title="Towards an Actor-based Concurrent Machine Model" href="http://soft.vub.ac.be/~smarr/downloads/icooolps09-schippers.pdf">PDF</a><br /> ©ACM, 2009. This is the author&#8217;s version of the work. It is posted here by permission of ACM for your personal use. Not for redistribution. The definitive version was published in ICOOOLPS’09 July 6, 2009, Genova, Italy. <a href="http://doi.acm.org/10.1145/1565824.1565825">http://doi.acm.org/10.1145/1565824.1565825</a></li>
	<li>BibTex: <a href="http://www.bibsonomy.org/bibtex/243d4b86261eac5a70d28160c493e70d1/gron">BibSonomy</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://soft.vub.ac.be/~smarr/2010/02/towards-an-actor-based-concurrent-machine-model/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Virtual Machine Support for Many-Core Architectures: Decoupling Abstract from Concrete Concurrency Models</title>
		<link>http://soft.vub.ac.be/~smarr/2010/02/virtual-machine-support-for-many-core-architectures-decoupling-abstract-from-concrete-concurrency-models/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=virtual-machine-support-for-many-core-architectures-decoupling-abstract-from-concrete-concurrency-models</link>
		<comments>http://soft.vub.ac.be/~smarr/2010/02/virtual-machine-support-for-many-core-architectures-decoupling-abstract-from-concrete-concurrency-models/#comments</comments>
		<pubDate>Sun, 07 Feb 2010 21:37:42 +0000</pubDate>
		<dc:creator>Stefan</dc:creator>
				<category><![CDATA[Research]]></category>
		<category><![CDATA[Actors]]></category>
		<category><![CDATA[Bytecode]]></category>
		<category><![CDATA[concurrency]]></category>
		<category><![CDATA[CSOM]]></category>
		<category><![CDATA[Intermediate Languages]]></category>
		<category><![CDATA[locks]]></category>
		<category><![CDATA[Position Paper]]></category>
		<category><![CDATA[STM]]></category>
		<category><![CDATA[threads]]></category>
		<category><![CDATA[Virtual Machines]]></category>
		<category><![CDATA[VMs]]></category>

		<guid isPermaLink="false">http://soft.vub.ac.be/~smarr/?p=282</guid>
		<description><![CDATA[Finally, my first workshop paper got published, which was a little odyssey with some misunderstandings, but anyway, now it is out. It is just a position paper, thus, do not expect to many insights. However, what it describes is my big plan, and hopefully the story of my PhD. Am working on it&#8230; Abstract The upcoming [...]]]></description>
			<content:encoded><![CDATA[<p>Finally, my first workshop paper got published, which was a little odyssey with some misunderstandings, but anyway, now it is out. It is just a position paper, thus, do not expect to many insights. However, what it describes is my big plan, and hopefully the story of my PhD. Am working on it&#8230;</p>
<h3>Abstract</h3>
<blockquote>
<p>The upcoming many-core architectures require software developers to exploit concurrency to utilize available computational power. Today&#8217;s high-level language virtual machines (VMs), which are a cornerstone of software development, do not provide sufficient abstraction for concurrency concepts. We analyze concrete and abstract concurrency models and identify the challenges they impose for VMs. To provide sufficient concurrency support in VMs, we propose to integrate concurrency operations into VM instruction sets.</p>
<p>Since there will always be VMs optimized for special purposes, our goal is to develop a methodology to design instruction sets with concurrency support. Therefore, we also propose a list of trade-offs that have to be investigated to advise the design of such instruction sets.</p>
<p>As a first experiment, we implemented one instruction set extension for shared memory and one for non-shared memory concurrency. From our experimental results, we derived a list of requirements for a full-grown experimental environment for further research.</p></blockquote>
<ul>
	<li>Paper: <a title="Virtual Machine Support for Many-Core Architectures: Decoupling Abstract from Concrete Concurrency Models" href="http://arxiv.org/pdf/1002.0939v1">PDF</a></li>
	<li>EPTCS: <a href="http://cgi.cse.unsw.edu.au/~rvg/eptcs/content.cgi?PLACES2009">Proceedings Second International Workshop on  Programming Language Approaches to Concurrency and Communication-cEntric Software</a></li>
	<li>BibTex: <a href="http://www.bibsonomy.org/bibtex/288f7f1a18d61f2db356e0658d392215c/gron">BibSonomy</a></li>
</ul>
<h3>Slides of the Talk at PLACES09</h3>
<div id="__ss_1872959" style="width: 425px; text-align: left;"><object style="margin:0px" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=places-090817140006-phpapp01&amp;rel=0&amp;stripped_title=virtual-machine-support-for-manycore-architectures-decoupling-abstract-from-concrete-concurrency-models" /><param name="allowfullscreen" value="true" /><embed style="margin:0px" type="application/x-shockwave-flash" width="425" height="355" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=places-090817140006-phpapp01&amp;rel=0&amp;stripped_title=virtual-machine-support-for-manycore-architectures-decoupling-abstract-from-concrete-concurrency-models" allowscriptaccess="always" allowfullscreen="true"></embed></object></div>
]]></content:encoded>
			<wfw:commentRss>http://soft.vub.ac.be/~smarr/2010/02/virtual-machine-support-for-many-core-architectures-decoupling-abstract-from-concrete-concurrency-models/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Theory and Practice of Language Implementation, part 2</title>
		<link>http://soft.vub.ac.be/~smarr/2009/08/theory-and-practice-of-language-implementation-part-2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=theory-and-practice-of-language-implementation-part-2</link>
		<comments>http://soft.vub.ac.be/~smarr/2009/08/theory-and-practice-of-language-implementation-part-2/#comments</comments>
		<pubDate>Mon, 03 Aug 2009 05:17:21 +0000</pubDate>
		<dc:creator>Stefan</dc:creator>
				<category><![CDATA[Research]]></category>
		<category><![CDATA[bounds]]></category>
		<category><![CDATA[interpreter]]></category>
		<category><![CDATA[locks]]></category>
		<category><![CDATA[loops]]></category>
		<category><![CDATA[threads]]></category>
		<category><![CDATA[TPLI]]></category>
		<category><![CDATA[VMs]]></category>

		<guid isPermaLink="false">http://soft.vub.ac.be/~smarr/?p=240</guid>
		<description><![CDATA[The second part of the summer school was a bit more applied and more in the direction of my own interests. Chandra Krintz talked about managed runtime environments. Yannis Smaragdakis introduced multi-threaded programming and transactional memory. Sumit Gulwani as the third lecturer taught us symbolic bounds computation. As a cherry on the cake, Oliver Danvy [...]]]></description>
			<content:encoded><![CDATA[<p>The second part of the <a href="http://www.cs.uoregon.edu/research/summerschool/summer09/">summer school</a> was a bit more applied and more in the direction of my own interests. <a href="http://www.cs.ucsb.edu/~ckrintz/">Chandra Krintz</a> talked about managed runtime environments. <a href="http://www.cs.umass.edu/~yannis/">Yannis Smaragdakis</a> introduced multi-threaded programming and transactional memory. <a href="http://research.microsoft.com/en-us/um/people/sumitg/">Sumit Gulwani</a> as the third lecturer taught us symbolic bounds computation.</p>
<p>As a cherry on the cake, Oliver Danvy talked about general <a href="http://www.brics.dk/~danvy/">tips and tricks</a> for PhD students.</p>
<h3>Managed Runtime Environments: Implementations and Opportunities</h3>
<p>The <a href="http://www.cs.uoregon.edu/research/summerschool/summer09/curriculum.html#krintz">content-part of her lecture</a> started with an overview of how VMs execute programs. Well, as usual, it was limited to Java, Python, and Ruby. This gives me the feeling, that there are only very few people looking into the similarities between runtimes for functional and imperative languages. She talked about stack-based VM instruction sets and briefly mentioned register-based as well as register-memory-based designs, but mainly referring to CPU instruction set architectures. Interpretation techniques, just-in-time compilation, problems associated with profiling and instrumentation had been discussed, but neither of them in detail.</p>
<p>One topic, she was spending more time on was her own research, i.e., communication between independent JVM instances via shared memory. It was interesting, especially her approach to share classes between the VM instances by using shared pages and direct pointers from the instances.</p>
<p>The last lecture was a broad overview of cloud computing, available techniques and the current challenges, but not really technical.</p>
<h3>Multi-Threaded Programming and Transactional Memory</h3>
<p>Yannies gave more or less a <a href="http://www.cs.uoregon.edu/research/summerschool/summer09/curriculum.html#smaragdakis">hands-on introduction to locks and threads</a> with programming examples/exercises. From the poll in the audience, there are actually people, which never have used threads before. I thought this is just one of the assumptions professors usually get wrong, but well… From my point of view, I have heard a lot of it already before, but it was still nice to be reminded of some of the details we discussed. The primitives for monitor-style/traditional shared-memory concurrency he identified were lock/unlock, wait, signal, and broadcast. They allow building any kind of more complex critical sections on top.</p>
<p>The basic points he emphasized are to use while-loops on all conditions and the rule for single signals vs. broadcast signals. In short, a single signal, i.e., a notify, can only be used when all threads waiting on a condition are equal, but only one at a time can make progress. If more then one can make progress, a broadcast, i.e., a notifyAll has to be used to avoid livelocks.</p>
<p>After some typical examples of problems with locks, for instance, locking order leading to deadlocks, he introduced transactional memory. His focus was on the implications of this programming model, the different variations, performance questions, and the problem of irreversible operations.</p>
<h3>Art of Invariant Generation applied to Symbolic Bound Computation</h3>
<p>The <a href="http://www.cs.uoregon.edu/research/summerschool/summer09/curriculum.html#gulwani">computation of bounds for e.g. loops</a> has a broad range of applications. The knowledge about bounds allows estimating the necessary runtime or memory utilization, thus in general resource utilization. Furthermore, it can be used to identify secrecy properties in terms of information leakage due to repetitive patterns and problems of robustness due to errors and uncertainty for instance introduced by rounding.</p>
<p>After a short introduction and a simple example, he introduced a countless number of approaches to this problem and explained how to apply them to specific problems. His lectures was stuffed with a lot of content, think much more then any other lecturer tried to convey. Moreover, he managed to speak with an incredible speak. Have never heard someone before, putting an infinite number of words into one minute. Sometimes less is more…</p>
<h3>Edutainment for the Night Lecture</h3>
<p>Oliver was giving a <a href="http://www.brics.dk/~danvy/Papers/practical-PhD-requirements-2007.pdf">Tips and Tricks</a> lecture about being a PhD student, writing and reviewing papers, and giving talks. Presented in a quite entertaining style <img src='http://soft.vub.ac.be/~smarr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://soft.vub.ac.be/~smarr/2009/08/theory-and-practice-of-language-implementation-part-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

