Gegevensopname van Azure HPC Cache - methode voor parallelle kopieerscripts

In dit artikel vindt u instructies voor het maken van het parallelcp script en het gebruiken ervan voor het verplaatsen van gegevens naar een Blob Storage-container voor gebruik met Azure HPC Cache.

Lees Gegevens verplaatsen naar Azure Blob Storage voor meer informatie over het verplaatsen van gegevens naar Blob Storage voor uw Azure HPC Cache.

Het parallelcp-script maken

Met het onderstaande script wordt het uitvoerbare bestand parallelcptoegevoegd. (Dit script is ontworpen voor Ubuntu. Als u een andere distributie gebruikt, moet u afzonderlijk installeren parallel .)

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

Voorbeeld van parallelle kopie

In dit voorbeeld wordt het parallelle kopieerscript gebruikt om te compileren glibc met behulp van bronbestanden in de Azure HPC Cache.

De bronbestanden worden in de cache opgeslagen in het koppelpunt van Azure HPC Cache en de objectbestanden worden opgeslagen op de lokale harde schijf.

In dit voorbeeld wordt het script voor parallelle kopie gebruikt met de optie -j en make om parallellisatie te verkrijgen.

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