Spuštění NAMD s Microsoft HPC Packem na výpočetních uzlech Linuxu v Azure
Důležité
Klasické virtuální počítače budou vyřazeny 1. března 2023.
Pokud používáte prostředky IaaS z ASM, dokončete migraci do 1. března 2023. Doporučujeme vám, abyste mohli v Azure Resource Manager využít výhod mnoha vylepšení funkcí.
Další informace najdete v tématu Migrace prostředků IaaS do Azure Resource Manager do 1. března 2023.
Tento článek ukazuje jeden ze způsobů, jak na virtuálních počítačích Azure spustit úlohu Vysokovýkonné výpočetní prostředí (HPC) s Linuxem. Tady nastavíte cluster Microsoft HPC Pack v Azure s výpočetními uzly Linuxu a spustíte simulaci NAMD pro výpočet a vizualizaci struktury velkého biomolekulárního systému.
Poznámka
Azure má dva různé modely nasazení pro vytváření a práci s prostředky: Resource Manager a classic. Tento článek popisuje použití obou modelů, ale Microsoft doporučuje, aby většina nových nasazení používala model Resource Manager.
- NAMD (pro program Nanoscale Molekulární Dynamics) je paralelní molekulární dynamics balíček určený pro vysokovýkonnou simulaci velkých biomolekulárních systémů obsahujících až miliony atomů. Mezi příklady těchto systémů patří viry, buňky struktury a velké proteiny. NAMD se škáluje na stovky jader pro typické simulace a na více než 500 000 jader pro největší simulace.
- Microsoft HPC Pack poskytuje funkce pro spouštění rozsáhlých aplikací HPC a paralelních aplikací v clusterech místních počítačů nebo virtuálních počítačů Azure. Původně se vyvinulo jako řešení pro úlohy PROSTŘEDÍ HPC s Windows, sada HPC Pack teď podporuje spouštění linuxových aplikací HPC na virtuálních počítačích výpočetních uzlů s Linuxem nasazených v clusteru HPC Pack. Úvod najdete v tématu Začínáme s výpočetními uzly s Linuxem v clusteru HPC Pack v Azure .
Požadavky
- Cluster HPC Pack s výpočetními uzly s Linuxem – Nasazení clusteru HPC Pack s výpočetními uzly s Linuxem v Azure pomocí šablony Azure Resource Manager nebo skriptu Azure PowerShell. Informace o požadavcích a krocích pro některou z možností najdete v tématu Začínáme s výpočetními uzly s Linuxem v clusteru HPC Pack v Azure . Pokud zvolíte možnost nasazení skriptu PowerShellu, podívejte se na ukázkový konfigurační soubor v ukázkových souborech na konci tohoto článku. Tento soubor konfiguruje cluster HPC Pack založený na Azure, který se skládá z hlavního uzlu Windows Server 2012 R2 a čtyř velkých výpočetních uzlů CentOS 6.6. Upravte tento soubor podle potřeby pro vaše prostředí.
- NaMD software a výukové soubory – Stáhněte si software NAMD pro Linux z lokality NAMD (vyžaduje se registrace). Tento článek je založený na NAMD verze 2.10 a používá archiv Linux-x86_64 (64bitová verze Intel/AMD s Ethernetem). Stáhněte si také soubory kurzu NAMD. Stahování jsou soubory .tar a potřebujete nástroj pro Windows k extrahování souborů v hlavním uzlu clusteru. Pokud chcete soubory extrahovat, postupujte podle pokynů dále v tomto článku.
- VMD (volitelné) – Pokud chcete zobrazit výsledky úlohy NAMD, stáhněte a nainstalujte virtuální počítač VMD molekulární vizualizace na počítač podle vašeho výběru. Aktuální verze je 1.9.2. Pokud chcete začít, podívejte se na web pro stažení VMD.
Nastavení vzájemné důvěryhodnosti mezi výpočetními uzly
Spuštění úlohy křížového uzlu na více uzlech Linuxu vyžaduje, aby uzly vzájemně důvěřovaly (pomocí rsh nebo ssh). Když vytvoříte cluster HPC Pack pomocí skriptu nasazení Microsoft HPC Pack IaaS, skript automaticky nastaví trvalý vzájemný vztah důvěryhodnosti pro zadaný účet správce. Pro uživatele bez oprávnění správce, které vytvoříte v doméně clusteru, musíte nastavit dočasný vzájemný vztah důvěryhodnosti mezi uzly, když je jim přidělena úloha. Potom po dokončení úlohy zničte vztah. Pokud to chcete udělat pro každého uživatele, poskytněte dvojici klíčů RSA clusteru, který sada HPC Pack používá k navázání vztahu důvěryhodnosti. Postupujte podle pokynů.
Generování páru klíčů RSA
Je snadné vygenerovat pár klíčů RSA, který obsahuje veřejný klíč a privátní klíč, spuštěním příkazu Linux ssh-keygen .
Přihlaste se k počítači s Linuxem.
Spusťte následující příkaz:
ssh-keygen -t rsa
Poznámka
Stisknutím klávesy Enter použijte výchozí nastavení, dokud se příkaz nedokončil. Zde nezadávejte přístupové heslo; po zobrazení výzvy k zadání hesla stačí stisknout Enter.
Změňte adresář na adresář ~/.ssh. Privátní klíč je uložen v id_rsa a veřejný klíč v id_rsa.pub.
Přidání páru klíčů do clusteru HPC Pack
Připojte se ke vzdálené ploše k virtuálnímu počítači hlavního uzlu pomocí přihlašovacích údajů domény, které jste zadali při nasazení clusteru (například hpc\clusteradmin). Cluster spravujete z hlavního uzlu.
Pomocí standardních postupů Windows Serveru vytvořte uživatelský účet domény v doméně služby Active Directory clusteru. Použijte například nástroj Uživatelé a počítače služby Active Directory na hlavním uzlu. Příklady v tomto článku předpokládají, že vytvoříte uživatele domény s názvem hpcuser v doméně hpclab (hpclab\hpcuser).
Přidejte uživatele domény do clusteru HPC Pack jako uživatele clusteru. Pokyny najdete v tématu Přidání nebo odebrání uživatelů clusteru.
Vytvořte soubor s názvem C:\cred.xml a zkopírujte do něj data klíče RSA. Příklad najdete v ukázkových souborech na konci tohoto článku.
<ExtendedData> <PrivateKey>Copy the contents of private key here</PrivateKey> <PublicKey>Copy the contents of public key here</PublicKey> </ExtendedData>
Otevřete příkazový řádek a zadáním následujícího příkazu nastavte přihlašovací údaje pro účet hpclab\hpcuser. Pomocí parametru extendeddata předáte název souboru C:\cred.xml, který jste vytvořili pro data klíče.
hpccred setcreds /extendeddata:c:\cred.xml /user:hpclab\hpcuser /password:<UserPassword>
Tento příkaz se úspěšně dokončí bez výstupu. Po nastavení přihlašovacích údajů pro uživatelské účty, které potřebujete ke spouštění úloh, uložte cred.xml soubor do zabezpečeného umístění nebo ho odstraňte.
Pokud jste na jednom z uzlů Linuxu vygenerovali pár klíčů RSA, nezapomeňte klíče po dokončení jejich použití odstranit. Sada HPC Pack nenastaví vzájemnou důvěryhodnost, pokud najde existující soubor id_rsa nebo soubor id_rsa.pub.
Důležité
Nedoporučujeme spustit úlohu Linuxu jako správce clusteru ve sdíleném clusteru, protože úloha odeslaná správcem běží pod kořenovým účtem na uzlech Linuxu. Úloha odeslaná uživatelem bez oprávnění správce běží pod místním uživatelským účtem Linuxu se stejným názvem jako uživatel úlohy. V tomto případě sada HPC Pack nastaví vzájemnou důvěryhodnost tohoto uživatele Linuxu napříč všemi uzly přidělenou k úloze. Před spuštěním úlohy můžete nastavit uživatele Linuxu ručně na uzlech Linuxu nebo balíček HPC Pack automaticky vytvoří uživatele při odeslání úlohy. Pokud hpC Pack vytvoří uživatele, sada HPC Pack ho po dokončení úlohy odstraní. Aby se snížila bezpečnostní hrozba, klíče se po dokončení úlohy na uzlech odeberou.
Nastavení sdílené složky pro uzly Linuxu
Teď nastavte sdílenou složku SMB a připojte sdílenou složku na všech uzlech Linuxu, aby uzly Linuxu mohly přistupovat k souborům NAMD pomocí společné cesty. Postupujte podle pokynů pro připojení sdílené složky na hlavním uzlu. Sdílená složka se doporučuje pro distribuce, jako je CentOS 6.6, které aktuálně nepodporují službu Azure File. Pokud uzly s Linuxem podporují sdílenou složku Azure, přečtěte si téma Jak používat azure File Storage s Linuxem. Další možnosti sdílení souborů pomocí sady HPC Pack najdete v tématu Začínáme s výpočetními uzly s Linuxem v clusteru HPC Pack v Azure.
Vytvořte složku na hlavním uzlu a sdílejte ji všem nastavením oprávnění ke čtení a zápisu. V tomto příkladu je \\CentOS66HN\Namd název složky, kde CentOS66HN je název hostitele hlavního uzlu.
Ve sdílené složce vytvořte podsložku s názvem Namd2. V namd2 vytvořte další podsložku s názvem namdsample.
Extrahujte soubory NAMD ve složce pomocí verze tar systému Windows nebo jiného nástroje systému Windows, který pracuje s archivy .tar.
- Extrahujte archiv tar NAMD do \\CentOS66HN\Namd\namd2.
- Extrahujte soubory kurzu v části \\CentOS66HN\Namd\namd2\namdsample.
Otevřete okno Windows PowerShell a spuštěním následujících příkazů připojte sdílenou složku do uzlů Linuxu.
clusrun /nodegroup:LinuxNodes mkdir -p /namd2 clusrun /nodegroup:LinuxNodes mount -t cifs //CentOS66HN/Namd/namd2 /namd2 -o vers=2.1`,username=<username>`,password='<password>'`,dir_mode=0777`,file_mode=0777
První příkaz vytvoří složku s názvem /namd2 na všech uzlech ve skupině LinuxNode. Druhý příkaz připojí sdílenou složku //CentOS66HN/Namd/namd2 do složky s dir_mode a file_mode bity nastavenými na 777. Uživatelské jméno a heslo v příkazu by měly být přihlašovací údaje uživatele na hlavním uzlu.
Poznámka
Symbol "" v druhém příkazu je řídicí symbol pro PowerShell. "'," znamená "," (znak čárky) je součástí příkazu.
Vytvoření skriptu Bash pro spuštění úlohy NAMD
Vaše úloha NAMD potřebuje soubor nodelist pro spuštění ovládacích tlačítek k určení počtu uzlů, které se mají použít při spouštění procesů NAMD. Použijete skript Bash, který vygeneruje soubor nodelist a spustí ovládací tlačítko s tímto souborem nodelist. Pak můžete odeslat úlohu NAMD ve Správci clusteru HPC, která tento skript volá.
Pomocí textového editoru podle vašeho výběru vytvořte skript Bash ve složce /namd2 obsahující soubory programu NAMD a pojmenujte ho hpccharmrun.sh. Rychlý důkaz konceptu zkopírujte ukázkový skript hpccharmrun.sh uvedený na konci tohoto článku a přejděte do části Odeslat úlohu NAMD.
Tip
Uložte skript jako textový soubor s koncemi řádků Linuxu (jenom LF, ne CR LF). Tím se zajistí správné spuštění na uzlech Linuxu.
Následuje podrobnosti o tom, co tento skript bash dělá.
Definujte některé proměnné.
#!/bin/bash # The path of this script SCRIPT_PATH="$( dirname "${BASH_SOURCE[0]}" )" # Charmrun command CHARMRUN=${SCRIPT_PATH}/charmrun # Argument of ++nodelist NODELIST_OPT="++nodelist" # Argument of ++p NUMPROCESS="+p"
Získejte informace o uzlu z proměnných prostředí. $NODESCORES ukládá seznam rozdělených slov z $CCP_NODES_CORES. $COUNT je velikost $NODESCORES.
# Get node information from the environment variables NODESCORES=(${CCP_NODES_CORES}) COUNT=${#NODESCORES[@]}
Formát proměnné $CCP_NODES_CORES je následující:
<Number of nodes> <Name of node1> <Cores of node1> <Name of node2> <Cores of node2>…
Tato proměnná uvádí celkový počet uzlů, názvů uzlů a počet jader na každém uzlu, který jsou přiděleny k úloze. Pokud například úloha potřebuje ke spuštění 10 jader, hodnota $CCP_NODES_CORES je podobná:
3 CENTOS66LN-00 4 CENTOS66LN-01 4 CENTOS66LN-03 2
Pokud není proměnná $CCP_NODES_CORES nastavená, spusťte ovládací tlačítko přímo. (K tomu by mělo dojít pouze v případě, že tento skript spustíte přímo na uzlech Linuxu.)
if [ ${COUNT} -eq 0 ] then # CCP_NODES is_CORES is not found or is empty, so just run charmrun without nodelist arg. #echo ${CHARMRUN} $* ${CHARMRUN} $*
Nebo vytvořte soubor nodelist pro spuštění ovládacích tlačítek.
else # Create the nodelist file NODELIST_PATH=${SCRIPT_PATH}/nodelist_$$ # Write the head line echo "group main" > ${NODELIST_PATH} # Get every node name and number of cores and write into the nodelist file I=1 while [ ${I} -lt ${COUNT} ] do echo "host ${NODESCORES[${I}]} ++cpus ${NODESCORES[$(($I+1))]}" >> ${NODELIST_PATH} let "I=${I}+2" done
Spusťte ovládací prvek charmrun se souborem nodelist, získejte jeho návratový stav a odeberte soubor nodelist na konci.
${CCP_NUMCPUS} je další proměnná prostředí nastavená hlavním uzlem sady HPC Pack. Ukládá celkový počet jader přidělených této úloze. Používáme ho k určení počtu procesů pro spuštění ovládacích tlačítek.
# Run charmrun with nodelist arg #echo ${CHARMRUN} ${NUMPROCESS}${CCP_NUMCPUS} ${NODELIST_OPT} ${NODELIST_PATH} $* ${CHARMRUN} ${NUMPROCESS}${CCP_NUMCPUS} ${NODELIST_OPT} ${NODELIST_PATH} $* RTNSTS=$? rm -f ${NODELIST_PATH} fi
Ukončete se stavem vrácení ovládacích tlačítek .
exit ${RTNSTS}
Následuje informace v souboru nodelist, který skript vygeneruje:
group main
host <Name of node1> ++cpus <Cores of node1>
host <Name of node2> ++cpus <Cores of node2>
…
Příklad:
group main
host CENTOS66LN-00 ++cpus 4
host CENTOS66LN-01 ++cpus 4
host CENTOS66LN-03 ++cpus 2
Odeslání úlohy NAMD
Teď jste připraveni odeslat úlohu NAMD ve Správci clusteru HPC.
Připojte se k hlavnímu uzlu clusteru a spusťte Správce clusteru HPC.
Ve správě prostředků se ujistěte, že jsou výpočetní uzly Linuxu ve stavu Online . Pokud nejsou, vyberte je a klikněte na Přenést online.
Ve správě úloh klepněte na tlačítko Nová úloha.
Zadejte název úlohy, například hpccharmrun.
Na stránce Podrobnosti úlohy v části Zdroje úloh vyberte typ prostředku jako uzel a nastavte minimum na 3. , spustíme úlohu na třech uzlech Linuxu a každý uzel má čtyři jádra.
Klepněte na tlačítko Upravit úkoly v levém navigačním panelu a potom klepněte na tlačítko Přidat , chcete-li přidat úkol do úlohy.
Na stránce Podrobnosti úkolu a přesměrování vstupně-výstupních operací nastavte následující hodnoty:
Příkazový řádek -
/namd2/hpccharmrun.sh ++remote-shell ssh /namd2/namd2 /namd2/namdsample/1-2-sphere/ubq_ws_eq.conf > /namd2/namd2_hpccharmrun.log
Tip
Předchozí příkazový řádek je jeden příkaz bez konců řádků. Zalamuje se na několika řádcích pod příkazovým řádkem.
Pracovní adresář – /namd2
Minimum – 3
Poznámka
Tady nastavíte pracovní adresář, protože se ovládací prvek charmrun pokusí přejít na stejný pracovní adresář na každém uzlu. Pokud pracovní adresář není nastavený, spustí sada HPC Pack příkaz v náhodně pojmenované složce vytvořené na jednom z linuxových uzlů. To způsobí následující chybu na ostatních uzlech:
/bin/bash: line 37: cd: /tmp/nodemanager_task_94_0.mFlQSN: No such file or directory.
Chcete-li se tomuto problému vyhnout, zadejte cestu ke složce, ke které mají přístup všechny uzly jako pracovní adresář.
Chcete-li tuto úlohu spustit, klepněte na tlačítko OK a potom klepněte na tlačítko Odeslat .
Sada HPC Pack ve výchozím nastavení odešle úlohu jako váš aktuální přihlášený uživatelský účet. Po kliknutí na Tlačítko Odeslat může být vyzváno k zadání uživatelského jména a hesla.
Za určitých podmínek si sada HPC Pack pamatuje informace o uživateli, které zadáte dříve, a nezobrazí toto dialogové okno. Pokud chcete, aby se sada HPC Pack zobrazovala znovu, zadejte na příkazovém řádku následující příkaz a poté úlohu odešlete.
hpccred delcreds
Dokončení úlohy trvá několik minut.
Vyhledejte protokol úloh na adrese \\Namd\namd2\namd2_hpccharmrun.log a výstupní soubory v souboru \\Namd\namd2\namdsample\1-2-sphere.
Volitelně můžete spustit VMD a zobrazit výsledky úlohy. Kroky pro vizualizaci výstupních souborů NAMD (v tomto případě je ubiquitin protein molekula ve vodní sphere) nad rámec tohoto článku. Podrobnosti najdete v kurzu NAMD .
Ukázkové soubory
Ukázkový konfigurační soubor XML pro nasazení clusteru pomocí skriptu PowerShellu
<?xml version="1.0" encoding="utf-8" ?>
<IaaSClusterConfig>
<Subscription>
<SubscriptionName>Subscription-1</SubscriptionName>
<StorageAccount>mystorageaccount</StorageAccount>
</Subscription>
<Location>West US</Location>
<VNet>
<VNetName>MyVNet</VNetName>
<SubnetName>Subnet-1</SubnetName>
</VNet>
<Domain>
<DCOption>HeadNodeAsDC</DCOption>
<DomainFQDN>hpclab.local</DomainFQDN>
</Domain>
<Database>
<DBOption>LocalDB</DBOption>
</Database>
<HeadNode>
<VMName>CentOS66HN</VMName>
<ServiceName>MyHPCService</ServiceName>
<VMSize>Large</VMSize>
<EnableRESTAPI />
<EnableWebPortal />
</HeadNode>
<LinuxComputeNodes>
<VMNamePattern>CentOS66LN-%00%</VMNamePattern>
<ServiceName>MyLnxCNService</ServiceName>
<VMSize>Large</VMSize>
<NodeCount>4</NodeCount>
<ImageName>5112500ae3b842c8b9c604889f8753c3__OpenLogic-CentOS-66-20150325</ImageName>
</LinuxComputeNodes>
</IaaSClusterConfig>
Ukázkový soubor cred.xml
<ExtendedData>
<PrivateKey>-----BEGIN RSA PRIVATE KEY-----
MIIEpQIBAAKCAQEAxJKBABhnOsE9eneGHvsjdoXKooHUxpTHI1JVunAJkVmFy8JC
qFt1pV98QCtKEHTC6kQ7tj1UT2N6nx1EY9BBHpZacnXmknpKdX4Nu0cNlSphLpru
lscKPR3XVzkTwEF00OMiNJVknq8qXJF1T3lYx3rW5EnItn6C3nQm3gQPXP0ckYCF
Jdtu/6SSgzV9kaapctLGPNp1Vjf9KeDQMrJXsQNHxnQcfiICp21NiUCiXosDqJrR
AfzePdl0XwsNngouy8t0fPlNSngZvsx+kPGh/AKakKIYS0cO9W3FmdYNW8Xehzkc
VzrtJhU8x21hXGfSC7V0ZeD7dMeTL3tQCVxCmwIDAQABAoIBAQCve8Jh3Wc6koxZ
qh43xicwhdwSGyliZisoozYZDC/ebDb/Ydq0BYIPMiDwADVMX5AqJuPPmwyLGtm6
9hu5p46aycrQ5+QA299g6DlF+PZtNbowKuvX+rRvPxagrTmupkCswjglDUEYUHPW
05wQaNoSqtzwS9Y85M/b24FfLeyxK0n8zjKFErJaHdhVxI6cxw7RdVlSmM9UHmah
wTkW8HkblbOArilAHi6SlRTNZG4gTGeDzPb7fYZo3hzJyLbcaNfJscUuqnAJ+6pT
iY6NNp1E8PQgjvHe21yv3DRoVRM4egqQvNZgUbYAMUgr30T1UoxnUXwk2vqJMfg2
Nzw0ESGRAoGBAPkfXjjGfc4HryqPkdx0kjXs0bXC3js2g4IXItK9YUFeZzf+476y
OTMQg/8DUbqd5rLv7PITIAqpGs39pkfnyohPjOe2zZzeoyaXurYIPV98hhH880uH
ZUhOxJYnlqHGxGT7p2PmmnAlmY4TSJrp12VnuiQVVVsXWOGPqHx4S4f9AoGBAMn/
vuea7hsCgwIE25MJJ55FYCJodLkioQy6aGP4NgB89Azzg527WsQ6H5xhgVMKHWyu
Q1snp+q8LyzD0i1veEvWb8EYifsMyTIPXOUTwZgzaTTCeJNHdc4gw1U22vd7OBYy
nZCU7Tn8Pe6eIMNztnVduiv+2QHuiNPgN7M73/x3AoGBAOL0IcmFgy0EsR8MBq0Z
ge4gnniBXCYDptEINNBaeVStJUnNKzwab6PGwwm6w2VI3thbXbi3lbRAlMve7fKK
B2ghWNPsJOtppKbPCek2Hnt0HUwb7qX7Zlj2cX/99uvRAjChVsDbYA0VJAxcIwQG
TxXx5pFi4g0HexCa6LrkeKMdAoGAcvRIACX7OwPC6nM5QgQDt95jRzGKu5EpdcTf
g4TNtplliblLPYhRrzokoyoaHteyxxak3ktDFCLj9eW6xoCZRQ9Tqd/9JhGwrfxw
MS19DtCzHoNNewM/135tqyD8m7pTwM4tPQqDtmwGErWKj7BaNZARUlhFxwOoemsv
R6DbZyECgYEAhjL2N3Pc+WW+8x2bbIBN3rJcMjBBIivB62AwgYZnA2D5wk5o0DKD
eesGSKS5l22ZMXJNShgzPKmv3HpH22CSVpO0sNZ6R+iG8a3oq4QkU61MT1CfGoMI
a8lxTKnZCsRXU1HexqZs+DSc+30tz50bNqLdido/l5B4EJnQP03ciO0=
-----END RSA PRIVATE KEY-----</PrivateKey>
<PublicKey>ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDEkoEAGGc6wT16d4Ye+yN2hcqigdTGlMcjUlW6cAmRWYXLwkKoW3WlX3xAK0oQdMLqRDu2PVRPY3qfHURj0EEellpydeaSekp1fg27Rw2VKmEumu6Wxwo9HddXORPAQXTQ4yI0lWSerypckXVPeVjHetbkSci2foLedCbeBA9c/RyRgIUl227/pJKDNX2Rpqly0sY82nVWN/0p4NAyslexA0fGdBx+IgKnbU2JQKJeiwOomtEB/N492XRfCw2eCi7Ly3R8+U1KeBm+zH6Q8aH8ApqQohhLRw71bcWZ1g1bxd6HORxXOu0mFTzHbWFcZ9ILtXRl4Pt0x5Mve1AJXEKb username@servername;</PublicKey>
</ExtendedData>
Ukázkový skript hpccharmrun.sh
#!/bin/bash
# The path of this script
SCRIPT_PATH="$( dirname "${BASH_SOURCE[0]}" )"
# Charmrun command
CHARMRUN=${SCRIPT_PATH}/charmrun
# Argument of ++nodelist
NODELIST_OPT="++nodelist"
# Argument of ++p
NUMPROCESS="+p"
# Get node information from ENVs
# CCP_NODES_CORES=3 CENTOS66LN-00 4 CENTOS66LN-01 4 CENTOS66LN-03 4
NODESCORES=(${CCP_NODES_CORES})
COUNT=${#NODESCORES[@]}
if [ ${COUNT} -eq 0 ]
then
# If CCP_NODES_CORES is not found or is empty, just run the charmrun without nodelist arg.
#echo ${CHARMRUN} $*
${CHARMRUN} $*
else
# Create the nodelist file
NODELIST_PATH=${SCRIPT_PATH}/nodelist_$$
# Write the head line
echo "group main" > ${NODELIST_PATH}
# Get every node name & cores and write into the nodelist file
I=1
while [ ${I} -lt ${COUNT} ]
do
echo "host ${NODESCORES[${I}]} ++cpus ${NODESCORES[$(($I+1))]}" >> ${NODELIST_PATH}
let "I=${I}+2"
done
# Run the charmrun with nodelist arg
#echo ${CHARMRUN} ${NUMPROCESS}${CCP_NUMCPUS} ${NODELIST_OPT} ${NODELIST_PATH} $*
${CHARMRUN} ${NUMPROCESS}${CCP_NUMCPUS} ${NODELIST_OPT} ${NODELIST_PATH} $*
RTNSTS=$?
rm -f ${NODELIST_PATH}
fi
exit ${RTNSTS}