Bagikan melalui


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