Azure HPC Cache data ingest - طريقة النسخ النصي المتوازي

توفر هذه المقالة إرشادات لإنشاء parallelcp البرنامج النصي واستخدامه لنقل البيانات إلى حاوية تخزين Blob لاستخدامها مع Azure HPC Cache.

لمعرفة المزيد حول نقل البيانات إلى وحدة تخزين Blob لذاكرة التخزين المؤقت ل Azure HPC، اقرأ نقل البيانات إلى وحدة تخزين Azure Blob.

إنشاء البرنامج النصي parallelcp

سيضيف البرنامج النصي أدناه الملف القابل للتنفيذ parallelcp. (تم تصميم هذا البرنامج النصي لأوبونتو ؛ إذا كنت تستخدم توزيعة أخرى ، فيجب عليك التثبيت 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

مثال على النسخ المتوازي

يستخدم هذا المثال البرنامج النصي للنسخ المتوازي للترجمة البرمجي glibc باستخدام الملفات المصدر في ذاكرة التخزين المؤقت ل Azure HPC.

يتم تخزين الملفات المصدر مؤقتا في نقطة تحميل Azure HPC Cache، ويتم تخزين ملفات الكائنات على محرك الأقراص الثابتة المحلي.

يستخدم هذا المثال البرنامج النصي للنسخ المتوازي مع الخيار -j والحصول make على التوازي.

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