ورود به حساب کاربری

نام کاربری *
رمز عبور *
یاداوری

نظارت و مدیریت Job

امتیاز کاربران

ستاره غیر فعالستاره غیر فعالستاره غیر فعالستاره غیر فعالستاره غیر فعال
 

چندین دستور مفید وجود دارد که به شما اجازه می دهد وضعیت job خود را بررسی، بر روند انجام یک job در حال اجرا نظارت و آمار عملکرد job خود را جمع آوری نمایید. همچنین می توانید در صورت لزوم یک job  را حذف کنید.

 

وضعیت job های موجود در صف

شما می توانید با استفاده از دستورات qstat و showq صف های دسته ای را کنترل و وضعیت job خود را بررسی کنید. همچنین یک فرمان برای دریافت تخمین بسیار نامطمئن از زمان شروع job شما وجود دارد. در این بخش همچنین دلایل این سوال که چرا یک job ممکن است مدت زمان طولانی در صف انتظار قرار بگیرد، شرح داده می شود و به صورت کوتاه اینکه چگونه زمان بندی job کار می کند، توضیح داده خواهد شد.

 

qstat

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

در اینجا چند نمونه برای کاربر usr1234 و job   شماره 123456 وجود دارد.

به خودی خود، qstatتمام job های موجود در سیستم را لیست می کند:

 

qstat

 

دستورات به منظور:

لیست کردن تمام jobهای متعلق به یک کاربر خاص:

qstat -u usr1234

لیست کردن وضعیت یک job خاص، در قالب استاندارد یا متناوب (مفیدتر!):

qstat 123456
qstat -a 123456

دریافت تمام جزئیات مربوط به یک job خاص (وضعیت کامل):

qstat -f 123456

 

 

showq

دستور showq لیست اطلاعات job را از نقطه نظر زمانبند نشان می دهد.job ها با توجه به وضعیت آنها گروه بندی می شوند: در حال اجرا، بیکار و یا مسدود شده.

دستور زیر را به منظور لیست کردن همه job ها در سیستم وارد کنید :

showq

لیست همه jobها متعلق به یک کاربر خاص را نمایش میدهد(-u ممکن است با دیگران ترکیب شود):

showq -u usr1234

 

Idle job  (بیکار) : jobهایی هستند که واجد شرایط بوده و در لیست اولویت اجرا قرار دارند. توجه داشته باشید که ممکن است ترتیب اولویت در طول زمان تغییر کند. همچنین توجه داشته باشید که اگر منابع بلافاصله برای اجرای job با بالاترین اولویت ("backfill") در دسترس نباشد، jobها ممکن است خارج از نوبت اجرا شوند. این کار به گونه ای انجام می شود که شروع job با بالاترین اولویت را به تاخیر نمی اندازد.

به منظور نمایش لیست جزئیات در مورد idle jobs دستور زیر را بزنید :

showq -i

 

showq -i
showq -i -u usr1234

 

Blocked jobs (مسدود شده) : jobهایی هستند که در حال حاضر واجد شرایط برای اجرا نیستند. دلایل متعددی وجود دارد که job ممکن است مسدود شود.

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

• اگر یک کاربر وابستگی هایی میان jobها تنظیم کند، یا شرایطی اعمال کند که قبل از اجرای job باید برآورده شود، تا زمانی که وابستگی یا شرایط آنها برآورده نشوند، jobها مسدود می مانند.

• با استفاده از دستور qhold jobid  می توانید job خود را نگه دارید.

 • در موارد نادر، یک خطا در سیستم باعث می شود که job با  وضعیت  “BatchHold” مسدود شود. اگر یکی از jobهای خود را در این حالت مشاهده کردید، با پشتیبانی کلاستر تماس بگیرید.

لیست jobهای مسدود شده:

showq -b

 

showq -b -u usr1234

 

showstart

دستور showstart برآوردی برای زمان شروع job می دهد. متاسفانه، این برآوردها به هیچ وجه دقیق نیستند، مگر برای job با بالاترین اولویت که در صف قرار دارد. اگر زمان نشان داده شده دقیقا نیمه شب دو یا سه روز در آینده باشد، بی معنی است. در غیر این صورت برآورد ممکن است به صورت اعداد غیر واقعی نمایش داده شود.

showstart 123456 

 

 

چرا job من در حال اجرا نیست؟

دلایل زیادی وجود دارد که ممکن است job شما طولانی تر از آنچه فکر می کنید در صف انتظار بماند. در اینجا برخی از این دلایل آورده شده: 

• بار کاری سیستم بالا است. این موضوع برای همه خسته کننده است.

• خرابی سیستم برنامه ریزی شده است و jobها در حالت انتظار نگه داشته می شوند. پیام روز، که هر بار که شما وارد می شوید، یا پیام های سیستم ارسال شده در صفحه اخبار AstekHPC را بررسی کنید.

• شما یا گروهتان چند روز گذشته از منابع زیادی استفاده کرده اید، و باعث می شود اولویت jobهایتان کاهش یابد ("سیاست منصفانه").

• شما یا گروهتان در حال استفاده از حداکثر تعداد پردازنده یا تعداد job  در حال اجرای مجاز هستید، در این وضعیت، job شما نگه داشته شده است.

• پروژه شما دارای یک توازن بزرگ RU (واحد منابع- resource unit) منفی است.

• job شما خواستار تخصیص منابع خاص، مانند حافظه بزرگ یا مجوزهای نرم افزاری خاص است.

• job شما نیازمند منابع زیادی است، که برای دسترسی به این منابع، زمان زیادی لازم است.

• job شما خواستار منابع ناسازگار یا غیر موجود است و در این حالت هرگز نمیتواند اجرا شود.

•درخواست شما بدون توجه به خصوصیات گره هایی که مجاز به درخواست آنها هستید ارسال شده است، برای مثال با درخواست mem = 25GB در یک سیستم که بیشتر گره ها دارای 24 گیگابایت هستند.

•job به دلیل مشکلات سیستم (بسیار نادر است) بدون نیاز به نگهداری دسته ای، بیهوده در انتظار نگه داشته می شود.

 

Priority, backfill, and debug reservations

اولویت ، یک تابع پیچیده از بسیاری از عوامل است ، از جمله تعداد پردازنده ها و مدت زمان درخواست شده، مدت زمان انتظار job و چگونگی محاسبات دیگر توسط کاربر و گروه آنها که طی چند روز گذشته انجام شده است.

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

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

تعداد کمی از گره ها عمدتا برای اهداف اشکال زدایی ، در طول روز بوسیله jobها با محدودیت زمانی(walltime limit) یک ساعت یا کمتر، کنار گذاشته می شوند.

 

بررسی یک job در حال اجرا

شما می توانید یک job دسته ای را در حال اجرا کنترل کنید تقریبا همانطور که می توانید برنامه ای را که به صورت تعاملی در حال اجرا است نظارت کنید. دستور qpeekاجازه می دهد تا خروجی ای که به طور معمول در صفحه نمایش شما ظاهر می شود را مشاهده کنید. دستور pdshبه شما این امکان را می دهد که CPU و حافظه ی مورد استفاده توسط job خود را در میان چیزهای دیگر نظارت کنید. این دستورات از گره ورودی (login node) اجرا می شود.

 

qpeek

جریان داده های یک job بر روی لاگ فایلهای stdout  و stderr نوشته می شوند، این داده ها ، همه آن چیزی است که در طول اجرای job بر روی صفحه مانیتور نمایش داده می شوند. این فایل های log ، تا زمانی که job به پایان می رسد در سرور ذخیره می شوند، بنابراین شما نمی توانید آنها را بی درنگ مشاهده کنید .

 

Stdout و Stderr جریان داده های job که به طور معمول بر روی صفحه نشان داده می شوند را در فایل های log می نویسند. این فایل های log ، تا زمانی که job به پایان می رسد در سرور ذخیره می شوند، بنابراین شما نمی توانید آنها را بی درنگ مشاهده کنید .

 

دستور qpeek به شما اجازه می دهد تا محتویات آنها را زیر نظر بگیرید. اگر از خط هدر PBS برای پیوند دادن جریان های stdout و stderr   (#PBS -j oe) استفاده می کنید، دو جریان در خروجی log ترکیب می شوند.

 

در اینجا چند مثال برای job 123456 وجود دارد. می توانید از فلگ -e با هر یک از آنها برای گرفتن error log  به جای output log استفاده کنید. (اگر از  "#PBS -j oe" استفاده کنید، این گزینه قابل اجرا نیست)

برای نمایش محتویات فعلی خروجی (stdout) برای job 123456:

qpeek 123456

  

برای نمایش محتویات فعلی خطا (stderr) برای job 123456:

qpeek -e 123456

 

 به منظور نمایش فقط آغاز ("head ") output log  برای job 123456:

qpeek -h 123456

 

برای نمایش فقط پایان ("tail ") output log  برای job 123456: 

qpeek -t 123456

 

برای نمایش پایانoutput log  و نگه داشتن listening  ("tail -f") - خاتمه دادن با Ctrl-C:

qpeek -f 123456

 

pdsh

اگر شما عادت به نظارت بر برنامه های خود با استفاده از topیا psیا چیزی شبیه آن را داشته باشید، ممکن است دستور pdshمفید باشد. pdshمخفف “Parallel Distributed Shell” است. این دستور به شما اجازه می دهد یک فرمان را به صورت موازی در تمام گره های اختصاص داده شده به job خود اجرا کنید، همراه با نتایج نمایش داده شده بر روی صفحه نمایش. این عمدتا به همراه job موازی مورد استفاده قرار می گیرد. pdshدر درجه اول بر روی Oakley استفاده می شود.

نکته : دستورالعمل هایی که اجرا می کنید باید سریع و ساده باشند تا از دخالت در job جلوگیری شود. به ویژه اگر job شما با jobهای دیگر بر روی یک گره به صورت اشتراکی اجرا می شوند.

 

دو دستور مفید که اغلب با pdshمورد استفاده قرار می گیرند عبارتند از uptime ، که بار سیستم را نمایش می دهد، و freeکه میزان استفاده از حافظه را می دهد ؛ صفحات manرا نیز برای این دستورات مشاهده کنید. بعلاوه گزینه هایی برای top وجود دارد که با pdshقابل استفاده است.

از آنجا که این دستور یک دستور موازی است، خروجی برای گره های مختلف در یک حالت غیر قابل استناد ظاهر می شود.

 

نمونه هایی برای job 123456 در Oakley (مشابه برای Ruby و Owens):

pdsh -j 123456 uptime
pdsh -j 123456 free -mo
pdsh -j 123456 top -b -n 1 -u usr1234

  

qstat

دستور qstatاطلاعاتی در مورد پردازنده، حافظه و walltime مورد استفاده برای jobهای در حال اجرا فراهم می کند. با استفاده از فلگ -a ، زمان سپری شده (wall time) را به صورت ساعت و دقیقه نشان می دهد. بدون فلگ، زمان استفاده شده (Time Used)، یک معیار حسابداری، در ساعت ها، دقیقه ها و ثانیه ها را نشان داده می شود. با فلگ  -f منابع مورد استفاده jobها، همراه با اطلاعات جمع آوری شده از تمام گره هایی که job  بر روی آنها در حال اجرا است را نشان می دهد.

مثال ها:

qstat -a 123456
qstat -f 123456

 

مدیریت jobهای شما

حذف یک job

ممکن است مواقعی پیش بیاید که بخواهید یکی از job های خود را از صف PBS حذف کنید. شاید شما محدودیت منابع را نادرست تنظیم کرده باشید، از کپی یک فایل ورودی غفلت شده باشد، یا دستورات نادرست یا اشتباه در فایل دسته ای وجود داشته باشد، یا شاید برنامه زمان بیشتری طول بکشد تا اجرا شود (حلقه بی نهایت).

 

دستور PBS برای حذف یک job دسته ای qdelاست. این job در هر دو حالتی که job در حالت اجرا باشد و یا در صف قرار داشته باشد،  بکار می رود.

مثال :

qdel 123456

اگر نتوانید یکی از jobهای خود را حذف کنید ممکن است به علت مشکل سخت افزاری یا crash نرم افزار سیستم باشد. در این صورت باید با پشتیبانی تماس بگیرید.

 

 

تغییر یک job صف شده

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

syntax  به صورت زیر است:

qalter [options ...] jobid

 

آرگومان options شامل یک یا چند دستورالعمل PBS در قالب گزینه های خط فرمان می باشد.

به عنوان مثال، برای تغییر میزان walltime  در job 123456 تا 5 ساعت و ارسال ایمیل زمانی که job به پایان می رسد (فقط):

qalter -l walltime=5:00:00 -m e 123456

 

 

Hold کردن جابی که در صف قرار دارد

اگر می خواهید از اجرای job جلوگیری کنید، اما آن را در صف نگه دارید، می توانید اینکار را با استفاده از دستور qhold انجام دهید. job در وضعیت block شده باقی می ماند تا زمانی که آن را با دستور qrls آزاد کنید. عمل hold می تواند مفید باشد، برای مثال اگر شما نیاز به تغییر فایل ورودی برای یک job داشته باشید، اما نمی خواهید مکان خود را در صف از دست بدهید.

مثال :

qhold 123456
qrls 123456

 

آمارهای job

دستورالعمل هایی وجود دارد که می توانید درbatch script  خود برای جمع آوری آمار یا اطلاعات عملکرد job بکار ببرید.

 

date

دستور dateتاریخ و زمان فعلی را چاپ می کند. میتوانید این دستور را در ابتدا و انتهای بخش اجرایی اسکریپت خود به منظور اندازه گیری تقریبی از زمان صرف شده در job بکار ببرید.

 

time

ابزار time برای اندازه گیری عملکرد یک فرمان واحد استفاده می شود. این دستور می تواند برای فرآیندهای سریال یا موازی استفاده شود. عبارت /usr/bin/time را به ابتدای یک دستور در batch script اضافه کنید :

/usr/bin/time myprog arg1 arg2

نتیجه در فرمت زیر ارائه می شود :

1-  user time (زمان cpu که برای اجرای برنامه شما صرف شده)

2- system time (صرف زمان شده cpu توسط برنامه شما در تماس های سیستم)

3- elapsed time - زمان سپری شده (wallclock)

4- ٪ CPU  مورد استفاده

5- حافظه، آمار pagefault  و swap

6- آمار I/O

این نتایج به فایل (error log) ورودی خطای job افزوده می شود. 

توجه: از مسیر کامل “”برای دریافت تمام اطلاعات نشان داده شده استفاده کنید.

 

ja

ja  ابزار حسابداری job، اطلاعات حسابداری job از جمله زمان CPU، حافظه، حافظه مجازی، و walltime استفاده شده را در داخل یک job PBS چاپ می کند. این اطلاعات همچنین در هنگامی که یک job به پایان می رسد به صورت ایمیل (در صورت درخواست ایمیل) ارسال میشود. هنگامی که این job در حال اجرا است، همان اطلاعات با دستور qstat -f در دسترس است.

 

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

 

سایت مرتبط : " بنیاد توسعه رایانش سریع و ابری "

 

 

آخرین مقالات

کامپایل و نصب mfix-2016.1

درک عملکرد دستگاه های انرژی، محیط زیست و فرایندها...

A Guide to High Performan...

In the world of HPC, on-premises infrastructure i...

نرم افزار مدل سازی مولکول...

نرم افزار جی‌مول (Jmol) نرم‌افزاری متن‌باز و نوشته...

۱۰ نرم افزار پرکاربرد رشت...

مهندسی شیمی (به انگلیسی: Chemical engineering) شاخ...

راه اندازی و نصب کسندرا ب...

در این مقاله به راه اندازی و نصب کسندرا بر روی چن...

HPC Cloud Drives Innovati...

High performance computing is about solving the w...

معرفی DataStax پلتفرمی بر...

معرفی: شرکت دیتا استکس، یک فروشنده نرم افزار های...

معرفی و لینک دانلود نرم ا...

ChemDoodle برنامه ای مخصوص برای طراحی ساختار های ش...

هفت مورد از بهترین نرم اف...

3D modeling software are powerful tools that help...

فناوری بلاک‌ چین: راهی من...

کاربردهای بلاک‌چین محدود به بیت‌کوین نمی‌شود. انقل...

آموزش کد محاسباتی سیستا (...

در این آموزش به بررسی خواص ساختاری جامد سیلیکون پ...

کمپانی Nvidia معماری جدید...

Your browser does not support the video tag. کمپا...

آموزش سیستا-چگونه یک فایل...

شبه پتانسیل مورد نظر خود را برای کد سیستا با استف...

شبیه سازی مولکولی بر روی...

شبیه سازی مولکولی بر روی GPU1 تکنیک استفاده از واح...

چرا یادگیری زبان اسکالا و...

تقریبا اکثر قریب به اتفاق برنامه‌نویسان به این حقی...

شیمی محاسباتی، مکانیک مول...

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

Watch "Jakub Kurzak...

یکی از کتابخانه های پرکاربرد در نرم افزارهای محاسب...

Video: Large Scale Traini...

In this video from PASC18, Jakub Tomczak from the...

راهنمای برنامه نویسی در M...

This publication is part of a developer guide focu...

روش های تشخیص زبان در متن

تشخیص زبان یک متن، یکی از اولین گام ها به سوی متن...

قطعه بندی متون فارسی (tok...

قطعه بندی متن (Tokenizer) به روش های تشخیص زبان در...

یک برنامه هوش مصنوعی می‌ت...

در جدیدترین نوع رقابت بین انسان و ماشین، از یک سیس...

کامپایل OpenFOAM-5.0 با I...

حداقل ورژن نیازمندیها : gcc : 4.8.5 cmake : 3.3 (م...

نمونه کدهای MPI

"چند مورد دیگر نیز بزودی به این لیست اضافه خواهد ش...

PBS Professional user Gui...

*download pdf file * download doc file Parts of t...

بلاک چین به زبان ساده چیس...

بلاک چین فناوری اصلی ارز دیجیتال است که حیات یک پ...

SIESTA

SIESTA (Spanish Initiative for Electronic Simulat...

Redirection (computing)

for input, output, and error In computing, redire...

روش جمع آوری اطلاعات از ش...

جمع آوری اطلاعات از توئیتر: یکی از منابع اصلی برا...

نظارت و مدیریت Job

چندین دستور مفید وجود دارد که به شما اجازه می دهد...

گالری تصاویر