Köra uppgifter och lägga till programpaket
Köra uppgifter samtidigt med hjälp av Batch REST API
Azure Batch använder parallella uppgifter för att dela upp ett jobb mellan beräkningsnoder. Azure Batch passar särskilt bra för att köra storskaliga parallella och högpresterande batchjobb för databehandling. Batch-tjänsten hanterar allt åt dig, vilket omfattar hantering och schemaläggning av alla noder och program som krävs för att köra dina scenarier.
Med ett mindre antal noder i en pool kan du maximera resursanvändningen genom att köra mer än en aktivitet samtidigt. Vissa arbetsbelastningar kan se kortare jobbtider och lägre kostnader när flera uppgifter delar beräkningsnoder.
Vissa scenarier kan kräva att du minimerar dataöverföringar för uppgifter som kan dela data. Du kan minska kostnaderna för dataöverföring avsevärt genom att kopiera delade data till ett mindre antal noder och köra aktiviteter parallellt på varje nod. Den här metoden minskar den tid det tar att överföra data till alla noder i stället för att dela data till ett stort antal noder.
Aktivera parallell aktivitetskörning
Parallell aktivitetskörning styr hur många aktiviteter en enskild nod kan hantera samtidigt i en pool.
I Batch styr facken parallell aktivitetskörning. Aktiviteter har en egenskap med namnet RequiredSlots
, som anger hur resursintensiv en aktivitet är. Resursintensiva uppgifter kräver fler platser än vad resurslätta uppgifter gör.
När du skapar en pool anger du hur många aktivitetsplatser som är tillgängliga per nod genom att ange egenskapen taskSlotsPerNode
. Den här egenskapen styr resursintensiteten för de aktiviteter som kan köras samtidigt på en nod.
Om en pools taskSlotsPerNode
egenskap till exempel är inställd på 16 kräver aktiviteter som körs samtidigt på en nod aldrig fler än 16 platser. Den här inställningen innebär att till exempel:
- Två uppgifter som kräver åtta platser kan köras samtidigt eftersom antalet platser är lika med 16 (2 * 8 = 16)
- Tre uppgifter som kräver fem platser kan köras samtidigt eftersom antalet platser är mindre än 16 (3 * 5 = 15)
- Fem uppgifter som kräver fyra platser kan inte köras samtidigt eftersom antalet platser är fler än 16 (5 * 4 = 20)
Som max taskSlotsPerNode
kan egenskapen vara upp till fyra gånger så många vCPU:er som en nod har. Information om hur många vCPU:er som är tillgängliga på en nod finns i Storlekar för virtuella datorer i Azure.
Kommentar
När du har angett egenskapen taskSlotsPerNode
kan du inte ändra den. Om du ändrar den måste du skapa en ny pool.
RequiredSlots
Ange egenskapen baserat på hur mycket PROCESSOR eller minne du förväntar dig att uppgiften behöver, eller hur I/O-intensiv du förväntar dig att en uppgift ska vara. Ange dessutom taskSlotsPerNode
egenskapen baserat på hur många aktiviteter som kan köras samtidigt utan att försämra körningstiderna för aktiviteter.
Lägga till ett programpaket och köra ett containerprogram i Azure Batch
Programpaket
I Azure Batch refererar ett program till en uppsättning versionsbaserade binärfiler som automatiskt kan laddas ned till beräkningsnoderna i din pool. Ett program innehåller ett eller flera programpaket som representerar olika versioner av programmet.
Du kan ange programpaket på pool- eller aktivitetsnivå. Poolprogrampaket är lämpliga när alla noder i en pool kör ett jobbs uppgifter.
Du kan ange fler än ett programpaket när du skapar en pool. Program distribueras när en nod ansluter till en pool och när noden startas om eller omskapas. Om du vill installera ett nytt paket i en befintlig pool måste du starta om noderna.
Om du väljer att distribuera ett programpaket på aktivitetsnivå är det användbart i miljöer med delad pool. I dessa miljöer körs olika jobb på en pool och poolen tas inte bort när ett jobb har slutförts. Om ditt jobb har färre aktiviteter än noder i poolen kan aktivitetsprogrampaket minimera dataöverföringen, eftersom ditt program endast distribueras till de noder som kör aktiviteter.
Du kan använda Azure Portal- eller Batch Management-API:erna för att hantera programpaketen i ditt Batch-konto. Om du vill använda programpaket måste du länka ett Azure Storage-konto till ditt Batch-konto. Batch-tjänsten använder det associerade lagringskontot för att lagra dina programpaket. Vi rekommenderar att du skapar ett lagringskonto som är specifikt för användning med ditt Batch-konto.
Containerprogram
Containrar är på väg att bli det bästa sättet att paketera, distribuera och hantera molnprogram. Azure Container Instances är en bra lösning för alla scenarier som kan fungera i isolerade containrar, däribland enkla program, automatisering av uppgifter och att skapa jobb.
Att använda containrar är ett enkelt sätt att köra Batch-uppgifter utan att behöva hantera en miljö och beroenden för att köra program. Containrar distribuerar program som enkla, portabla, självförsörjande enheter som kan köras i flera olika miljöer. Containerbaserade uppgifter i Batch kan också dra nytta av funktioner i icke-kontaineruppgifter, inklusive programpaket och hantering av resursfiler och utdatafiler.
Du kan skapa en containeraktiverad pool med eller utan en förinstallerad containeravbildning. Med förinläsningsprocessen kan du förinläsa containeravbildningar från Docker Hub eller ett annat containerregister (t.ex . Azure Container Registry) på Internet.
Fördelen med att förinstallera containeravbildningar är att när aktiviteterna först börjar köras behöver de inte vänta tills containeravbildningen laddas ned. Containerkonfigurationen hämtar containeravbildningar till de virtuella datorerna när poolen skapas. Uppgifter som körs i poolen kan sedan referera till listan över containeravbildningar och alternativ för containerkörning.