¿Qué pasa con las operaciones de expansión de programas en el desarrollo de programación Python?
Con el desarrollo continuo de Internet, nuestro aprendizaje y dominio de la programación y la tecnología de desarrollo de Python también mejoran constantemente. A continuación, comprenderemos y aprenderemos mediante el análisis de casos qué métodos están disponibles para la expansión del programa.
Conceptos necesarios
La programación tradicional se basa en dos conceptos centrales: funciones y clases. Se pueden crear innumerables aplicaciones utilizando estos componentes básicos.
Sin embargo, estos conceptos suelen cambiar cuando trasladamos aplicaciones a un entorno distribuido.
Por un lado, herramientas como OpenMPI, Python multiproceso y ZeroMQ proporcionan primitivas de bajo nivel para enviar y recibir mensajes. Estas herramientas son muy poderosas, pero proporcionan diferentes abstracciones, por lo que para usarlas debes reescribir una aplicación de un solo subproceso desde cero.
Por otro lado, también contamos con algunas herramientas específicas de dominio, como TensorFlow para entrenamiento de modelos, Spark para procesamiento de datos y soporte de SQL, y Flink para procesamiento de streaming. Estas herramientas proporcionan abstracciones de nivel superior, como redes neuronales, conjuntos de datos y transmisiones. Sin embargo, debido a que son abstracciones diferentes de las utilizadas para la programación en serie, las aplicaciones también deben reescribirse desde cero para poder utilizarlas.
Herramientas para computación distribuida
Ray ocupa un término medio único. No introduce nuevos conceptos, sino que toma los conceptos de funciones y clases y los transforma en tareas y actores distribuidos. Ray puede paralelizar aplicaciones en serie sin modificaciones significativas.
Comience a usar Ray
El comando ray.init() iniciará todos los procesos de Ray relacionados. Esta es la línea que debe cambiarse al cambiar al clúster (debemos pasar la dirección del clúster). Las instituciones de formación de cursos de Java descubrieron que estos procesos incluyen:
Hay muchos procesos de trabajo que ejecutan funciones de Python en paralelo (probablemente un trabajador por cada núcleo de CPU).
Proceso de programación utilizado para asignar "tareas" a los trabajadores (y otras computadoras). Una tarea es una unidad de trabajo programada por Ray, correspondiente a una llamada a una función o a un método.