<p>Computer science studies &quot;computers&quot;, whatever those are. Distributed computing, as a subfield, studies how individual computers behave when they are one of many computers which simultaneously access some common resources. Wikipedia's definition extends this idea to talk about distributed programs, which are analogous to classical programs but run on a collection of distributed computers rather than single computers.</p>
<p>In addition to studying <strong>distributed algorithms</strong>, or useful computation which is performed by distributed computers like in <a href="https://en.wikipedia.org/wiki/Interactive_proof_system" rel="nofollow noreferrer">interactive proof systems</a>, we also study <strong>distributed data structures</strong> like the <a href="http://wiki.erights.org/w/index.php?title=Unum" rel="nofollow noreferrer">unum</a> and the <a href="https://en.wikipedia.org/wiki/Distributed_hash_table" rel="nofollow noreferrer">distributed hash table</a> construction.</p>
<p>There are more specific domains, too. I personally study <strong>secure distributed computation</strong>, which is a subfield of distributed algorithms where we study properties like <a href="https://en.wikipedia.org/wiki/Data_integrity" rel="nofollow noreferrer">integrity</a> and <a href="https://en.wikipedia.org/wiki/Information_security" rel="nofollow noreferrer">confidentiality</a> in the context of multiple machines accessing common data. A former boss of mine contributed to a freely-available book, <a href="https://doi.org/10.2200/S00874ED3V01Y201809CAC046" rel="nofollow noreferrer">The Datacenter as a Computer</a>, which discusses &quot;warehouse-sized computers&quot;, very large distributed computers.</p>
<p>To answer your question in the comment, a <strong>distributed system</strong> is a collection of computers which are all acting as a distributed computer because they happen to access some common resource. This is a subtle change in what I said before, but it is through the <a href="https://en.wikipedia.org/wiki/Systems_theory" rel="nofollow noreferrer">systems view</a> of objects; we want to look at properties of the entire system under study and not just properties of a single machine or resource. Instead of talking about computational properties like space and time usage, we discuss <a href="https://en.wikipedia.org/wiki/Steady_state" rel="nofollow noreferrer">steady states</a> and <a href="https://en.wikipedia.org/wiki/Chaos_theory" rel="nofollow noreferrer">chaotic behaviors</a>.</p>

CC BY-SA 4.0
2021-11-22T16:01:22.413Z
2021-11-22T16:01:22.413Z
Corbin
<p>This is a TCS site, not a general computer science site, so I will only give the TCS answer.</p>

<p>In TCS, the following things are more or less equal:</p>

<ul>
<li>"distributed computing"</li>
<li>"distributed algorithms"</li>
<li>the study of computational aspects of distributed systems (computability, computational complexity, algorithm design and analysis, etc.)</li>
<li>topics of conferences such as <a href="http://www.podc.org/">PODC</a> and <a href="http://www.disc-conference.org/">DISC</a></li>
<li>topics covered in textbooks such as Lynch (1996): <em>Distributed Algorithms</em></li>
<li>topics covered in courses such as <a href="http://dcg.ethz.ch/lectures/podc_allstars/">this</a>.</li>
</ul>

<p>(Outside TCS, "distributed computing" can mean anything: SETI@home, grids, clusters, clouds, HPC, Internet, web services, P2P, IPC, you name it.)</p>

CC BY-SA 4.0
2021-11-22T15:37:37.807Z
Doesn't answer the question, just gives examples of things which would be covered under a areasonable answer's definition.
Corbin
CC BY-SA 3.0
2011-09-09T11:10:42.680Z
2011-09-09T11:10:42.680Z
Jukka Suomela
<p>I think it's field that studies distributed systems as described at <a href="http://en.wikipedia.org/wiki/Distributed_computing" rel="nofollow">http://en.wikipedia.org/wiki/Distributed_computing</a>. There are distributed systems such as clusters and grids on top of this field. Algorithms and computational techniques are should be discussed in High-performance computing sub-area.</p>

<p>Am I wrong ? Where I can read strong thesis about distributed computing and it hierarchy ?</p>

<p>Thanks.</p>

CC BY-SA 3.0
2011-09-09T09:52:30.987Z
Do you have a more specific question that is not answered in the Wikipedia article? Did you already check the textbooks that are listed as references in the Wikipedia page?
Jukka Suomela
CC BY-SA 3.0
2011-09-09T10:43:51.853Z
I don't trust Wikipedia in this case, and want to know answer from reliable sources.
I read introduction at "Distributed computing: fundamentals, simulations, and advanced topics" by Hagit Attiya and Jennifer Welch. But I don't understand where are edge between "distributed computing" and "distributed systems" is.
Also, I read "Distributed Systems: Principles and Paradigms" by Andrew S. Tanenbaum and Maarten Van Steen, but it's specific for distributed systems.
My question: What kind of relations are between distributed computing, distributed systems, distributed algorithms and techniques ?
Pavel Nuzhdin
<reference-request><soft-question><dc.distributed-comp>
What is "distributed computing" as a field of computer science?
Pavel Nuzhdin
# What is "distributed computing" as a field of computer science?

(Asked by: username_0 on 2011-09-09)

I think it's field that studies distributed systems as described at <http://en.wikipedia.org/wiki/Distributed_computing>. There are distributed systems such as clusters and grids on top of this field. Algorithms and computational techniques are should be discussed in High-performance computing sub-area.

Am I wrong ? Where I can read strong thesis about distributed computing and it hierarchy ?

Thanks.

**Tags:** reference-request, soft-question, dc.distributed-comp
> **Comments:**
> **username_1**: Do you have a more specific question that is not answered in the Wikipedia article? Did you already check the textbooks that are listed as references in the Wikipedia page?  
> **username_0**: I don't trust Wikipedia in this case, and want to know answer from reliable sources. I read introduction at "Distributed computing: fundamentals, simulations, and advanced topics" by Hagit Attiya and Jennifer Welch. But I don't understand where are edge between "distributed computing" and "distributed systems" is. Also, I read "Distributed Systems: Principles and Paradigms" by Andrew S. Tanenbaum and Maarten Van Steen, but it's specific for distributed systems. My question: What kind of relations are between distributed computing, distributed systems, distributed algorithms and techniques ?  

---

## 2 answers

### Answer by username_1 on 2011-09-09. Score: 14 | Accepted answer

This is a TCS site, not a general computer science site, so I will only give the TCS answer.

In TCS, the following things are more or less equal:

* "distributed computing"
* "distributed algorithms"
* the study of computational aspects of distributed systems (computability, computational complexity, algorithm design and analysis, etc.)
* topics of conferences such as [PODC](http://www.podc.org/) and [DISC](http://www.disc-conference.org/)
* topics covered in textbooks such as Lynch (1996): *Distributed Algorithms*
* topics covered in courses such as [this](http://dcg.ethz.ch/lectures/podc_allstars/).

(Outside TCS, "distributed computing" can mean anything: SETI@home, grids, clusters, clouds, HPC, Internet, web services, P2P, IPC, you name it.)

> **Comments:**
> **username_2**: Doesn't answer the question, just gives examples of things which would be covered under a areasonable answer's definition.  

---

### Answer by username_2 on 2021-11-22. Score: 2

Computer science studies "computers", whatever those are. Distributed computing, as a subfield, studies how individual computers behave when they are one of many computers which simultaneously access some common resources. Wikipedia's definition extends this idea to talk about distributed programs, which are analogous to classical programs but run on a collection of distributed computers rather than single computers.

In addition to studying **distributed algorithms**, or useful computation which is performed by distributed computers like in [interactive proof systems](https://en.wikipedia.org/wiki/Interactive_proof_system), we also study **distributed data structures** like the [unum](http://wiki.erights.org/w/index.php?title=Unum) and the [distributed hash table](https://en.wikipedia.org/wiki/Distributed_hash_table) construction.

There are more specific domains, too. I personally study **secure distributed computation**, which is a subfield of distributed algorithms where we study properties like [integrity](https://en.wikipedia.org/wiki/Data_integrity) and [confidentiality](https://en.wikipedia.org/wiki/Information_security) in the context of multiple machines accessing common data. A former boss of mine contributed to a freely-available book, [The Datacenter as a Computer](https://doi.org/10.2200/S00874ED3V01Y201809CAC046), which discusses "warehouse-sized computers", very large distributed computers.

To answer your question in the comment, a **distributed system** is a collection of computers which are all acting as a distributed computer because they happen to access some common resource. This is a subtle change in what I said before, but it is through the [systems view](https://en.wikipedia.org/wiki/Systems_theory) of objects; we want to look at properties of the entire system under study and not just properties of a single machine or resource. Instead of talking about computational properties like space and time usage, we discuss [steady states](https://en.wikipedia.org/wiki/Steady_state) and [chaotic behaviors](https://en.wikipedia.org/wiki/Chaos_theory).


---

