خدمات مبتنی بر کلاستر

مرکز پردازش سریع دانشگاه صنعتی شریف، بستری یکپارچه مبتنی بر کلاستر پردازشی براساس سیستم‌عامل لینوکس را برای سرویس‌دهی به کاربران را فراهم نموده‌ است. از مزایای این روش، نصب و آماده بودن نرم‌افزارهای مورد نیاز برای اجرا، محاسبه میزان مصرف بر اساس میزان نیاز به اجرا و قفل نشدن منابع برای کاربران است. برای استفاده از خدمات مبتنی بر کلاستر، پس از مطالعه راهنمای استفاده از خدمات به آدرس ثبت نام مراجعه نمایید.

شرایط و ضوابط ثبت سفارش و قوانین و مقررات استفاده از کلاستر زمان‌بندی

نحوه ارسال کار(های) پردازشی:

1-کاربران از طریق پرتال به صورت بر خط می‌توانند اکانت ساخته و کارهای خود را به زمابند کلاستر برای اجرا ارسال نمایند.

۲-کاربران می‌توانند تعداد نامحدودی از جاب را برای اجرا به کلاستر ارسال نمایند.

۳-راهنمای صف‌های اختصاص یافته در صفحه راهنمای صف‌ها ، ‌قرار گرفته است.

نحوه اجرای کارهای پردازشی

۱-کارهای پردازشی ارسالی براساس زمان درخواست به صورت اولین درخواست-اولین-سرویس‌دهی اجرا می‌گردند. منطقا در برهه‌های زمانی امکان تشکیل صف وجود دارد.

۲-کاربر با دستورات زمان‌بندی می‌تواند اجرای جاب‌های خود را مدیریت نمایند. برای این مورد راهنمای استفاده از کلاستر مطالعه گردد.

۳-میزان استفاده از منابع باید متناسب با تعداد میزان درخواستی باشد در صورت استفاده بیش از میزان درخواستی کار بدون اطلاع قطع می گردد و در صورت تکرار حساب کاربری مسدود می شود.

4-کاربر حق استفاده از منابع پردازشی برای راه‌اندازی سرویس‌های نظیر استخراج رمزارز و پژوهش‌های در این امر و مواردی از این دست که امکانات دولتی را شامل می‌شود را ندارد و ایشان در صورت نیاز به مقامات مسئول معرفی می‌گردد و در صورت بررسی طبق مقامات، ایشان برای این امر مسئول خواهند بود.

نرم‌افزارهای موجود و درخواست نصب نرم‌افزار جدید
۱-لیست نرم‌افزارهای پرتکرار موجود در مرکز پردازش سریع در لینک موجود می‌باشد.

۲-کاربران دسترسی‌های مرسوم برای نصب نرم‌ُافزار در پوشه Home‌ خود را دارا می‌باشند.

۳-در صورت نیاز به نرم‌افزار کاربردی دیگر که در کلاستر موجود نمی‌باشد و نیازمند دسترسی root برای نصب است، نیاز است که کاربر نرم‌افزار مدنظر را بهمراه راهنمای نصب بر روی سیستم‌عامل لینوکس را از طریق سامانه پشتیبانی ارسال نمایید تا انجام نصب توسط کارشناسان پشتیبانی صورت گیرد.

پشتیبانی:
کاربران به منظور دریافت پشتیبانی و اعلام مشکل در ارتباط از طریق سایت پشتیبانی می‌توانند مشکلات خود را همراه با شماره و مسیر اجرا، لاگ و تصویری از خطا اعلام نمایند.

اتمام سرویس و نگهداری داده:
۱-به منظور مدیریت بهتر فضای اشتراکی کاربران، کاربران ملزم به انتقال اطلاعات از کلاستر به رایانه خود و همچنین پشتیبان گرفتن از منابع خود هستند و نباید از فضای اشتراکی برای نگهداری اطلاعات استفاده نمایند و فقط باید اطلاعات کارهای پردازشی و دیتاست‌های که اجرا دارند را نگهداری نمایند. این نگهداری نیز نباید مدت زمان بیشتر از یک ماه را شامل گردد. باید در نظر داشت که مرکز هیچگونه تضمینی بابت ذخیره و نگه داری اطلاعات بر روی سرور را نخواهد کرد و کاربران ملزم به برداشت داده‌های خود پس از هر اجرا هستند.

۲-به منظور مدیریت بهتر فضای اشتراکی، به طور دوره‌ای درخواست به کاربران برای مدیریت فضا را ارسال می‌نمایید که کاربران باید همکاری لازم برای مدیریت فضا را انجام دهند.

قطعی سرویس:
۱-در صورت قطعی سرویسی که عهده‌دار آن، مرکز پردازش سریع باشد نظیر قطعی برق، تنظیمات اشتباه از سوی کارشناس پشتیبانی،‌ هنگ کردن سیستم عامل تا رفع آن و ..،  هزینه کار پردازشی به کاربر بازگردانده می‌شود.

2- در صورت ایجاد قطعی‌هایی که کاربر فراهم آورده است مانند تغییر در تنظیمات نادرست نظایر آن، عهده‌دار این زمان از دست رفته کاربر است و زمان سرویس تمدید نخواهد شد.

راه‌اندازی سرویس غیر مرتبط

 کاربر حق استفاده از منابع پردازشی برای راه‌اندازی سرویس‌های نظیر استخراج رمزارز و پژوهش‌های در این امر و مواردی از این دست که قوانین دولتی را شامل می‌شود، را ندارد و در صورت تخلف، ایشان در صورت نیاز به مقامات مسئول معرفی می‌گردد و در صورت بررسی طبق مقامات، ایشان برای این امر مسئول خواهد بود.

با خدمات مبتنی بر کلاستر زمان‌بندی بیشتر آشنا شوید

در این روش، ارائه خدمات مبتنی بر کلاستر زمان‌بندی است. کلاستر مجموعه‌ای از منابع پردازشی و ذخیره‌سازی است که به صورت اشتراکی میان کاربران مورد استفاده قرار می‌گیرد. بهره‌‌برداران، کارهای پردازشی خود را در کلاستر ارسال می‌کند و در یک توالی مشخص، کارهای کاربران در صف‌های مجزا اجرا می‏شود. پس از اتمام اجرا، خروجی مدنظر تولید و در اختیار کاربر قرار می‌گیرد.

فایل اجرایی run.sh

این فایل، یک اسکریپت لینوکسی است که تنظیمات و نحوه اجرای کد یا نرم‌افزار مورد نیاز کاربر را مشخص میکند. این فایل معمولا شکلی شبیه زیر دارد:

#PBS -N myjob

#PBS -m abe

#PBS -M your@email.adress

#PBS -l nodes=1:ppn=1

cd $PBS_O_WORKDIR

PATH TO THE APPLICATION TO BE RUN

در این کد، سطر اول مشخص کننده نامی است که برای کار خود در نظر میگیرید و کاملا دلخواه است. سطر دوم، سطوح اطلاع‌رسانی را مشخص میکند. حرف a مشخص میکند که در صورت کنسل شدن اجرا، به شما اطلاع داده شود. حروف b و e هم به ترتیب برای اطلاع‌رسانی در زمان شروع و پایان یک کار مورد استفاده قرار میگیرند. خط سوم، ایمیل مورد نیاز برای اطلاع‌رسانی را تعیین می‌نماید. در خط چهارم، تعداد گره‌ها و هسته‌های پردازشی مورد نیاز مشخص می‌گردد. خط 5 اشاره‌ای است به دیرکتوری جاری کاربر و در خط 6 به بعد نیز کدهای لازم جهت اجرای برنامه مورد نظر کاربر مشخص میگردد.

نصب محیط و دسترسی به اینترنت جهت دانلود بسته‌های مورد نیاز

چگونگی ایجاد محیط دلخواه و نصب پکیج‌های مختلف:

به منظور ایجاد و محیط مبتنی بر conda در مرکز پردازش سریع به این ترتیب پیش می‌رویم:

ایجاد محیط:

/share/apps/Anaconda/anaconda3.8/bin/conda create –name my_env

توجه: دقت بفرمایید نام محیط دلخواه شماست و هر کاربر محیط اختصاصی خود را دارد.

فعال‌سازی محیط:
پس از نصب موفقیت‌آمیز، با استفاده از دستور زیر، محیط ایجاد شده فعال می‌شود:

source /share/apps/Anaconda/anaconda3.8/bin/activate my_env

– نصب پکیج دلخواه:

پس از فعال‌سازی محیط در home خود، می‌توان پکیج‌های مورد نیاز را نصب نمود. به عنوان مثال، جهت نصب پکیج scikit-learn دستور زیر در ترمینال وارد می‌شود:

/share/apps/Anaconda/anaconda3.8/bin/conda install -c anaconda scikit-learn

همچنین جهت نصب پکیج با استفاده از pip، می‌توان دستور زیر را وارد نمود:

/share/apps/Anaconda/anaconda3.8/bin/pip install matplotlib

اسکریپت جهت اجرای جاب:
دقت نمایید ابتدا پکیج‌های مورد نیاز داخل ترمینال پس از فعال‌سازی محیط وارد شوند؛ سپس در اسکریپت خود تنها لازم است محیط را فعال کنید تا سامانه از پکیج‌های نصب شده جهت اجرا استفاده نماید. چگونگی انجام این کار در مثال زیر مشخص شده است:

#PBS -N myjob
#PBS -m abe
#PBS -M your@email.adress
#PBS -l nodes=1:ppn=1:gpus=1
#PBS -q cuda9

export LD_LIBRARY_PATH=/share/apps/cuda/cuda-10.1/lib64:$LD_LIBRARY_PATH

export PATH=/share/apps/cuda/cuda-10.1/bin:$PATH

source /share/apps/Anaconda/anaconda3.8/bin/activate my_env

python -u Program.py

نحوه استفاده از پردازنده گرافیکی

برای استفاده از GPU در فایل run.sh خود، یکی از دستورات زیر را وارد نمایید:

#PBS -q cuda7          // Tesla 2075

#PBS -q cuda9          // GeForce GTX 1080 Ti

#PBS -q SP              // RTX 2070 SUPER

#PBS -q DP             // Titan RTX

#PBS -q DDP          // Quadro RTX 8000

توجه داشته باشید که در حالت عادی امکان استفاده از تنها یک واحد پردازش گرافیکی وجود دارد و در صورت نیاز برای تعداد بیشتر، باید دلایل خود را به مرکز پشتیبانی مرکز پردازش سریع ارائه کنید.

حذف جاب

شما می‌توانید با دستور qstat از شماره و وضعیت اجراهای خود مطلع شوید و با وارد کردن شماره‌ی اجرا بعد از دستور qdel، اجرای مورد نظر را حذف کنید.

خطا و عدم اجرای دستور qsub

در صورتیکه در هنگام ثبت جاب خود با استفاده از دستور qsub با مشکل عدم دسترسی مواجه شدید، به احتمال زیاد مشکل از کافی نبودن اعتبار شماست که می‌بایست حساب خود را از این لینک شارژ نمایید.

در صورتیکه اعتبار کافی دارید و فکر می‌کنید مشکل از جای دیگری است، لطفا با مرکز پشتیبانی تماس حاصل بفرمایید.

صف طولانی

به دلیل تعداد درخواست‌های بالا صف طولانی ایجاد شده است که به ترتیب نوبت‌دهی و کارهای شما انجام خواهد شد.
در این حالت، لطفا شکیبا باشید.

درخواست نصب نرم‌افزار

کاربر گرامی، لطفا فایل‌ها و دستورالعمل‌های لازم برای نصب نرم‌افزارهای مورد نیاز خود بر روی لینوکس توزیع CentOS را در پوشه install واقع در اکانت خود قرار دهید و به اطلاع ما برسانید تا برای نصب آن اقدام شود.

نیاز به استفاده از رابط کاربری گرافیکی برای کار با برخی نرم‌افزارها

در صورتیکه برای کار با یک نرم‌افزار نیاز به رابط کاربری گرافیکی دارید، بهتر است سرور مجازی خریداری نمایید. امکان اجرای کارها با رابط گرافیکی بر روی خوشه محاسبات مبتنی بر زمان‌بندی میسر نمی‌باشد.

به‌روزرسانی و استفاده از نسخه‌های جدید gcc

جهت به‌روزرسانی gcc، از دستور زیر استفاده کنید:

scl enable devtoolset-8 bash

همچنین، جهت اجرای مدل با gcc، دستور زیر را به فایل جاب (run.sh) خود اضافه نمایید:

export LD_LIBRARY_PATH=/share/apps/gcc/gcc-8.2.0/lib64/:$LD_LIBRARY_PATH

به جای نسخه 8.2.0 نیز می‌توانید نام نسخه مد نظر خود را (که در مرکز نصب است) وارد نمایید.

مشخص کردن میزان رم

جهت مشخص کردن میزان دقیق رمی که توسط یک جاب مشخص باید استفاده گردد،‌دستور زیر را در فایل جاب (run.sh) خود وارد نمایید:

#PBS -l mem=20G

به جای عدد 20 می‌توانید مقدار مورد نیاز خود را قرار دهید.

توجه داشته باشید که در صورت مشخص نکردن رم، یک میزان رم توسط سیستم تا حد امکان برای اجرای برنامه اختصاص می‌یابد.

استفاده از دستورات git

امکان استفاده از دستورات مختلف git نظیر git clone برای دانلود کدها از سایت‌هایی نظیر گیت‌هاب به صورت پیش‌فرض فراهم نمی‌باشد. بدین منظور، یا باید ابتدا فایل‌های مورد نظر را بر روی سیستم خود دانلود نموده و سپس با استفاده از نرم‌افزارهای انتقال فایل (نظیر WinSCP) اقدام به جابجایی آن به کلاستر نمایید، یا اینکه محیط conda را، مطابق با دستوراتی که در همین قسمت و در بخش «نصب محیط و دسترسی به اینترنت جهت دانلود بسته‌های مورد نیاز» قرار دارد فعال نموده و اقدام به اجرای دستورات git نمایید.

ایجاد محیط برای نصب نرم‌افزار R و بسته‌ها و کتابخانه‌ها

با دستورات زیر یک محیط اختصاصی ایجاد نموده و براساس نیاز خود کتابخانه های مورد نظر را نصب نمایید

ایجاد محیط

/share/apps/Anaconda/anaconda3.8/bin/conda create –name username

فعال سازی محیط

source /share/apps/Anaconda/anaconda3.8/bin/activate username
conda install R

پس از نصب R برای نصب کتابخانه های لازم یکی از دو روش زیر را استفاده نمایید
با دستور R برنامه را در ترمینال فعال نموده ی در محیط ترمینال

install.packages(“lib”)

را وارد نمایید نام lib به حروف کوچک و بزرگ حساس می باشد

پس از نصب محیط ترمینال با q()خارج شده
در صورتی کتابخانه به صورت خودکار نصب نشد فایل کتابخانه را دانلود کرده و در سرور قرار داده و در پوشه ای که فایل قرار دارد دستور زیر را وارد نمایید

R CMD INSTALL lib.tar.gz

فایل run.sh را مشابه زیر ایجاد نمایید

#PBS -N myjob
#PBS -m abe
#PBS -M your@email.adress
#PBS -l nodes=1:ppn=1
cd $PBS_O_WORKDIR
source /share/apps/Anaconda/anaconda3.8/bin/activate username
R CMD BATCH r-example-function-1.R