Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
LSF 10.1 FixPack 9(10.1.0.9) ile başlayan Azure CycleCloud, Kaynak Bağlayıcısı için yerel bir sağlayıcıdır. IBM belge sağlar. Bu kaynaklar, CycleCloud'a bağlanmak için LSF birincil düğümünü yapılandırma yönergeleri sağlar.
LSF, IBM lisanslı bir üründür. CycleCloud'da LSF kullanmak için IBM'in müşterilerine sağladığı bir yetkilendirme dosyası gerekir.
Uyarı
- LSF, IBM lisanslı bir üründür. CycleCloud'da LSF kullanmak için IBM'in müşterilerine sağladığı bir yetkilendirme dosyası gerekir. Bu projede tam otomatik kümeyi veya VM görüntü oluşturucusunu kullanmak için dizine LSF ikili dosyalarını ve yetkilendirme dosyasını
blobs/ekleyin. - Bu projede tam otomatik kümeyi veya VM görüntü oluşturucusunu kullanmak için dizine
blobs/LSF ikili dosyalarını ve yetkilendirme dosyasını ekleyin. - LSF, Azure HPC Görüntüsünün son sürümlerinde varsayılan olarak yüklenmeyen
edpaketine bağlıdır. Seçtiğiniz VM Görüntüsü öğesini içermiyorsaed, paketi eklemek için cloud-init kullanmanızı öneririz. Örneğin, RedHat Enterprise Linux, AlmaLinux veya CentOS'ta küme şablonunuza aşağıdakileri ekleyebilirsiniz (veya Küme Düzenleme iletişim kutusu aracılığıyla CycleCloud GUI'ye):
[node defaults]
CloudInit = '''#!/bin/bash
yum install -y ed
'''
CycleCloud LSF küme türünün desteklenen senaryoları
LSF, işleri talep üzerine çalıştırabilmek için Azure'dan konakları "ödünç alabilir", gerektiğinde konak ekleyip kaldırabilir. LSF küme türü, tek bir kümedeki çeşitli senaryoları işlemek için esnektir:
- Yüksek aktarım hızı işleri (CPU ve GPU)
- Sıkı bir şekilde bağlanmış (MPI, CPU ve GPU)
- Düşük Öncelik
Birden çok düğüm dizisini ve LSF özelliklerini yapılandırarak bu senaryoları işleyin. CycleCloud düğüm dizilerini önceden yapılandırıyor. LSF'nin düzgün yapılandırılması, çeşitli iş senaryolarını etkinleştirir.
LSF'yi bu önerilere uygun olarak yapılandırırken kaynak gereksinimlerini bsub aşağıdaki şekilde kullanabilirsiniz-R:
placementGroup InfiniBand bağlantılı ağ ile bir iş çalıştırmak için kaynağı kullanın.
-R "span[ptile=2] select[nodearray=='ondemandmpi' && cyclecloudmpi] same[placementgroup]"
GPU'lar için genişletilmiş GPU söz dizimi için LSF desteği kullanmanızı öneririz. Genellikle, bu öznitelikleri lsf.conf: LSB_GPU_NEW_SYNTAX=extend ve LSF_GPU_AUTOCONFIG=Yöğesine eklersiniz. Genişletilmiş söz dizimi desteği etkinleştirildiğinde, GPU hızlandırma ile yakın bağlı bir görev çalıştırmak için placementGroup ile birlikte -gpu kullanın.
-R "span[ptile=1] select[nodearray=='gpumpi' && cyclecloudmpi] same[placementgroup]" -gpu "num=2:mode=shared:j_exclusive=yes"
GPU özellikli işleri paralel bir şekilde çalıştırın.
-R "select[nodearray=='gpu' && !cyclecloudmpi && !cyclecloudlowprio]" -gpu "num=1:mode=shared:j_exclusive=yes"
Düşük öncelikli VM'lerde yoğun bir görev çalıştırın.
-J myArr[1000] -R "select[nodearray=='lowprio' && cyclecloudlowprio]"
CycleCloud LSF Kümesi türü için LSF'yi yapılandırma
Bu senaryoları etkinleştirmek için lsb.shared dosyasına paylaşılan kaynak türleri ekleyin.
cyclecloudhost Boolean () () (instances from Azure CycleCloud)
cyclecloudmpi Boolean () () (instances that support MPI placement)
cyclecloudlowprio Boolean () () (instances that low priority / interruptible from Azure CycleCloud)
nodearray String () () (nodearray from CycleCloud)
placementgroup String () () (id used to note locality of machines)
instanceid String () () (unique host identifier)
cyclecloudlowprio'yı hariç tutabilirsiniz, ancak bu, işlerin hedeflenen VM kiracısı üzerinde çalıştığını doğrulamak için ek bir kontrol sağlar.
CycleCloud için LSF Sağlayıcı Şablonu
LSF CycleCloud sağlayıcısı, yapılandırmaları sağlayıcı şablonu aracılığıyla kullanıma sunar. Bu yapılandırmalar, nodearray'nin tam yapılandırmasının bir alt kümesidir.
cyclecloudprov_templates.jsonCyclecloud için örnek bir LSF şablonu aşağıda verilmiştir :
{
"templateId": "ondemand",
"attributes": {
"type": ["String", "X86_64"],
"ncores": ["Numeric", "44"],
"ncpus": ["Numeric", "44"],
"mem": ["Numeric", "327830"],
"cyclecloudhost": ["Boolean", "1"],
"nodearray" : ["String", "ondemand"]
},
"priority" : 250,
"nodeArray": "ondemand",
"vmType" : "Standard_HC44rs",
"subnetId" : "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/azurecyclecloud-lab/providers/Microsoft.Network/virtualNetworks/hpc-network/subnets/compute",
"imageId" : "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/azurecyclecloud-lab/providers/Microsoft.Compute/images/lsf-worker-a4bc2f10",
"maxNumber": 500,
"keyPairLocation": "/opt/cycle_server/.ssh/id_rsa_admin.pem",
"customScriptUri": "https://aka.ms/user_data.sh",
"userData": "nodearray_name=ondemand"
}
CycleCloud için LSF Şablonu Öznitelikleri
LSF sağlayıcı şablonu tüm nodearray özniteliklerini kullanıma sunmaz. Bu öznitelikler CycleCloud nodearray yapılandırmasının geçersiz kılmaları olarak kabul edilir. Gerekli tek LSF şablonu öznitelikleri şunlardır:
templateIdnodeArray
Diğer öznitelikleri atlayabilirsiniz veya hiç gerekli olmayabilir. CycleCloud şu öznitelikleri çıkarsar:
-
imageId- Azure VM Görüntüsü, örneğin,"/subscriptions/xxxxxxxx-xxxx-xxxx-xxx-xxxxxxxxxxxx/resourceGroups/my-images-rg/providers/Microsoft.Compute/images/lsf-execute-201910230416-80a9a87f"- CycleCloud küme yapılandırması için değişiklik yapma. -
subnetId- Azure alt ağ,"resource_group/vnet/subnet"- CycleCloud küme yapılandırması için geçersiz kılma örneği. -
vmType- örneğin,"Standard_HC44rs"- CycleCloud küme ayarlarını geçersiz kılmak için. -
keyPairLocation- örneğin,"~/.ssh/id_rsa_beta"- CycleCloud küme ayarlarını geçersiz kılmak için. - customScriptUri - Örneğin,
http://10.1.0.4/user_data.sh. Belirtilmediği sürece betik yok. - userData - Örneğin,
"nodearray_name=gpumpi;placement_group_id=gpumpipg1". Belirtilmezse boş.
PlacementGroups Hakkında Bir Not
Azure veri merkezleri, HPC senaryoları için InfiniBand ağ özelliğine sahiptir. Normal Ethernet'in aksine, bu ağların kapsama alanı sınırlıdır. "PlacementGroups", InfiniBand ağ kapsamlarını açıklar. VM'ler aynı yerleştirme grubunda bulunuyorsa ve özel InfiniBand özellikli VM türleriyse, bir InfiniBand ağını paylaşırlar.
Bu yerleştirme grupları LSF ve CycleCloud'da özel işleme gerektirmektedir.
İşte CycleCloud için cyclecloudprov_templates.json örnek bir LSF şablonu: aşağıda verilmiştir.
{
"templateId": "ondemandmpi-1",
"attributes": {
"nodearray": ["String", "ondemandmpi" ],
"zone": [ "String", "westus2"],
"mem": [ "Numeric", 8192.0],
"ncpus": [ "Numeric", 2],
"cyclecloudmpi": [ "Boolean", 1],
"placementgroup": [ "String", "ondemandmpipg1"],
"ncores": [ "Numeric", 2],
"cyclecloudhost": [ "Boolean", 1],
"type": [ "String", "X86_64"],
"cyclecloudlowprio": [ "Boolean", 0]
},
"maxNumber": 40,
"nodeArray": "ondemandmpi",
"placementGroupName": "ondemandmpipg1",
"priority": 448,
"customScriptUri": "https://aka.ms/user_data.sh",
"userData" : "nodearray_name=ondemandmpi;placement_group_id=ondemandmpipg1"
}
Bu dosyada placementGroupName, her şey olabilir, ancak CycleCloud'da placementGroup adını belirler. Bu şablondan CycleCloud'dan ödünç alınan tüm düğümler bu placementGroup'ta bulunur ve InfiniBand özellikli VM'lerse bir IB ağını paylaşır.
placementGroupName özelliği konak özniteliğiyle placementgroupeşleşir. Bu eşleşme kasıtlı ve gereklidir.
placement_group_id özelliğini userData içinde konak başlangıç zamanında user_data.sh kullanmak üzere ayarlayın.
ondemandmpi Özniteliği gereksiz görünebilir, ancak bu işin tanımsız olan placementGroup konaklarda eşleşmesini önlemek için kullanılır.
Yerleştirme gruplarını kullandığınızda, en büyük yerleştirme grubu boyutunu özelliğin değeri Azure.MaxScaleSetSize belirler.
Bu özellik, yerleştirme grubuna ekleyebileceğiniz düğüm sayısını dolaylı olarak sınırlar, ancak LSF bunu dikkate almaz. LSF şablonundaki MaxNumber değerini küme şablonundaki Azure.MaxScaleSetSize değerine eşitle.
user_data.sh
Şablon, user_data.sh betiğini yürütmek için iki öznitelik sağlar: customScriptUri ve userData. Bu öznitelikler, düğüm başlangıcında çalışan kullanıcı tarafından yönetilen betiğin URI ve özel ortam değişkenleridir.
customScriptUri anonim bir CURL komutu betiği indirdiğinden kimlik doğrulaması gerektiremez. Bu betiği şunlar için kullanın:
- Çalışan LSF daemon'larını, özellikle
LSF_LOCAL_RESOURCESveLSF_MASTER_LISTyapılandırın.- Paylaşılan bir dosya sistemindeyse
LSF_TOP, daemon'ları başlatmadan önce öğesininlsf.confLSF_ENVDIRyerel bir kopyasını oluşturmak ve değişkeni ayarlamak yararlı olur.
- Paylaşılan bir dosya sistemindeyse
- Lim, res ve sbatch daemons'ı başlatın.
CycleCloud sağlayıcısı bazı varsayılan ortam değişkenlerini ayarlar.
- rc_account
- şablon_id
- sağlayıcı adı
- küme ismi
- cyclecloud_nodeid (bu değişkeni
instanceIdkaynağa ayarla)
CycleCloud sağlayıcısındaki kaynakları yönetmede yararlı olabilecek diğer kullanıcı veri değişkenleri şunlardır:
- nodearray_name
- yerleştirme_grubu_kimliği
Uyarı
Windows resmi olarak desteklenen bir LSF platformu olsa da CycleCloud şu anda Windows üzerinde LSF çalıştırmayı desteklememektedir.