Implementation of distributed computing in python using docker technology

Distributed computing is a way to solve time-consuming computational problems using multiple computers, most often combined into a parallel computing system.





One of the earliest mentions of distributed computing dates back to 1973. Xerox PARC R&D staff John Schoch and John Hupp wrote a program that sent itself to other working computers over the PARC LAN.





Subsequently, in connection with the development and growth of the number of personal computers, distributed computing began to be used more and more widely. For example, in the late 1980s, Arjen Lenstra and Mark Menes wrote a program to factorize long numbers. She sent assignments to the participants' computers by e-mail and received responses in the same way.





Another significant event was the creation of the SETI @ Home (Search for Extra-Terrestrial Intelligence at Home) project to search for extraterrestrial intelligence by analyzing data from radio telescopes, including those on the participants' home computers. This project was launched in 1999 and stopped in 2020. This distributed system was built on the BOINC platform from the University of Berkeley.





In the future, developments on the creation of various distributed systems continued actively, and now they are used in a wide variety of areas. In particular, distributed computing is widely used for mathematical problems. A typical example is the factorization of numbers (their decomposition into the product of prime factors).





Another important area of ​​application for distributed computing is big data processing using machine learning and Data Mining methods. As a programming language for this purpose, in recent years, Python has taken a leading position. As of March 2020, according to the TIOBE ranking, Python is in third place, although it was only seventh in 2015.





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 the further development of this development, it is planned to add support for virtual environments, which will allow using third-party modules and Python frameworks, as well as avoiding a conflict between versions of one module with different functions.





One of the possible applications of development is the organization of distributed decision checking during programming competitions.








All Articles