Taken uitvoeren en toepassingspakketten toevoegen

Voltooid

Taken gelijktijdig uitvoeren met behulp van de Batch REST API

Azure Batch maakt gebruik van parallelle taken om een job te verdelen over rekenknooppunten. Azure Batch is met name geschikt voor het uitvoeren van grootschalige parallelle en high-performance computing-batchtaken. De Batch-service verwerkt alles voor u, waaronder het beheren en plannen van alle knooppunten en toepassingen die nodig zijn om uw scenario's uit te voeren.

Met een kleiner aantal knooppunten in een pool kunt u het resourcegebruik maximaliseren door meerdere taken tegelijk uit te voeren. Bepaalde workloads kunnen kortere taaktijden en lagere kosten zien wanneer meerdere taken rekenknooppunten delen.

Voor sommige scenario's moet u mogelijk gegevensoverdracht minimaliseren voor taken die gegevens kunnen delen. U kunt de kosten voor gegevensoverdracht aanzienlijk verlagen door gedeelde gegevens naar een kleiner aantal knooppunten te kopiëren en taken parallel op elk knooppunt uit te voeren. Deze aanpak vermindert de tijd die nodig is om gegevens over te dragen naar alle knooppunten in plaats van gegevens te delen met een groot aantal knooppunten.

Parallelle taakuitvoering inschakelen

Parallelle taakuitvoering bepaalt hoeveel taken één knooppunt gelijktijdig in één pool kan verwerken.

In Batch beheren sleuven parallelle uitvoering van taken. Taken hebben een eigenschap die wordt aangeroepen RequiredSlots, wat aangeeft hoe resource-intensief een taak is. Voor resource-intensieve taken zijn meer sleuven nodig dan voor resource light-taken.

Wanneer u een pool maakt, geeft u op hoeveel taaksites per knooppunt beschikbaar zijn door de eigenschap in te taskSlotsPerNode stellen. Deze eigenschap bepaalt de resource-intensiteit van de taken die gelijktijdig op een knooppunt kunnen worden uitgevoerd.

Als de eigenschap van taskSlotsPerNode een pool bijvoorbeeld is ingesteld op 16, hebben de taken die gelijktijdig worden uitgevoerd op een knooppunt nooit meer dan 16 sleuven nodig. Deze instelling betekent bijvoorbeeld:

  • Twee taken waarvoor acht sites nodig zijn, kunnen tegelijkertijd worden uitgevoerd omdat het aantal sleuven gelijk is aan 16 (2 * 8 = 16)
  • Drie taken waarvoor vijf sites nodig zijn, kunnen tegelijkertijd worden uitgevoerd omdat het aantal sleuven kleiner is dan 16 (3 * 5 = 15)
  • Vijf taken waarvoor vier sites nodig zijn, kunnen niet tegelijkertijd worden uitgevoerd omdat het aantal sites meer dan 16 is (5 * 4 = 20)

De eigenschap kan maximaal taskSlotsPerNode vier keer het aantal vCPU's zijn dat een knooppunt heeft. Als u wilt weten hoeveel vCPU's beschikbaar zijn op een knooppunt, raadpleegt u Grootten voor virtuele machines in Azure.

Notitie

Nadat u de taskSlotsPerNode eigenschap hebt ingesteld, kunt u deze niet wijzigen. Als u deze wijzigt, moet u een nieuwe pool maken.

Stel de RequiredSlots eigenschap in op basis van hoeveel CPU of geheugen u verwacht dat de taak nodig is, of hoe I/O-intensief u verwacht dat een taak is. Stel bovendien de taskSlotsPerNode eigenschap in op basis van het aantal taken dat gelijktijdig kan worden uitgevoerd zonder de uitvoeringstijden van taken te verminderen.

Een toepassingspakket toevoegen en een containertoepassing uitvoeren in Azure Batch

Toepassingspakketten

In Azure Batch verwijst een toepassing naar een set binaire bestanden met versiebeheer die automatisch kunnen worden gedownload naar de rekenknooppunten in uw pool. Een toepassing bevat een of meer toepassingspakketten, die verschillende versies van de toepassing vertegenwoordigen.

U kunt toepassingspakketten opgeven op groep- of taakniveau. Pooltoepassingspakketten zijn geschikt wanneer alle knooppunten in een pool de taken van een taak uitvoeren.

U kunt meer dan één toepassingspakket opgeven wanneer u een groep maakt. Toepassingen worden geïmplementeerd wanneer een knooppunt lid wordt van een pool en wanneer het knooppunt opnieuw wordt opgestart of opnieuw wordt gemaakt. Als u een nieuw pakket wilt installeren in een bestaande pool, moet u de knooppunten opnieuw opstarten.

Als u ervoor kiest om een toepassingspakket op taakniveau te implementeren, is dit handig in omgevingen met gedeelde pools. In deze omgevingen worden verschillende taken uitgevoerd op één pool en wordt de pool niet verwijderd wanneer een taak is voltooid. Als uw taak minder taken heeft dan knooppunten in de pool, kunnen taaktoepassingspakketten de gegevensoverdracht minimaliseren, omdat uw toepassing alleen wordt geïmplementeerd op de knooppunten die taken uitvoeren.

U kunt Azure Portal of de Batch Management-API's gebruiken om de toepassingspakketten in uw Batch-account te beheren. Als u toepassingspakketten wilt gebruiken, moet u een Azure-opslagaccount koppelen aan uw Batch-account. De Batch-service gebruikt het gekoppelde opslagaccount om uw toepassingspakketten op te slaan. U wordt aangeraden om specifiek een opslagaccount te maken voor gebruik met uw Batch-account.

Containertoepassingen

Containers worden de voorkeursmethode voor het verpakken, implementeren en beheren van cloudtoepassingen. Azure Container Instances is een ideale oplossing voor elk scenario dat kan werken in geïsoleerde containers, met inbegrip van eenvoudige toepassingen, taakautomatisering en het bouwen van taken.

Het gebruik van containers biedt een eenvoudige manier om Batch-taken uit te voeren zonder dat u een omgeving en afhankelijkheden hoeft te beheren om toepassingen uit te voeren. Containers implementeren toepassingen als lichtgewicht, draagbare, zelfvoorzienende eenheden die in verschillende omgevingen kunnen worden uitgevoerd. Op containers gebaseerde taken in Batch kunnen ook profiteren van functies van niet-containertaken, waaronder toepassingspakketten en beheer van resourcebestanden en uitvoerbestanden.

U kunt een pool met container maken met of zonder een vooraf gemaakte containerinstallatiekopieën. Met het prefetch-proces kunt u containerinstallatiekopieën vooraf laden vanuit Docker Hub of een ander containerregister (zoals Azure Container Registry) op internet.

Het voordeel van het vooraf fetching van containerinstallatiekopieën is dat wanneer taken voor het eerst worden uitgevoerd, ze niet hoeven te wachten totdat de containerinstallatiekopieën zijn gedownload. Met de containerconfiguratie worden containerinstallatiekopieën naar de virtuele machines opgehaald wanneer de pool wordt gemaakt. Taken die in de pool worden uitgevoerd, kunnen vervolgens verwijzen naar de lijst met containerinstallatiekopieën en opties voor het uitvoeren van containers.