Ejecución de tareas y adición de paquetes de aplicación
Ejecución simultánea de tareas mediante la API REST de Batch
Azure Batch usa tareas paralelas para dividir un trabajo en nodos de ejecución. Azure Batch es especialmente adecuado para ejecutar trabajos por lotes paralelos a gran escala y de informática de alto rendimiento. El servicio Batch controla todo el contenido automáticamente y administra y programa todos los nodos y las aplicaciones que se necesitan para ejecutar sus escenarios.
Con un número menor de nodos en un grupo, puede maximizar el uso de recursos ejecutando simultáneamente más de una tarea. Algunas cargas de trabajo pueden ver tiempos de trabajo más cortos y menores costos cuando varias tareas comparten nodos de proceso.
Algunos escenarios pueden requerir que minimice las transferencias de datos para las tareas que pueden compartir datos. Puede reducir considerablemente los gastos de transferencia de datos copiando los datos compartidos en un número menor de nodos y ejecutar tareas en paralelo en cada nodo. Este enfoque reduce el tiempo que se necesita para transferir datos a todos los nodos en lugar de compartir datos en un gran número de nodos.
Habilitación de la ejecución en paralelo de tareas
La ejecución en paralelo de tareas controla el número de tareas que un solo nodo puede controlar simultáneamente en un grupo.
En Batch, los espacios controlan la ejecución en paralelo de tareas. Las tareas tienen una propiedad denominada RequiredSlots
, que denota cuántos recursos consume una tarea. Las tareas que consumen muchos recursos requieren más espacios que las que consumen pocos.
Al crear un grupo, puede especificar cuántos espacios de tareas están disponibles por nodo estableciendo la propiedad taskSlotsPerNode
. Esta propiedad rige la intensidad de recursos de las tareas que pueden ejecutarse simultáneamente en un nodo.
Por ejemplo, si la propiedad taskSlotsPerNode
de un grupo se establece en 16, las tareas que se ejecutan simultáneamente en un nodo nunca requerirán más de 16 espacios. Esta configuración significa que, por ejemplo:
- Dos tareas que requieren ocho espacios se pueden ejecutar al mismo tiempo porque el número de espacios es igual a 16 (2 * 8 = 16)
- Tres tareas que requieren cinco espacios se pueden ejecutar al mismo tiempo porque el número de espacios es menor que 16 (3 * 5 = 15)
- Cinco tareas que requieren cuatro espacios no se pueden ejecutar al mismo tiempo porque el número de espacios es superior a 16 (5 * 4 = 20)
Como máximo, la propiedad taskSlotsPerNode
puede ser hasta cuatro veces el número de vCPU que tiene un nodo. Para averiguar cuántas vCPU están disponibles en un nodo, consulte Tamaños de las máquinas virtuales en Azure.
Nota:
Después de establecer la propiedad taskSlotsPerNode
, no se puede modificar. Para cambiarla, es necesario crear un nuevo grupo.
Establezca la propiedad RequiredSlots
en función de cuánta CPU o memoria espera que necesite la tarea, o de la intensidad de E/S que espera que tenga una tarea. Además, establezca la propiedad taskSlotsPerNode
en función del número de tareas que se pueden ejecutar simultáneamente sin degradar los tiempos de ejecución de las tareas.
Adición de un paquete de aplicación y ejecución de una aplicación de contenedor en Azure Batch
paquetes de aplicación
En Azure Batch, una aplicación hace referencia a un conjunto de archivos binarios con versiones que se pueden descargar automáticamente en los nodos de proceso del grupo. Una aplicación contiene uno o varios paquetes de aplicación, que representan diferentes versiones de la aplicación.
Los paquetes de aplicación se pueden especificar en el nivel de grupo o de tarea. Los paquetes de aplicación de grupo son adecuados cuando todos los nodos de un grupo ejecutan las tareas de un trabajo.
Se puede especificar más de un paquete de aplicación al crear un grupo. Las aplicaciones se implementan cuando un nodo se une a un grupo y cuando se reinicia un nodo o se vuelve a crear su imagen inicial. Para instalar un nuevo paquete en un grupo existente, debe reiniciar sus nodos.
Si decide implementar un paquete de aplicación en el nivel de tarea, es útil en entornos de grupo compartido. En estos entornos, distintos trabajos se ejecutan en un grupo, y el grupo no se elimina cuando se completa un trabajo. Si el trabajo tiene menos tareas que nodos en el grupo, los paquetes de aplicación de las tareas pueden minimizar la transferencia de datos, ya que la aplicación se implementa solo en los nodos que ejecutan tareas.
Puede usar Azure Portal o las API de Batch Management para administrar los paquetes de aplicaciones en la cuenta de Batch. Para utilizar paquetes de aplicación, primero debe vincular una cuenta de Azure Storage a su cuenta de Batch. El servicio Batch utiliza la cuenta de almacenamiento asociada para almacenar los paquetes de aplicación. Se recomienda crear una cuenta de almacenamiento específicamente para su uso con la cuenta de Batch.
Aplicaciones de contenedor
Los contenedores están convirtiéndose en la manera preferida de empaquetar, implementar y administrar aplicaciones en la nube. Azure Container Instances es una excelente solución para cualquier escenario que pueda funcionar en contenedores aislados, incluidas las aplicaciones simples, la automatización de tareas y los trabajos de compilación.
El uso de contenedores proporciona una manera sencilla de ejecutar tareas de Batch sin tener que administrar un entorno ni dependencias para ejecutar las aplicaciones. Los contenedores implementan aplicaciones como unidades ligeras, portátiles y autosuficientes que se pueden ejecutar en varios entornos distintos. Las tareas basadas en contenedor en Batch también pueden aprovechar las características de tareas no en contenedor, incluidos los paquetes de aplicación y la administración de archivos de recursos y archivos de salida.
Puede crear un grupo con o sin imágenes de contenedor previamente capturadas. El proceso de captura previa le permite cargar previamente imágenes de contenedor desde Docker Hub u otro registro de contenedor (como Azure Container Registry) en Internet.
La ventaja de capturar previamente las imágenes de contenedor es que, cuando las tareas comienzan a ejecutarse por primera vez, no tienen que esperar a que la imagen del contenedor se descargue. La configuración de contenedor extrae las imágenes de contenedor de las máquinas virtuales cuando se crea el grupo. Las tareas que se ejecutan en el grupo pueden entonces hacer referencia a la lista de las imágenes de contenedor y opciones de ejecución de contenedor.