Distributed Computing ist eine Möglichkeit, zeitaufwändige Rechenprobleme mit mehreren Computern zu lösen, die meist zu einem parallelen Computersystem kombiniert werden.
Eine der frühesten Erwähnungen von Distributed Computing stammt aus dem Jahr 1973. Im Xerox PARC Research Center haben John Schoch und John Hupp ein Programm geschrieben, das sich über das PARC LAN an andere funktionierende Computer gesendet hat.
In der Folge wurde im Zusammenhang mit der Entwicklung und dem Wachstum der Anzahl von Personalcomputern das verteilte Rechnen immer häufiger eingesetzt. Zum Beispiel haben Arjen Lenstra und Mark Menes Ende der 1980er Jahre ein Programm geschrieben, um lange Zahlen zu faktorisieren. Sie schickte Aufgaben per E-Mail an die Computer der Teilnehmer und erhielt auf die gleiche Weise Antworten.
Ein weiteres wichtiges Ereignis war die Schaffung des SETI @ Home-Projekts (Suche nach außerirdischer Intelligenz zu Hause) zur Suche nach außerirdischer Intelligenz durch Analyse von Daten von Radioteleskopen, einschließlich der Daten auf den Heimcomputern der Teilnehmer. Dieses Projekt wurde 1999 gestartet und 2020 eingestellt. Dieses verteilte System wurde auf der BOINC-Plattform der University of Berkeley aufgebaut.
In Zukunft wurden die Entwicklungen zur Schaffung verschiedener verteilter Systeme aktiv fortgesetzt, und jetzt werden sie in einer Vielzahl von Bereichen eingesetzt. Insbesondere wird verteiltes Rechnen häufig für mathematische Probleme verwendet. Ein typisches Beispiel ist die Faktorisierung von Zahlen (ihre Zerlegung in das Produkt von Primfaktoren).
Ein weiterer wichtiger Anwendungsbereich für verteiltes Rechnen ist die Big-Data-Verarbeitung mit maschinellem Lernen und Data Mining-Methoden. Als Programmiersprache für diesen Zweck hat Python in den letzten Jahren eine führende Position eingenommen. Laut TIOBE-Ranking liegt Python ab März 2020 auf dem dritten Platz, obwohl es 2015 nur der siebte war.
Python – C++. .
21 , . Docker . Docker , : , “” .
Docker Docker Swarm. . Docker- – “”.
TCP-, . . , , . , , .
« » . Python – . . , , .
, Python – , , C++. , Python (CPython) C , . - CPython GIL (Global Interpreter Lock) - . 5 . , .
. Docker Swarm, . .
, Docker Swarm . , , , , .
, Docker Swarm, . , “” , .
: ( ) , “ ”.
(6 2 – ) 20 , Linux.
: , , . . ( GIL). – , (“”) . – , .
.
/ |
|
- |
(8 ) |
7.3525 |
39.3731 c |
(8 ) |
54.3255 c |
42.0415 |
|
|
43.4656 c |
41.4426 c |
|
|
43.5361 |
43.9102 c |
, , . - Python. , . , , , , , . , , .
In der Weiterentwicklung dieser Entwicklung ist geplant, Unterstützung für virtuelle Umgebungen hinzuzufügen, die die Verwendung von Modulen von Drittanbietern und Python-Frameworks ermöglichen sowie Konflikte zwischen Versionen eines Moduls mit unterschiedlichen Funktionen vermeiden.
Eine der möglichen Anwendungen der Entwicklung ist die Organisation der verteilten Entscheidungsprüfung während Programmierwettbewerben.