AstekHPC

Linux

نظارت و مدیریت 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 در دسترس است.

 

Login
HPCLab Media
HPCLab RSS

News | TOP500 Supercomputer Sites

Intel Ramps Up Neuromorphic Computing Effort with New Research Partners 1.1.1970 01:00

Amazon Web Services Extends Its Reach in HPC, Hyperscale, and Enterprise 1.1.1970 01:00

UC Berkeley, Intel Explore Potential Replacement for CMOS Technology 1.1.1970 01:00

IBM Takes Aim at Reduced Precision for New Generation of AI Chips 1.1.1970 01:00

DeepMind Stops Playing Games, Debuts AI Software for Predicting Protein Structures 1.1.1970 01:00

AWS Adds New Instances, Network Enhancements for HPC 1.1.1970 01:00

Russian Company Develops Mobile Petascale Supercomputer 1.1.1970 01:00

NVIDIA Expands GPU Computing Mindshare with HGX-2 1.1.1970 01:00

More News From SC18; Updates from Atos, Mellanox, and Panasas 1.1.1970 01:00

Atos Broadens HPC Portfolio with Modular Supercomputer 1.1.1970 01:00

China Spills Details on Exascale Prototypes 1.1.1970 01:00

SC18 Rolls on in Dallas; Processors Take Center Stage 1.1.1970 01:00

Panasas Unveils Next-Generation ActiveStor, PanFS 1.1.1970 01:00

But Is That Really HPC? 1.1.1970 01:00

AMD Notches EPYC Supercomputer Win with Next-Generation Zen Processor 1.1.1970 01:00

US Widens Lead in Top Supercomputers; SC18 Kicks Off in Dallas 1.1.1970 01:00

NVIDIA Builds Momentum with HPC Offerings 1.1.1970 01:00

AMD Throws Down EPYC Challenge to Intel; A Look Ahead to SC18 1.1.1970 01:00

CEA to Deploy Arm-Powered Supercomputer 1.1.1970 01:00

China Extends Supercomputer Share on TOP500 List, US Dominates in Total Performance 1.1.1970 01:00

Site encyclopedia section

In this section, you will find articles and information you need.

Paper Categories
نرم افزار پایش کلاسترهای محاسباتی

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

Download More

PuTTY

PuTTY is a free and open-source terminal emulator, serial console and network file transfer application. It supports several network protocols, including SCP, SSH, Telnet, rlogin, and raw socket connection. It can also connect to a serial port.

Download More

Winscp

WinSCP is a free and open-source SFTP, FTP, WebDAV and SCP client for Microsoft Windows. Its main function is secure file transfer between a local and a remote computer.

Download More

VNC Viewer

VNC offers a deceptively simple service it allows you to view and control a remote system as though seated next to it, wherever you are.

Download More

NEWS

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

ابر رایانه واتسون (Watson) که محصولی از کمپانی IBM است، دقیق‌ترین تعریفی است که از قدرت هوش مصنوعی و یادگیری ماشینی می‌توانیم داشته باشیم. این کامپیوتر غول‌آسا بعد از برنده شدن در مسابقات تلویزیونی و پخت غذاهای عجیب و غریب، حالا توانسته است مهمترین کار تمام دوران خود را انجام دهد: نجات جان یک انسان!   ...

چین قدرتمندترین ابر کامپیوتر جهان را ساخت

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

فوجيتسو و فروش يک ابر کامپيوتر 20 ترافلاپي به کانن

دیروز فوجیتسو اعلام کرد که یک دستگاه ابر کامپیوتر تجاری PRIMEHPC FX10 را به شرکت کانن فروخته است. فوجیتسو از معرفی رسمی این سری از سوپرکامپیوترها در سال 2011، چند عدد از آن‌ها را به اهالی صنعت فناوری فروخته است.   ...

درباره ما

بنیاد توسعه کاربردها رایانش سریع و ابری(High performance and Cloud Computing Development Foundation) به منظور طراحی، ساخت و گسترش کاربردهای رایانش سریع در علوم مختلف توسط جمعی از اساتید دانشگاه پیام نور استان یزد پایه گذاری شده است. این بنیاد به دنبال ایجاد بستری با ظرفیت محاسباتی و ذخیره سازی بالا مبتنی بر CPU و GPU می باشد تا بتواند از آن طریق سرویسهای متعددی را به متقاضیان آن ارائه نماید. خدمات این شرکت در حوزه های زیر ارائه می گردد :

  • رایانش سریع و ابری (HPC & Cloud Computing)
  • کلان داده و پردازش داده های حجیم (Big Data Analysis)
  • طراحی و پیاده سازی کلاسترهای محاسباتی مبتنی بر Linux
  • طراحی و اجرای پروژه های انبار داده Data Warehouse
  • مجازی سازی و اجرای شبکه های مبتنی بر نرم افزار (Software Defined Network)