Aracılığıyla paylaş


Azure HPC Önbelleği veri alma - paralel kopyalama betiği yöntemi

Bu makalede, betiği oluşturma parallelcp ve Verileri Azure HPC Önbelleği ile kullanılmak üzere bir Blob depolama kapsayıcısına taşımak için kullanma yönergeleri verilmektedir.

Azure HPC Önbelleği'nizde verileri Blob depolamaya taşıma hakkında daha fazla bilgi edinmek için Bkz. Verileri Azure Blob depolamaya taşıma.

Parallelcp betiğini oluşturma

Aşağıdaki betik yürütülebilir dosyasını parallelcpekler. (Bu betik Ubuntu için tasarlanmıştır; başka bir dağıtım kullanıyorsanız ayrı olarak yüklemeniz parallel gerekir.)

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

Paralel kopyalama örneği

Bu örnek, Azure HPC Önbelleği kaynak dosyaları kullanarak derlemek glibc için paralel kopya betiğini kullanır.

Kaynak dosyalar Azure HPC Önbelleği bağlama noktasında önbelleğe alınır ve nesne dosyaları yerel sabit sürücüde depolanır.

Bu örnek, paralelleştirme elde etmek için ve make seçeneğiyle -j paralel kopyalama betiğini kullanır.

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