Implementación de computación distribuida en python usando tecnología docker

La computación distribuida es una forma de resolver problemas computacionales que consumen mucho tiempo utilizando múltiples computadoras, generalmente combinadas en un sistema de computación paralelo.





Una de las primeras menciones de la informática distribuida se remonta a 1973. En el Centro de Investigación Xerox PARC, John Schoch y John Hupp escribieron un programa que se enviaba a otras computadoras en funcionamiento a través de la LAN PARC.





Posteriormente, en relación con el desarrollo y crecimiento del número de computadoras personales, la computación distribuida comenzó a usarse cada vez más ampliamente. Por ejemplo, a finales de la década de 1980, Arjen Lenstra y Mark Menes escribieron un programa para factorizar números largos. Ella envió tareas a las computadoras de los participantes por correo electrónico y recibió respuestas de la misma manera.





Otro evento significativo fue la creación del proyecto SETI @ Home (Búsqueda de inteligencia extraterrestre en el hogar) para buscar inteligencia extraterrestre mediante el análisis de datos de radiotelescopios, incluidos los de las computadoras personales de los participantes. Este proyecto se lanzó en 1999 y se detuvo en 2020. Este sistema distribuido se construyó en la plataforma BOINC de la Universidad de Berkeley.





En el futuro, los desarrollos en la creación de varios sistemas distribuidos continuaron activamente, y ahora se utilizan en una amplia variedad de áreas. En particular, la computación distribuida se usa ampliamente para problemas matemáticos. Un ejemplo típico es la factorización de números (su descomposición en el producto de factores primos).





Otra área importante de aplicación para la computación distribuida es el procesamiento de big data utilizando métodos de aprendizaje automático y minería de datos. Como lenguaje de programación para este propósito, en los últimos años, Python ha tomado una posición de liderazgo. A marzo de 2020, según el ranking TIOBE, Python ocupa el tercer lugar, aunque solo fue séptimo en 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. , . , , , , , . , , .





En el futuro desarrollo de este desarrollo, se planea agregar soporte para entornos virtuales, lo que permitirá usar módulos de terceros y frameworks Python, así como evitar un conflicto entre versiones de un módulo con diferentes funciones.





Una de las posibles aplicaciones del desarrollo es la organización de la verificación de decisiones distribuida durante los concursos de programación.








All Articles