Distributed computing
Distributed computing is a redirect to this article. For the specific term with volunteer participants, see Volunteer computing.
This article or section needs revision. More details should be given on the discussion page. Please help improve it, and then remove this tag.
A distributed system, as defined by Andrew S. Tanenbaum, is a collection of independent computers that present themselves to the user as a single system. Peter Löhr defines it somewhat more fundamentally as "a set of interacting processes (or processors) that have no shared memory and therefore communicate with each other via messages". The subfield in computer science that deals with distributed systems and their algorithms is called distributed computing.
Classifications
Usually a distinction is made between
- Client-server system: Many clients access one or more servers.
- Distributed application: Programming the application creates the distributed system.
- Distributed operating system: The operating system itself is distributed, this is not visible to users and applications.
Reasons for the use of distributed systems
With distributed systems, true concurrency can be realized; that is, multiple processes can be genuinely executed simultaneously. In addition, a distributed system is also usually more scalable than a single computer, since you can easily increase performance by adding more machines.
A frequently encountered scenario is also the provision of remote resources, as is the case with Wikipedia. In addition, distributed systems are used to increase fail-safety by offering certain functionalities from several computers (redundancy), so that if one computer fails, the same functionality is offered by another computer.
In many cases, there are also economic reasons for networking inexpensive computers instead of purchasing an expensive supercomputer. This is exploited, for example, by volunteer computing projects such as SETI@home, which use idle computing power from stand-alone computers to solve complex problems. After one of the first and largest public volunteer distributed system projects SETI@home announced its end on March 31, 2020, and due to increased interest from the COVID-19 pandemic, the distributed system Folding@home will be the first computing system to achieve an exaFLOPS. The system simulated protein folding for research on COVID-19 and reached a speed of about 2.43 x86 exaFLOPS on April 13 - several times faster than the previous record holder, supercomputer Summit.
Other reasons:
- Remote access to certain resources (printer, ...)
- Cooperation (Computer Supported Cooperative Work)
- Load distribution