Penyisipan data Azure HPC Cache - metode skrip salinan paralel
Artikel ini memberikan instruksi untuk membuat skrip parallelcp
dan menggunakannya untuk memindahkan data ke kontainer penyimpanan Blob untuk digunakan dengan Azure HPC Cache.
Untuk mempelajari selengkapnya tentang memindahkan data ke penyimpanan Blob untuk Azure HPC Cache Anda, baca Memindahkan data ke penyimpanan Azure Blob.
Membuat skrip paralelcp
Skrip di bawah ini akan menambahkan parallelcp
yang dapat dieksekusi. (Skrip ini dirancang untuk Ubuntu; jika menggunakan distribusi lain, Anda harus menginstal parallel
secara terpisah.)
sudo touch /usr/bin/parallelcp && sudo chmod 755 /usr/bin/parallelcp && sudo sh -c "/bin/cat >/usr/bin/parallelcp" <<EOM
#!/bin/bash
display_usage() {
echo -e "\nUsage: \$0 SOURCE_DIR DEST_DIR\n"
}
if [ \$# -le 1 ] ; then
display_usage
exit 1
fi
if [[ ( \$# == "--help") || \$# == "-h" ]] ; then
display_usage
exit 0
fi
SOURCE_DIR="\$1"
DEST_DIR="\$2"
if [ ! -d "\$SOURCE_DIR" ] ; then
echo "Source directory \$SOURCE_DIR does not exist, or is not a directory"
display_usage
exit 2
fi
if [ ! -d "\$DEST_DIR" ] && ! mkdir -p \$DEST_DIR ; then
echo "Destination directory \$DEST_DIR does not exist, or is not a directory"
display_usage
exit 2
fi
if [ ! -w "\$DEST_DIR" ] ; then
echo "Destination directory \$DEST_DIR is not writeable, or is not a directory"
display_usage
exit 3
fi
if ! which parallel > /dev/null ; then
sudo apt-get update && sudo apt install -y parallel
fi
DIRJOBS=225
JOBS=225
find \$SOURCE_DIR -mindepth 1 -type d -print0 | sed -z "s/\$SOURCE_DIR\///" | parallel --will-cite -j\$DIRJOBS -0 "mkdir -p \$DEST_DIR/{}"
find \$SOURCE_DIR -mindepth 1 ! -type d -print0 | sed -z "s/\$SOURCE_DIR\///" | parallel --will-cite -j\$JOBS -0 "cp -P \$SOURCE_DIR/{} \$DEST_DIR/{}"
EOM
Contoh salinan paralel
Contoh ini menggunakan skrip salinan paralel untuk mengompilasi glibc
dengan file sumber dari Azure HPC Cache.
File sumber disimpan di titik pemasangan Azure HPC Cache, dan file objek disimpan di hard drive lokal.
Contoh ini menggunakan skrip salinan paralel dengan opsi -j
dan make
untuk mendapatkan paralelisasi.
sudo apt-get update
sudo apt install -y gcc bison gcc binutils make parallel
cd
wget https://mirrors.kernel.org/gnu/libc/glibc-2.27.tar.bz2
tar jxf glibc-2.27.tar.bz2
ln -s /nfs/cache1 hpccache
time parallelcp glibc-2.27 avere/glibc-2.27
cd
mkdir obj
mkdir usr
cd obj
/home/azureuser/avere/glibc-2.27/configure --prefix=/home/azureuser/usr
time make -j