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 ?


  • 2
    $\begingroup$ 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? $\endgroup$ Sep 9 '11 at 9:52
  • $\begingroup$ 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 ? $\endgroup$ Sep 9 '11 at 10:43

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 and DISC
  • topics covered in textbooks such as Lynch (1996): Distributed Algorithms
  • topics covered in courses such as this.

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

  • $\begingroup$ Doesn't answer the question, just gives examples of things which would be covered under a areasonable answer's definition. $\endgroup$
    – Corbin
    Nov 22 at 15:37

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, we also study distributed data structures like the unum and the 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 and confidentiality 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, 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 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 and chaotic behaviors.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.