<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://homeostasis.scs.carleton.ca/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Taisia</id>
	<title>Soma-notes - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://homeostasis.scs.carleton.ca/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Taisia"/>
	<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php/Special:Contributions/Taisia"/>
	<updated>2026-06-02T21:07:42Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=MapReduce,_Globus,_BOINC&amp;diff=1823</id>
		<title>MapReduce, Globus, BOINC</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=MapReduce,_Globus,_BOINC&amp;diff=1823"/>
		<updated>2008-03-26T19:50:39Z</updated>

		<summary type="html">&lt;p&gt;Taisia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Readings==&lt;br /&gt;
&lt;br /&gt;
[http://homeostasis.scs.carleton.ca/~soma/distos/2008-03-24/foster-grid.pdf Ian Foster and Carl Kesselman, &amp;quot;Computational Grids&amp;quot; (1998)]&lt;br /&gt;
&lt;br /&gt;
[http://homeostasis.scs.carleton.ca/~soma/distos/2008-03-24/foster-globus-intro.pdf Ian Foster, &amp;quot;Globus Toolkit Version 4: Software for Service-Oriented Systems&amp;quot; (2006)]&lt;br /&gt;
&lt;br /&gt;
[http://homeostasis.scs.carleton.ca/~soma/distos/2008-03-24/anderson-boinc.pdf David P. Anderson, &amp;quot;BOINC: A System for Public-Resource Computing and Storage&amp;quot; (2004)]&lt;br /&gt;
&lt;br /&gt;
[http://homeostasis.scs.carleton.ca/~soma/distos/2008-03-24/mapreduce-osdi04.pdf Jeffrey Dean and Sanjay Ghemawat, &amp;quot;MapReduce: Simpliﬁed Data Processing on Large Clusters&amp;quot; (2004)]&lt;br /&gt;
&lt;br /&gt;
Paper mentioned in class:&lt;br /&gt;
&lt;br /&gt;
[http://www.eecs.berkeley.edu/Pubs/TechRpts/2006/EECS-2006-183.pdf Krste Asanovíc, et al, &amp;quot;The Landscape of Parallel Computing Research: A View from Berkeley&amp;quot; (2006)]&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
===Globus===&lt;br /&gt;
*Ony in release 4 they implemented Web services. &lt;br /&gt;
*Its an API.&lt;br /&gt;
*Globus you build an applications on top of existing framework. More like an interface to your application, other than something your application will use internally.&lt;br /&gt;
&lt;br /&gt;
*Seems programmer friendly, though possibly unwieldy and too complex.&lt;br /&gt;
**Arguably the state of modern programming.&lt;br /&gt;
***Using a complex set of APIs, not actually just a simple new language.&lt;br /&gt;
***Just a new API to learn, Globus is this way too.&lt;br /&gt;
&lt;br /&gt;
*Is this ok? Is this enough? Should we be expecting more from such a network?&lt;br /&gt;
**Some systems based their environment on the POSIX API – making the transition very easy.&lt;br /&gt;
**There are a LOT of API calls required for this system, why not a simpler API?&lt;br /&gt;
&lt;br /&gt;
*What was NOT in this paper?&lt;br /&gt;
**No example code&lt;br /&gt;
**No comparison (even to previous versions!)&lt;br /&gt;
**No evaluation/metrics/performance&lt;br /&gt;
**Was this a marketing document?&lt;br /&gt;
&lt;br /&gt;
*Side reports?&lt;br /&gt;
**AWEFUL! &lt;br /&gt;
**Wait a second… using XML in a grid computing environment? How SLOWWWWWWW&lt;br /&gt;
&lt;br /&gt;
*Brought together by the Globus Alliance&lt;br /&gt;
**An effort to provide a standard&lt;br /&gt;
**In essence done by committee… meaning that people aren’t necessarily using it as it is developed, and priorities are skewed to marketable specs rather than performance metrics.&lt;br /&gt;
&lt;br /&gt;
===BOINC===&lt;br /&gt;
*Premise?  Local client on your machine downloads a &#039;workunit&#039;, churns the data, dumps the results and downloads a new &#039;workunit&#039;&lt;br /&gt;
*Why are we caring?&lt;br /&gt;
**Entertainment?&lt;br /&gt;
**How is this an OS paradigm?  What is it useful for?&lt;br /&gt;
***It isn&#039;t really an OS, just a method to have your mass computation done&lt;br /&gt;
***More of a distributed scheduler?&lt;br /&gt;
****Not even, central scheduler, but mass computation&lt;br /&gt;
***How many systems have we seen that have accomplished mass computation on millions of uncontrolled computers?&lt;br /&gt;
****ummm... none?&lt;br /&gt;
***As an OS?&lt;br /&gt;
****An OS is something that is created to run programs&lt;br /&gt;
****This is a special case allowing us to run specific programs (BUT IS IT AN OS?)&lt;br /&gt;
***Useful for &amp;quot;embarassingly parallel programs&amp;quot;&lt;br /&gt;
*Perfect for large scale simulation?&lt;br /&gt;
**But then you need LOTS of communication, and this system does not have interconnects&lt;br /&gt;
*The type of problems that we most care about tend not to be THAT parallel&lt;br /&gt;
&lt;br /&gt;
*So what would a distributed OS be for?&lt;br /&gt;
**Shared communication!&lt;br /&gt;
***But we don&#039;t have much in the way that works well.&lt;br /&gt;
*An OS typically provides a lot of services, together in one package&lt;br /&gt;
**We have been seeing that there are no complete packages, just pieces and parts.  Why?&lt;br /&gt;
***Computers are changing too fast?  Same *NIX OS, same TCP/IP stack... so more of the same, why no true solution?&lt;br /&gt;
***Communication is unreliable? Yes, but that is also nothing new&lt;br /&gt;
&lt;br /&gt;
*If people found that distributed file systems were successful, they would be in use all the time, but they aren&#039;t.  Reason? PERFORMANCE&lt;br /&gt;
&lt;br /&gt;
*Take away message?&lt;br /&gt;
*Can&#039;t handle communication - how do you abstract access to resources when driven through a network?&lt;br /&gt;
**As a result, we have many many specialized solutions for particular workloads.&lt;br /&gt;
*If you are willing to not have communication between nodes, you gain a HUGE amount of computation.&lt;br /&gt;
&lt;br /&gt;
*The most reliable systems are the one that forget communication.&lt;br /&gt;
**The more you system tolerates bad stuff with a network, the better is scales.&lt;br /&gt;
&lt;br /&gt;
*We dont have general cluster distributed OS.&lt;br /&gt;
&lt;br /&gt;
===MapReduce===&lt;br /&gt;
*The communication happens when you reduce the problem. &lt;br /&gt;
**MapReduce works because there is mapping and there is reducing.&lt;br /&gt;
***There is no side effects (enabling things).&lt;br /&gt;
*Why is it a good fit to a thousands of machines?&lt;br /&gt;
**They first had all these pieces, and if one of them does not replay, then they just do it over :)&lt;br /&gt;
***You create the algorithm to fit this model, create this pieces, you have a combining function.&lt;br /&gt;
****You have to have some back end that keeps track of who got work done. But you don&#039;t care if any machine fail in the middle of the computation.&lt;br /&gt;
*Compare MapReduce to POSIX&lt;br /&gt;
**The difference is in efficiency. MapReduce is an extension to POSIX.&lt;br /&gt;
***Distributed OSs trying to run the programs that run on different APIs. The systems that work, they are relaxed.&lt;br /&gt;
****Here is the model, loose compatibility by gaining scalability.&lt;br /&gt;
*Side effects - you cant redo and undo. Functional programming model&lt;/div&gt;</summary>
		<author><name>Taisia</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=MapReduce,_Globus,_BOINC&amp;diff=1822</id>
		<title>MapReduce, Globus, BOINC</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=MapReduce,_Globus,_BOINC&amp;diff=1822"/>
		<updated>2008-03-26T19:38:25Z</updated>

		<summary type="html">&lt;p&gt;Taisia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Readings==&lt;br /&gt;
&lt;br /&gt;
[http://homeostasis.scs.carleton.ca/~soma/distos/2008-03-24/foster-grid.pdf Ian Foster and Carl Kesselman, &amp;quot;Computational Grids&amp;quot; (1998)]&lt;br /&gt;
&lt;br /&gt;
[http://homeostasis.scs.carleton.ca/~soma/distos/2008-03-24/foster-globus-intro.pdf Ian Foster, &amp;quot;Globus Toolkit Version 4: Software for Service-Oriented Systems&amp;quot; (2006)]&lt;br /&gt;
&lt;br /&gt;
[http://homeostasis.scs.carleton.ca/~soma/distos/2008-03-24/anderson-boinc.pdf David P. Anderson, &amp;quot;BOINC: A System for Public-Resource Computing and Storage&amp;quot; (2004)]&lt;br /&gt;
&lt;br /&gt;
[http://homeostasis.scs.carleton.ca/~soma/distos/2008-03-24/mapreduce-osdi04.pdf Jeffrey Dean and Sanjay Ghemawat, &amp;quot;MapReduce: Simpliﬁed Data Processing on Large Clusters&amp;quot; (2004)]&lt;br /&gt;
&lt;br /&gt;
Paper mentioned in class:&lt;br /&gt;
&lt;br /&gt;
[http://www.eecs.berkeley.edu/Pubs/TechRpts/2006/EECS-2006-183.pdf Krste Asanovíc, et al, &amp;quot;The Landscape of Parallel Computing Research: A View from Berkeley&amp;quot; (2006)]&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
===Globus===&lt;br /&gt;
*Ony in release 4 they implemented Web services. &lt;br /&gt;
*Its an API.&lt;br /&gt;
*Globus you build an applications on top of existing framework. More like an interface to your application, other than something your application will use internally.&lt;br /&gt;
&lt;br /&gt;
*Seems programmer friendly, though possibly unwieldy and too complex.&lt;br /&gt;
**Arguably the state of modern programming.&lt;br /&gt;
***Using a complex set of APIs, not actually just a simple new language.&lt;br /&gt;
***Just a new API to learn, Globus is this way too.&lt;br /&gt;
&lt;br /&gt;
*Is this ok? Is this enough? Should we be expecting more from such a network?&lt;br /&gt;
**Some systems based their environment on the POSIX API – making the transition very easy.&lt;br /&gt;
**There are a LOT of API calls required for this system, why not a simpler API?&lt;br /&gt;
&lt;br /&gt;
*What was NOT in this paper?&lt;br /&gt;
**No example code&lt;br /&gt;
**No comparison (even to previous versions!)&lt;br /&gt;
**No evaluation/metrics/performance&lt;br /&gt;
**Was this a marketing document?&lt;br /&gt;
&lt;br /&gt;
*Side reports?&lt;br /&gt;
**AWEFUL! &lt;br /&gt;
**Wait a second… using XML in a grid computing environment? How SLOWWWWWWW&lt;br /&gt;
&lt;br /&gt;
*Brought together by the Globus Alliance&lt;br /&gt;
**An effort to provide a standard&lt;br /&gt;
**In essence done by committee… meaning that people aren’t necessarily using it as it is developed, and priorities are skewed to marketable specs rather than performance metrics.&lt;br /&gt;
&lt;br /&gt;
===BOINC===&lt;br /&gt;
*Premise?  Local client on your machine downloads a &#039;workunit&#039;, churns the data, dumps the results and downloads a new &#039;workunit&#039;&lt;br /&gt;
*Why are we caring?&lt;br /&gt;
**Entertainment?&lt;br /&gt;
**How is this an OS paradigm?  What is it useful for?&lt;br /&gt;
***It isn&#039;t really an OS, just a method to have your mass computation done&lt;br /&gt;
***More of a distributed scheduler?&lt;br /&gt;
****Not even, central scheduler, but mass computation&lt;br /&gt;
***How many systems have we seen that have accomplished mass computation on millions of uncontrolled computers?&lt;br /&gt;
****ummm... none?&lt;br /&gt;
***As an OS?&lt;br /&gt;
****An OS is something that is created to run programs&lt;br /&gt;
****This is a special case allowing us to run specific programs (BUT IS IT AN OS?)&lt;br /&gt;
***Useful for &amp;quot;embarassingly parallel programs&amp;quot;&lt;br /&gt;
*Perfect for large scale simulation?&lt;br /&gt;
**But then you need LOTS of communication, and this system does not have interconnects&lt;br /&gt;
*The type of problems that we most care about tend not to be THAT parallel&lt;br /&gt;
&lt;br /&gt;
*So what would a distributed OS be for?&lt;br /&gt;
**Shared communication!&lt;br /&gt;
***But we don&#039;t have much in the way that works well.&lt;br /&gt;
*An OS typically provides a lot of services, together in one package&lt;br /&gt;
**We have been seeing that there are no complete packages, just pieces and parts.  Why?&lt;br /&gt;
***Computers are changing too fast?  Same *NIX OS, same TCP/IP stack... so more of the same, why no true solution?&lt;br /&gt;
***Communication is unreliable? Yes, but that is also nothing new&lt;br /&gt;
&lt;br /&gt;
*If people found that distributed file systems were successful, they would be in use all the time, but they aren&#039;t.  Reason? PERFORMANCE&lt;br /&gt;
&lt;br /&gt;
*Take away message?&lt;br /&gt;
*Can&#039;t handle communication - how do you abstract access to resources when driven through a network?&lt;br /&gt;
**As a result, we have many many specialized solutions for particular workloads.&lt;br /&gt;
*If you are willing to not have communication between nodes, you gain a HUGE amount of computation.&lt;br /&gt;
&lt;br /&gt;
*The most reliable systems are the one that forget communication.&lt;br /&gt;
**The more you system tolerates bad stuff with a network, the better is scales.&lt;br /&gt;
&lt;br /&gt;
*We dont have general cluster distributed OS.&lt;br /&gt;
&lt;br /&gt;
===MapReduce===&lt;br /&gt;
*The communication happens when you reduce the problem. &lt;br /&gt;
**MapReduce works because there is mapping and there is reducing.&lt;br /&gt;
***There is no side effects (enabling things).&lt;br /&gt;
*Why is it a good fit to a thousands of machines?&lt;br /&gt;
**They first had all these pieces, and if one of them does not replay, then they just do it over :)&lt;br /&gt;
***You create the algorithm to fit this model, create this pieces, you have a combining function.&lt;br /&gt;
****You have to have some back end that keeps track of who got work done. But you don&#039;t care if any machine fail in the middle of the computation.&lt;br /&gt;
*Compare MapReduce to POSIX&lt;br /&gt;
**The difference is in efficiency. MapReduce is an extension to POSIX.&lt;br /&gt;
***Distributed OSs trying to run the programs that run on different APIs. The systems that work, they are relaxed.&lt;br /&gt;
****Here is the model, loose compatibility by gaining scalability.&lt;/div&gt;</summary>
		<author><name>Taisia</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Distributed_OS_Overview&amp;diff=1727</id>
		<title>Distributed OS Overview</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Distributed_OS_Overview&amp;diff=1727"/>
		<updated>2008-01-13T21:07:02Z</updated>

		<summary type="html">&lt;p&gt;Taisia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Distributed Operating Systems ==&lt;br /&gt;
&lt;br /&gt;
[[Image:OS4000_Distributed.png|A distributed operating system.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;At what level do you want to start the distribution?&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&#039;&#039;&#039;Hardware Layer&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
If memory is shared, communication is trivial ie. parallel computers (multi core).&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&#039;&#039;&#039;Kernel Layer&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
Distributing at the kernel layer will avoid API and User Space changes. So why don&#039;t we share at the lower kernel layer? The main reason is security and performance. We can assume that memory is fast (low latency) so we need to share memory across each computer in the distribution. To share memory in such a way presents a challenge. So why isn&#039;t virtual memory enough? Typically because of contention over memory. Virtual memory is slow; duplicating memory pages and synchronizing them across the network takes too much time.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&#039;&#039;&#039;Process Layer&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
At the process layer, we can perform the distribution over the network using TCP/IP. Unfortunately, TCP/IP has a high latency. We can use ethernet to reduce the latency, but it is only a viable solution for LAN based systems. Therefor, latency will always be present.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;We can deal with latency by caching a local copy of data which effectively reduces the amount of communication required. The downside is, caching introduces a need for synchronization.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;We can also deal with latency by compressing the data and splitting up the computation &amp;quot;wisely&amp;quot;. Computers are not wise enough to do it effectively, leaving it up to the programmers. Programmers split up such computations by introducing client/server architectures, using web applications and web services as well as using distributes file systems. For example, spam uses internet resources to communicate by email with large numbers of users. Spam is a feature of the Internet, everyone should be able to send an email to everyone and spam uses that resource. Distributed operating systems on the scale of the Internet capable of wise resource management do not yet exist. &amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
== What Makes a Good Distributed Operating System? ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;A good distributed OS must be:&lt;br /&gt;
* Reliable and support dynamically scalable storage.&lt;br /&gt;
* More processing power (CPU - linear scaling).&lt;br /&gt;
* Manageable (it should be easy to manage, like a single computer)&lt;br /&gt;
* Easy to write programs&lt;br /&gt;
* Support fore single sign on!!&lt;br /&gt;
* A single system image&lt;br /&gt;
* Reliability (fault tolerant to software and hardware errors)&lt;br /&gt;
* Dynamic reconfiguration&lt;br /&gt;
* Exploit local resources.&lt;/div&gt;</summary>
		<author><name>Taisia</name></author>
	</entry>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=File:OS4000_Distributed.png&amp;diff=1726</id>
		<title>File:OS4000 Distributed.png</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=File:OS4000_Distributed.png&amp;diff=1726"/>
		<updated>2008-01-13T19:29:28Z</updated>

		<summary type="html">&lt;p&gt;Taisia: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Taisia</name></author>
	</entry>
</feed>