این دستور pegasus-mpi-cluster است که می تواند در ارائه دهنده هاست رایگان OnWorks با استفاده از یکی از چندین ایستگاه کاری آنلاین رایگان ما مانند Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا شود.
برنامه:
نام
pegasus-mpi-cluster - ابزاری برای اجرای گردش های کاری محاسباتی که به صورت DAG بیان می شود
(Directed Acyclic Graphs) بر روی خوشه های محاسباتی با استفاده از MPI.
خلاصه
پگاسوس-mpi-cluster [گزینه ها] workflow.dag
شرح
پگاسوس-mpi-cluster ابزاری است که برای اجرای علمی HTC (High Throughput Computing) استفاده می شود
گردش کار در سیستم های طراحی شده برای HPC (محاسبات با عملکرد بالا). بسیاری از سیستم های HPC دارند
معماریهای سفارشی که برای برنامههای کاربردی موازی با هم جفت شدهاند. اینها
سیستمها معمولاً دارای شبکههای عجیب و غریب و کم تأخیر هستند که برای کوتاهمدت طراحی شدهاند
پیام های بسیار سریع بین گره های محاسباتی. بسیاری از این شبکه ها بسیار بالا هستند
بهینه سازی شده است که گره های محاسباتی حتی از پشته TCP/IP پشتیبانی نمی کنند. این باعث می شود
اجرای برنامه های HTC با استفاده از نرم افزاری که برای کالا طراحی شده است غیرممکن است
خوشه هایی مانند کندور.
پگاسوس-mpi-cluster برای فعال کردن برنامه های HTC با اتصال آزاد مانند
گردش کار علمی برای استفاده از سیستم های HPC. به منظور دور زدن شبکه
مسائل ذکر شده در بالا، پگاسوس-mpi-cluster از MPI (واسط عبور پیام)، a
API معمولاً برای نوشتن برنامه های موازی SPMD (فرآیند واحد، داده های چندگانه) استفاده می شود.
اکثر سیستم های HPC دارای یک پیاده سازی MPI هستند که روی هر شبکه عجیب و غریبی کار می کند
معماری مورد استفاده سیستم
An پگاسوس-mpi-cluster job از یک فرآیند اصلی تشکیل شده است (این فرآیند دارای رتبه 0 اینچ است
اصطلاح MPI) و چندین فرآیند کارگری. پروسه اصلی گردش کار را مدیریت می کند و
وظایف گردش کار را برای اجرا به کارگران اختصاص می دهد. کارگران وظایف را انجام می دهند و برمی گردند
نتایج به استاد هر خروجی نوشته شده در stdout یا stderr توسط وظایف گرفته می شود
(نگاه کنید به وظیفه STDIUM).
پگاسوس-mpi-cluster برنامه های کاربردی به صورت DAG (گراف های غیر چرخه ای جهت دار) بیان می شوند (نگاه کنید به DAG
فایل ها). هر گره در نمودار یک وظیفه را نشان می دهد و لبه ها نشان دهنده وابستگی ها هستند
بین وظایفی که ترتیب اجرای وظایف را محدود می کند. هر وظیفه یک است
برنامه و مجموعه ای از پارامترهایی که باید اجرا شوند (به عنوان مثال یک فرمان و برخی اختیاری
استدلال). وابستگی ها معمولاً وابستگی های جریان داده را در
برنامه، که در آن فایل های خروجی تولید شده توسط یک کار به عنوان ورودی برای دیگری مورد نیاز است.
اگر هنگام اجرای یک DAG خطایی رخ دهد که باعث توقف گردش کار شود، ممکن است رخ دهد
با استفاده از یک فایل نجات، که پیشرفت گردش کار را ثبت می کند، مجدداً راه اندازی شد (نگاه کنید به نجات
فایل ها). این را قادر می سازد پگاسوس-mpi-cluster برای اجرای گردش کار در جایی که متوقف شده است.
پگاسوس-mpi-cluster برای کار به عنوان یک ابزار مستقل یا به عنوان مکمل طراحی شده است
سیستم مدیریت گردش کار پگاسوس (WMS). برای اطلاعات بیشتر در مورد استفاده از PMC با
پگاسوس به بخش مربوطه مراجعه کنید PMC و PEGASUS.
پگاسوس-mpi-cluster به برنامه هایی که به صورت DAG بیان می شوند اجازه می دهد تا به صورت موازی روی a اجرا شوند
تعداد زیادی گره محاسباتی به گونه ای طراحی شده است که ساده، سبک و مستحکم باشد.
OPTIONS
-h, --کمک
چاپ پیام راهنما
-V, - نسخه
اطلاعات نسخه چاپی
-v, -- پرحرف
پرحرفی ورود به سیستم را افزایش دهید. افزودن چندگانه -v سطح را بیشتر افزایش می دهد. به طور پیش فرض
سطح ورود به سیستم است اطلاعات. (دیدن عشق ورزیدن)
-q, --ساکت
پرحرفی ورود به سیستم را کاهش دهید. افزودن چندگانه -q سطح را بیشتر کاهش می دهد. به طور پیش فرض
سطح ورود به سیستم است اطلاعات. (دیدن عشق ورزیدن)
-s, --پرش-نجات
نادیده گرفتن فایل نجات برای workflow.dag اگر وجود داشته باشد. توجه داشته باشید که پگاسوس-mpi-cluster
همچنان یک فایل نجات جدید برای اجرای فعلی ایجاد می کند. رفتار پیش فرض این است که
اگر فایلی پیدا شد از فایل نجات استفاده کنید. (دیدن نجات فایل ها)
-o مسیر, --stdout مسیر
مسیر فایل برای task stdout. (دیدن وظیفه STDIUM و -- به ازای وظیفه-stdio)
-e مسیر, --stderr مسیر
مسیر فایل برای task stderr. (دیدن وظیفه STDIUM و -- به ازای وظیفه-stdio)
-m M, -- حداکثر - شکست M
پس از ارسال وظایف جدید متوقف شوید M وظایف شکست خورده است. یک بار M رسیده است،
پگاسوس-mpi-cluster اجرای هر کاری را که شروع شده است به پایان می رساند، اما نمی کند
هر کار دیگری را شروع کنید این گزینه برای پیشگیری استفاده می شود پگاسوس-mpi-cluster از جانب
ادامه اجرای یک گردش کاری که از یک خطای سیستماتیک رنج می برد، مانند یک
باینری از دست رفته یا یک مسیر نامعتبر پیش فرض برای M 0 است که به معنای نامحدود است
شکست ها مجاز هستند
-t T, --تلاش می کند T
سعی کنید هر کار را اجرا کنید T بارها قبل از علامت گذاری کار به عنوان ناموفق. توجه داشته باشید که T
تلاش ها برای اهداف به عنوان شکست به حساب نمی آیند -m گزینه. یک وظیفه فقط است
اگر امتحان شود ناموفق تلقی می شود T زمان و همه T تلاش ها منجر به غیر صفر می شود
کد خروج ارزش T باید حداقل 1 باشد. پیش فرض 1 است.
-n, --بدون قفل
DAGFILE را قفل نکنید. به صورت پیش فرض، پگاسوس-mpi-cluster تلاش خواهد کرد تا یک
قفل انحصاری روی DAGFILE برای جلوگیری از اجرای چندین کار MPI در همان DAG
همان زمان. اگر این گزینه مشخص شده باشد، قفل به دست نمی آید.
-r, --نجات مسیر
مسیر ورود به نجات. در صورت وجود فایل، و -s مشخص نشده است، سپس ورود به سیستم خواهد بود
برای بازیابی وضعیت گردش کار استفاده می شود. فایل پس از خواندن کوتاه می شود و
یک گزارش نجات جدید در جای خود ایجاد می شود. پیش فرض این است که اضافه شود .نجات به DAG
نام فایل. (دیدن نجات فایل ها)
--میزبان-اسکریپت مسیر
مسیری به یک اسکریپت یا فایل اجرایی برای راهاندازی در هر میزبان منحصربهفردی که پگاسوس-mpi-cluster
در حال اجرا است این مسیر را می توان با استفاده از محیط PMC_HOST_SCRIPT نیز تنظیم کرد
متغیر. (دیدن HOST اسکریپت ها)
- حافظه میزبان اندازه
مقدار حافظه موجود در هر میزبان به مگابایت. پیش فرض تعیین مقدار است
رم فیزیکی به صورت خودکار این مقدار را می توان با استفاده از PMC_HOST_MEMORY نیز تنظیم کرد
متغیر محیطی. (دیدن مبتنی بر منابع برنامه ریزی)
--Host-Cpus CPU
تعداد CPUهای موجود در هر میزبان. پیش فرض تعیین تعداد CPU است
هسته ها به صورت خودکار این مقدار را می توان با استفاده از محیط PMC_HOST_CPUS نیز تنظیم کرد
متغیر. (دیدن مبتنی بر منابع برنامه ریزی)
-- محدودیت های دقیق
این محدودیت های سخت گیرانه استفاده از حافظه را برای کارها فعال می کند. وقتی این گزینه مشخص شد و
یک وظیفه سعی می کند حافظه بیشتری را نسبت به آنچه در DAG، حافظه درخواست شده است، اختصاص دهد
عملیات تخصیص با شکست مواجه خواهد شد.
-- حداکثر زمان دیوار دقیقه
این حداکثر تعداد دقیقه است پگاسوس-mpi-cluster اجازه گردش کار را می دهد
برای اجرا وقتی این زمان تمام شود پگاسوس-mpi-cluster گردش کار را لغو می کند و ادغام می شود
همه فایل های stdout/stderr کارگران. مقدار بر حسب دقیقه است و
پیش فرض زمان دیوار نامحدود است. این گزینه اضافه شد تا خروجی یک گردش کار
حتی اگر گردش کار از حداکثر زمان دیوار کار دسته ای آن بیشتر شود، ثبت خواهد شد. این
مقدار را می توان با استفاده از متغیر محیطی PMC_MAX_WALL_TIME نیز تنظیم کرد.
-- به ازای وظیفه-stdio
این باعث می شود که PMC به جای اینکه یک فایل .out.XXX و یک فایل .err.XXX برای هر کار ایجاد کند
وظیفه نوشتن stdout/stderr to --stdout و --stderr. نام فایل ها می باشد
"TASKNAME.out.XXX" و "TASKNAME.err.XXX"، که "TASKNAME" نام کار است
از DAG و "XXX" یک شماره دنباله ای است که هر بار که کار انجام می شود افزایش می یابد
تلاش کرد. این گزینه مقادیر برای را لغو می کند --stdout و --stderr. این استدلال است
زمانی که گردشهای کاری در حالت PMC-فقط برنامهریزی میشوند توسط Pegasus استفاده میشود تا اشکالزدایی را تسهیل کند
و نظارت
--jobstate-log
این گزینه باعث می شود PMC یک فایل jobstate.log برای گردش کار ایجاد کند. فایل است
با نام "jobstate.log" و در همان فهرستی که فایل DAG در آن قرار دارد قرار می گیرد
واقع شده. اگر فایل از قبل وجود داشته باشد، PMC خطوط جدیدی را به فایل موجود اضافه می کند.
این گزینه توسط Pegasus زمانی استفاده میشود که گردشهای کاری در حالت PMC فقط به آن برنامهریزی شود
تسهیل نظارت
--مانیتور-هک
این گزینه باعث می شود PMC یک فایل .dagman.out برای گردش کار تولید کند. این فایل
محتویات فایل .dagman.out تولید شده توسط Condor DAGMan را تقلید می کند. نکته از
این گزینه این است که نظارت را فریب دهد تا فکر کند با DAGMan سروکار دارد
رویدادهای مناسب را برای پر کردن پایگاه داده STAMPEDE ایجاد می کند
اهداف نظارتی نام فایل "DAG.dagman.out" است که در آن "DAG" مسیر دسترسی به آن است
فایل PMC DAG.
--no-resource-log
الف ایجاد نکنید workflow.dag.resource فایل برای گردش کار
--بدون خواب-روی-رجو
از نظرسنجی با sleep() برای پیاده سازی دریافت پیام استفاده نکنید. (دیدن شناخته شده مسائل مربوط به: پردازنده
استفاده)
-- maxfds
حداکثر تعداد توصیفگرهای فایل را که می تواند توسط master برای I/O باز بماند، تنظیم کنید
حمل و نقل به طور پیش فرض این مقدار به طور خودکار بر اساس مقدار تنظیم می شود
getrlimit (RLIMIT_NOFILE). مقدار باید حداقل 1 باشد و نمی تواند بیشتر از آن باشد
RLIMIT_NOFILE.
--- نگه داشتن قرابت
به طور پیشفرض PMC تلاش میکند تا CPU و میل حافظه را بازنشانی کند. این برای اطمینان از آن است
تمام پردازندهها و حافظههای موجود میتوانند توسط وظایف PMC در سیستمهایی که نیستند، استفاده شوند
به درستی پیکربندی شده است. این پرچم به PMC میگوید تنظیمات وابستگی به ارث رسیده را حفظ کند
والد آن توجه داشته باشید که سیاست حافظه فقط در صورتی پاک می شود که PMC با آن کامپایل شده باشد
لیبنوما میل CPU با استفاده از آن پاک می شود sched_setaffinity()، و سیاست حافظه است
پاک شده با set_mempolicy().
DAG فایل ها
پگاسوس-mpi-cluster گردش کار با استفاده از یک قالب ساده مبتنی بر متن شبیه به بیان می شود
که توسط Condor DAGMan استفاده شده است. فقط دو نوع رکورد در یک فایل DAG مجاز است: وظیفه
و EDGE. هر خط خالی در DAG (خطوط با تمام کاراکترهای فضای خالی) نادیده گرفته می شود،
مانند هر خطی که با # شروع می شود (توجه داشته باشید که # فقط می تواند در ابتدای یک خط ظاهر شود،
نه در وسط).
قالب الف وظیفه رکورد این است:
شناسه "TASK" [گزینهها...] قابل اجرا [آرگمونها...]
جایی که id شناسه کار است، گزینه های لیستی از گزینه های کار است، قابل اجرا مسیر است
به فایل اجرایی یا اسکریپت برای اجرا، و استدلال ... یک لیست جدا شده از فضا است
آرگومان هایی برای انتقال به کار یک مثال این است:
TASK t01 -m 10 -c 2 /bin/program -a -b
این مثال یک کار را مشخص می کند t01 که برای اجرا به 10 مگابایت حافظه و 2 سی پی یو نیاز دارد
/bin/برنامه با استدلال ها -a و -b. گزینه های کار موجود عبارتند از:
-m M, --درخواست-حافظه M
مقدار حافظه مورد نیاز کار بر حسب مگابایت. پیش فرض 0 است که به معنای حافظه است
برای این کار در نظر گرفته نمی شود. این گزینه را می توان برای یک کار در DAX توسط
مشخص کردن پروفایل pegasus::pmc_request_memory. (دیدن مبتنی بر منابع برنامه ریزی)
-c N, -- request-cpus N
تعداد CPU های مورد نیاز برای کار. پیش فرض 1 است که به این معنی است که
تعداد اسلات ها در هاست باید کمتر یا مساوی تعداد CPU های فیزیکی باشد
به منظور استفاده از تمام اسلات ها این گزینه را می توان برای یک کار در DAX توسط
مشخص کردن پروفایل pegasus::pmc_request_cpus. (دیدن مبتنی بر منابع برنامه ریزی)
-t T, --تلاش می کند T
تعداد دفعاتی که باید قبل از شکست دائمی کار را انجام دهید. این است
معادل سطح وظیفه از --تلاش می کند گزینه خط فرمان
-p P, --اولویت P
اولویت کار. P باید یک عدد صحیح باشد. مقادیر بزرگتر اولویت بیشتری دارند.
پیشفرض 0 است. اولویتها صرفاً راهنمایی هستند و سختگیرانه نیستند—اگر وظیفهای قابل انجام نباشد
مطابق با یک اسلات موجود (مثلاً به دلیل در دسترس بودن منابع)، اما با اولویت کمتر
task can، سپس کار به تعویق افتاده و وظیفه با اولویت پایین اجرا خواهد شد.
این گزینه را می توان برای یک کار در DAX با تعیین pegasus::pmc_priority تنظیم کرد.
مشخصات.
-f VAR=FILE, --لوله به جلو VAR=FILE
I/O را به فایل فوروارد کنید فایل استفاده از لوله ها برای برقراری ارتباط با کار محیط زیست
متغیر VAR به مقدار یک توصیفگر فایل برای لوله ای که
task می تواند برای دریافت داده ها بنویسد فایل. به عنوان مثال، اگر یک کار مشخص کند: -f
FOO=/tmp/foo سپس متغیر محیطی FOO برای کار روی یک عدد تنظیم می شود
(به عنوان مثال 3) که نشان دهنده فایل /tmp/foo است. به منظور مشخص کردن این استدلال در الف
Pegasus DAX باید پروفایل pegasus::pmc_arguments را تنظیم کنید (توجه داشته باشید که مقدار
pmc_arguments باید حاوی بخش "-f" آرگومان باشد، بنابراین یک مقدار معتبر خواهد بود:
-f A=/tmp/a ). (دیدن I / O
حمل و نقل)
-F SRC=DEST, --فایل فوروارد SRC=DEST
I/O را به فایل فوروارد کنید DEST از فایل SRC. وقتی کار تمام شد، کارگر
داده ها را از SRC و برای استاد بفرستید که در آنجا نوشته شود
پرونده DEST. بعد از SRC خوانده می شود حذف می شود. به منظور مشخص کردن این استدلال در الف
Pegasus DAX باید پروفایل pegasus::pmc_arguments را تنظیم کنید. (دیدن I / O حمل و نقل)
قالب یک EDGE رکورد این است:
فرزند والدین "EDGE".
جایی که پدر یا مادر شناسه وظیفه والد است و کودک شناسه تکلیف کودک است. یک
مثال EDGE رکورد این است:
EDGE t01 t02
یک گردش کار ساده به شکل الماس به شکل زیر است:
# diamond.dag
وظیفه A /bin/echo "من A هستم"
وظیفه B /bin/echo "من B هستم"
وظیفه ج /bin/echo "من C هستم"
وظیفه D /bin/echo "من D هستم"
EDGE AB
EDGE AC
EDGE BD
سی دی EDGE
نجات فایل ها
هنگام اجرای DAG انواع مختلفی از خطاها ممکن است رخ دهد. ممکن است یک یا چند کار
خراب شود، ممکن است کار MPI تمام شود، پگاسوس-mpi-cluster ممکن است اشتباه کند (ما امیدواریم
نه)، سیستم ممکن است خراب شود، و غیره. به منظور اطمینان از عدم نیاز به DAG
پس از یک خطا از ابتدا راه اندازی مجدد شد پگاسوس-mpi-cluster یک فایل نجات تولید می کند
برای هر گردش کار
فایل نجات یک فایل متنی ساده است که تمام وظایف موجود در گردش کار را فهرست می کند
با موفقیت به پایان رسانده اند. هر بار که یک کار تمام می شود، این فایل به روز می شود و پاک می شود
بطور دوره ای به طوری که اگر جریان کار با شکست مواجه شود و کاربر آن را مجدداً راه اندازی کند، پگاسوس-mpi-cluster
می تواند تعیین کند که کدام وظایف هنوز باید اجرا شوند. به این ترتیب، پرونده نجات یک نوع است
گزارش تراکنش برای گردش کار
فایل نجات حاوی صفر یا بیشتر رکوردهای انجام شده است. فرمت این رکوردها به این صورت است:
"انجام شد" *taskid*
جایی که وظیفه دار شناسه کاری است که با موفقیت به پایان رسید.
به طور پیش فرض، فایل های نجات نام گذاری می شوند DAGNAME.rescue جایی که DAGNAME مسیر ورودی است
فایل DAG. نام فایل را می توان با مشخص کردن تغییر داد -r بحث و جدل.
PMC و PEGASUS
با استفاده از PMC برای اسب بالدار کار خوشه بندی
PMC می تواند به عنوان بسته بندی برای اجرای کارهای خوشه ای در Pegasus استفاده شود. در این حالت
Pegasus چندین کار را با هم گروه بندی می کند و آنها را به عنوان یک کار خوشه ای به a ارسال می کند
سیستم از راه دور سپس PMC وظایف فردی را در خوشه اجرا می کند و آن را برمی گرداند
نتایج.
PMC را می توان به عنوان مدیر وظیفه برای مشاغل خوشه ای در Pegasus به سه روش مشخص کرد:
1. به صورت سراسری در فایل خواص
کاربر می تواند یک ویژگی را در فایل خواص تنظیم کند که منجر به همه خوشه ها شود
کارهای گردش کار که توسط PMC اجرا می شوند. در فایل خصوصیات Pegasus مشخص کنید:
فایل #PEGASUS PROPERTIES
pegasus.clusterer.job.aggregator=mpiexec
در مثال بالا، تمام کارهای خوشهبندی شده در تمام سایتهای راه دور از طریق راهاندازی میشوند
PMC تا زمانی که ارزش دارایی در کاتالوگ سایت لغو نشده باشد.
2. با تنظیم کلید پروفایل "job.aggregator" در کاتالوگ سایت:
...
mpiexec
در مثال بالا، تمام کارهای خوشهبندی شده در یک siteX قرار است از طریق آن اجرا شوند
PMC تا زمانی که مقدار در کاتالوگ تبدیل نادیده گرفته نشود.
3. با تنظیم کلید پروفایل "job.aggregator" در کاتالوگ تبدیل:
tr B {
سایت سایتX {
pfn "/path/to/mytask"
قوس "x86"
سیستم عامل "لینوکس"
"نصب شده" را تایپ کنید
نمایه pegasus "clusters.size" "3"
نمایه pegasus "job.aggregator" "mpiexec"
}
}
در مثال بالا، تمام کارهای خوشه بندی شده برای تبدیل B در siteX خواهد بود
از طریق PMC اجرا می شود.
معمولاً لازم است یک ورودی pegasus::mpiexec در کاتالوگ تبدیل خود داشته باشید
که الف) مسیر PMC در سایت راه دور و ب) پروفایل های گلوبوس مربوطه را مشخص می کند.
مانند xcount، host_xcount و maxwalltime برای کنترل اندازه کار MPI. آن ورودی
به این شکل خواهد بود:
tr pegasus::mpiexec {
سایت سایتX {
pfn "/path/to/pegasus-mpi-cluster"
قوس "x86"
سیستم عامل "لینوکس"
"نصب شده" را تایپ کنید
پروفایل globus "maxwalltime" "240"
نمایه globus "host_xcount" "1"
نمایه گلوبوس "xcount" "32"
}
}
اگر این ورودی کاتالوگ تبدیل مشخص نشده باشد، Pegasus تلاش خواهد کرد یک a را ایجاد کند
مسیر پیش فرض بر اساس مشخصات محیطی PEGASUS_HOME مشخص شده در سایت
کاتالوگ برای سایت از راه دور
PMC را می توان با خوشه بندی افقی و مبتنی بر برچسب در Pegasus استفاده کرد، اما ما
توصیه میکنیم از خوشهبندی مبتنی بر برچسب استفاده کنید تا بتوان کل زیر نمودارهای Pegasus DAX را
به جای تنها یک سطح از گردش کار، در یک کار PMC واحد جمع شده است.
اسب بالدار پروفایل برای PMC
چندین پروفایل Pegasus وجود دارد که به گزینه های وظیفه PMC نگاشت می شوند:
pmc_request_memory
این پروفایل برای تنظیم گزینه --request-memory task استفاده می شود و معمولا مشخص می شود
در کاتالوگ DAX یا تبدیل.
pmc_request_cpus
این کلید برای تنظیم گزینه --request-cpus task استفاده می شود و معمولاً در قسمت مشخص می شود
DAX یا کاتالوگ تبدیل.
pmc_priority
این کلید برای تنظیم گزینه --priority task استفاده می شود و معمولاً در قسمت مشخص می شود
DAX.
این پروفایل ها توسط پگاسوس در هنگام تولید DAG ورودی PMC استفاده می شود، زمانی که PMC به عنوان
مدیر وظیفه برای مشاغل خوشه ای در Pegasus.
پروفایل ها را می توان در DAX به صورت زیر مشخص کرد:
-a 1 -b 2 -c 3
...
1024
4
10
این مثال یک وظیفه PMC را مشخص می کند که به 1 گیگابایت حافظه و 4 هسته نیاز دارد و دارای یک
اولویت 10. وظیفه ای را در PMC DAG تولید می کند که به شکل زیر است:
TASK mytask_ID00000001 -m 1024 -c 4 -p 10 /path/to/mytask -a 1 -b 2 -c 3
با استفاده از PMC برای la تمام اسب بالدار DAX
Pegasus همچنین می تواند پیکربندی شود تا کل گردش کار را به عنوان یک کار PMC واحد اجرا کند. در این
حالت Pegasus یک PMC DAG واحد برای کل گردش کار و همچنین یک PBS تولید می کند
اسکریپتی که می تواند برای ارسال گردش کار استفاده شود.
برخلاف استفاده از PMC به عنوان یک ابزار خوشه بندی وظایف، در این حالت هیچ شغلی در آن وجود ندارد
گردش کار بدون PMC اجرا شد. کل گردش کار، از جمله مشاغل کمکی مانند
ایجاد دایرکتوری و انتقال فایل توسط PMC مدیریت می شود. اگر Pegasus در این پیکربندی شده باشد
حالت، سپس DAGMan و Condor مورد نیاز نیستند.
برای اجرا در حالت فقط PMC، ویژگی "pegasus.code.generator" را روی "PMC" در Pegasus تنظیم کنید.
فایل خواص:
pegasus.code.generator=PMC
برای ارسال کار PBS حاصل، ممکن است لازم باشد تغییراتی در فایل .pbs ایجاد کنید
توسط Pegasus تولید شده تا بتواند با خوشه شما کار کند. این حالت آزمایشی است و
به طور گسترده مورد استفاده قرار نگرفته است.
عشق ورزیدن
به طور پیش فرض، تمام پیام های ورود به سیستم در stderr چاپ می شوند. اگر ورود به سیستم را با استفاده از
-v سپس ممکن است در نهایت با تعداد زیادی stderr از کارگران به قسمت ارسال شود
استاد.
سطوح گزارش به ترتیب شدت عبارتند از: FATAL، ERROR، WARN، INFO، DEBUG و TRACE.
سطح گزارش پیش فرض INFO است. سطوح ورود به سیستم را می توان با افزایش داد -v و
با کاهش یافت -q.
وظیفه STDIUM
به طور پیشفرض، stdout و stderr وظایف به stdout master هدایت میشوند
stderr. می توانید مسیر این فایل ها را با -o و -e استدلال ها شما همچنین می توانید
فعال کردن فایل های stdio برای هر وظیفه با استفاده از -- به ازای وظیفه-stdio بحث و جدل. توجه داشته باشید که اگر برای هر کار
فایلهای stdio استفاده نمیشوند، سپس stdio همه کارگران به یک out و one ادغام میشوند
فایل err توسط Master در انتها، بنابراین I/O از کارگران مختلف به هم متصل نخواهد شد،
اما I/O از هر کارگر به ترتیبی که تولید شده ظاهر می شود. همچنین توجه داشته باشید که،
اگر کار به هر دلیلی با شکست مواجه شود، خروجی ها ادغام نمی شوند، اما در عوض وجود خواهند داشت
یک فایل برای هر کارگر به نامهای DAGFILE.out.X و DAGFILE.err.X که مسیر DAGFILE است.
به ورودی DAG و X رتبه کارگر است
HOST اسکریپت ها
اسکریپت میزبان یک اسکریپت پوسته یا قابل اجرا است پگاسوس-mpi-cluster روی هر کدام راه اندازی می شود
میزبان منحصر به فردی که روی آن اجرا می شود. می توان از آنها برای شروع خدمات کمکی مانند
memcached، که وظایف در یک گردش کار به آن نیاز دارند.
اسکریپت های میزبان با استفاده از هر یک از آنها مشخص می شوند --میزبان-اسکریپت استدلال یا PMC_HOST_SCRIPT
متغیر محیطی.
اسکریپت میزبان زمانی شروع می شود پگاسوس-mpi-cluster شروع می شود و باید با یک کد خروجی خارج شوید
از 0 قبل از اجرای هر کاری. اگر اسکریپت میزبان یک کد خروجی غیر صفر برمی گرداند،
سپس گردش کار متوقف می شود. اسکریپت میزبان 60 ثانیه داده می شود تا هر تنظیماتی را انجام دهد
ضروری. اگر در 60 ثانیه از آن خارج نشود، یک سیگنال SIGALRM به آن تحویل داده می شود
فرآیندی که در صورت عدم رسیدگی باعث خاتمه فرآیند می شود.
وقتی گردش کار تمام شد، پگاسوس-mpi-cluster سیگنال SIGTERM را به میزبان تحویل می دهد
گروه فرآیند اسکریپت هر پردازش فرزندی که توسط اسکریپت میزبان اجرا شود، دریافت خواهد شد
این سیگنال مگر اینکه گروه فرآیند خود را ایجاد کنند. اگر فرآیندهایی باقی مانده بود
برای دریافت این سیگنال، چند ثانیه به آنها فرصت داده می شود تا خارج شوند، سپس آنها خواهند بود
SIGKILL را ارسال کرد. این مکانیزمی است که فرآیندهای آغاز شده توسط اسکریپت میزبان می توانند توسط آن انجام شوند
از خاتمه گردش کار مطلع شد.
مبتنی بر منابع برنامه ریزی
منابع محاسباتی با کارایی بالا اغلب نسبت حافظه کمی به CPU دارند. در همین حال
زمان، وظایف گردش کار اغلب نیاز به حافظه بالایی دارند. اغلب، نیازهای حافظه
یک کار گردش کار از مقدار حافظه موجود برای هر CPU در یک میزبان معین بیشتر است. به عنوان یک
در نتیجه، ممکن است لازم باشد برخی از CPU ها را غیرفعال کنید تا حافظه کافی برای اجرا آزاد شود
وظایف به طور مشابه، بسیاری از کدها از میزبان های چند هسته ای پشتیبانی می کنند. در آن صورت است
برای کارایی لازم است تا اطمینان حاصل شود که تعداد هسته های مورد نیاز توسط وظایف در حال اجرا است
در هاست از تعداد هسته های موجود در آن میزبان تجاوز نکنید.
به منظور کارآمدتر کردن این فرآیند، پگاسوس-mpi-cluster مبتنی بر منابع را پشتیبانی می کند
برنامه ریزی. در زمانبندی مبتنی بر منابع، وظایف موجود در گردش کار میتواند تعیین کند که چقدر
حافظه و تعداد پردازنده های مورد نیاز آنها و پگاسوس-mpi-cluster آنها را طوری برنامه ریزی خواهد کرد که
وظایف در حال اجرا بر روی یک میزبان معین از مقدار حافظه فیزیکی و CPU تجاوز نمی کند
در دسترس. این را قادر می سازد پگاسوس-mpi-cluster برای استفاده از تمام پردازنده های موجود
هنگامی که نیاز به حافظه وظایف کم است، اما برخی از CPU ها را در هنگام انجام وظایف غیرفعال کنید
نیاز به حافظه بیشتر است همچنین گردش کار را با ترکیبی از تک هسته و
وظایف چند هسته ای که باید روی یک استخر ناهمگن اجرا شوند.
اگر میزبانی وجود نداشته باشد که حافظه و CPU کافی برای اجرای یکی از آنها داشته باشد
وظایف در یک گردش کار، سپس گردش کار لغو می شود.
حافظه
کاربران می توانند هم مقدار حافظه مورد نیاز برای هر کار و هم مقدار حافظه را مشخص کنند
در هر میزبان موجود است. اگر مقدار حافظه مورد نیاز هر کار بیش از مقدار موجود باشد
حافظه همه میزبان ها، سپس گردش کار لغو می شود. به طور پیش فرض، حافظه میزبان است
به طور خودکار تعیین می شود، اما کاربر می تواند تعیین کند - حافظه میزبان به "دروغ گفتن"
پگاسوس-mpi-cluster. مقدار حافظه مورد نیاز برای هر کار در DAG مشخص شده است
با استفاده از -m/--درخواست-حافظه استدلال (نگاه کنید به DAG فایل ها).
پردازنده ها
کاربران می توانند تعداد CPU های مورد نیاز برای هر کار و تعداد کل CPU ها را مشخص کنند
در هر میزبان موجود است. اگر تعداد CPUهای مورد نیاز یک کار از تعداد موجود بیشتر باشد
CPU ها در همه هاست ها، سپس گردش کار لغو می شود. بهطور پیشفرض، تعداد CPUهای روی a
میزبان به طور خودکار تعیین می شود، اما کاربر می تواند تعیین کند --Host-Cpus به بیش از یا
اشتراک کمتر میزبان تعداد CPU های مورد نیاز برای هر کار در قسمت مشخص شده است
DAG با استفاده از -c/-- request-cpus استدلال (نگاه کنید به DAG فایل ها).
I / O حمل و نقل
در گردشهای کاری که وظایف کوچک زیادی دارند، ورودی/خروجی نوشته شده توسط آن وظایف معمول است
خیلی کوچک بودن برای مثال، یک گردش کار ممکن است 10,000 کار داشته باشد که هر کدام چند کیلوبایت بنویسند
از داده ها به طور معمول هر کار در فایل خود می نویسد و در نتیجه 10,000 فایل ایجاد می شود. این I/O
الگو در بسیاری از سیستم های فایل موازی بسیار ناکارآمد است زیرا به فایل نیاز دارد
سیستمی برای مدیریت تعداد زیادی از عملیات ابرداده که در بسیاری از آنها یک گلوگاه است
سیستم های فایل موازی
یکی از راه های رسیدگی به این مشکل این است که همه 10,000 کار را در یک فایل بنویسید. این
مشکل این رویکرد این است که به آن وظایف نیاز دارد تا دسترسی خود را به آن ها همگام کنند
فایل با استفاده از قفل های POSIX یا مکانیسم های حذف متقابل دیگر. در غیر این صورت، می نویسد
از وظایف مختلف ممکن است به ترتیب دلخواه در هم آمیخته شود و منجر به داده های غیرقابل استفاده شود.
به منظور رسیدگی به این مورد استفاده، PMC قابلیتی را اجرا می کند که آن را "I/O Forwarding" می نامیم.
حمل و نقل ورودی/خروجی، هر وظیفه در یک کار PMC را قادر می سازد تا داده ها را به تعداد دلخواه بنویسد
فایل های به اشتراک گذاشته شده به روشی امن این کار را با جمعآوری دادهها توسط فرآیندهای کارگر PMC انجام میدهد
نوشته شده توسط وظیفه و ارسال آن از طریق شبکه پرسرعت با استفاده از پیام MPI به
فرآیند اصلی PMC، جایی که در فایل خروجی نوشته می شود. با داشتن یک فرآیند (
فرآیند اصلی PMC) در فایل تمام ورودی/خروجی را از بسیاری از وظایف موازی بنویسید
همگام سازی شده و با خیال راحت روی فایل ها نوشته شده است.
دو روش مختلف برای استفاده از ارسال I/O در PMC وجود دارد: لوله ها و فایل ها. لوله ها بیشتر هستند
کارآمد، اما استفاده از فایل ها آسان تر است.
I / O حمل و نقل با استفاده از لوله های
حمل و نقل ورودی/خروجی با لولهها با داشتن فرآیندهای کارگر PMC، دادهها را از هر کار جمعآوری میکند
با استفاده از لوله های یونیکس این رویکرد کارآمدتر از رویکرد مبتنی بر فایل است، اما آن را دارد
نیاز به تغییر کد وظیفه دارد تا کار به جای نوشتن در لوله بنویسد
یک فایل معمولی
برای استفاده از ارسال ورودی/خروجی یک وظیفه PMC فقط باید آن را مشخص کنید -f/--لوله به جلو
آرگومان برای تعیین نام فایل برای ارسال داده ها و نام an
متغیر محیطی که از طریق آن فرآیند کارگر PMC می تواند آن را از فایل مطلع کند
توصیف کننده برای لوله
به عنوان مثال، اگر یک وظیفه "mytask" وجود دارد که باید داده ها را به دو فایل ارسال کند:
"myfile.a" و "myfile.b"، به شکل زیر است:
TASK mytask -f A=/tmp/myfile.a -f B=/tmp/myfile.b /bin/mytask
هنگامی که فرآیند /bin/mytask شروع می شود، دو متغیر در محیط خود خواهد داشت: "A=3"
و برای مثال "B=4". مقدار این متغیرها شماره توصیفگر فایل است
فایل های مربوطه در این حالت، اگر وظیفه بخواهد در "/tmp/myfile.a" بنویسد، دریافت می شود
مقدار متغیر محیطی "A"، و write() را روی آن عدد توصیفگر فراخوانی می کند. در سی
کد آن به شکل زیر است:
char *A = getenv("A");
int fd = atoi(A);
char *message = "سلام، دنیا\n";
نوشتن (fd، پیام، strlen(پیام))؛
در برخی از زبان های برنامه نویسی امکان نوشتن مستقیم روی یک توصیفگر فایل وجود ندارد.
به عنوان مثال، فرترن به جای استفاده از توصیفگرهای فایل، به فایل ها با شماره واحد اشاره می کند. که در
این زبان ها می توانید توابع C I/O را به باینری خود پیوند داده و از آن ها فراخوانی کنید
روال هایی که به زبان دیگر نوشته شده اند، یا می توانید یک فایل خاص در لینوکس باز کنید / پروسه
فایل سیستم را برای گرفتن دسته دیگری به لوله ای که می خواهید به آن دسترسی داشته باشید. برای دومی، پرونده
شما باید باز کنید "/proc/self/fd/NUMBER" که در آن NUMBER شماره توصیف کننده فایل شما است
از متغیر محیطی گرفته شده است. برای مثال بالا، لوله برای myfile.a
(متغیر محیط A) "/proc/self/fd/3" است.
اگر شما با استفاده از pegasus-kickstart، که احتمالاً در صورت استفاده از PMC برای a
گردش کار Pegasus، پس ترفندی وجود دارد که می توانید برای جلوگیری از تغییر کد خود انجام دهید. تو استفاده میکنی
la / پروسه سیستم فایل، همانطور که در بالا توضیح داده شد، اما به pegasus-kickstart اجازه می دهید مسیر را مدیریت کند
ساخت و ساز. به عنوان مثال، اگر برنامه شما آرگومان -o داشته باشد، به شما اجازه می دهد
فایل خروجی را مشخص کنید سپس می توانید وظیفه خود را به این صورت بنویسید:
TASK mytask -f A=/tmp/myfile.a /bin/pegasus-kickstart /bin/mytask -o /proc/self/fd/$A
در این مورد، pegasus-kickstart، $A را در آرگومان های برنامه شما با عبارت جایگزین می کند
شماره توصیفگر فایل مورد نظر شما کد شما می تواند آن مسیر را به طور معمول باز کند، روی آن بنویسد و
سپس آن را ببندید که انگار یک فایل معمولی است.
I / O حمل و نقل با استفاده از فایل ها
حمل و نقل ورودی/خروجی با فایلها با نوشتن دادهها در فایلهای روی دیسک محلی کار میکند.
فرآیند PMC worker این فایل ها را می خواند و داده ها را در جایی که می تواند به Master ارسال می کند
در فایل خروجی مورد نظر نوشته شود. این رویکرد ممکن است بسیار کمتر از استفاده باشد
لولهها، زیرا شامل سیستم فایل است که سربار بیشتری نسبت به یک لوله دارد.
ارسال فایل را می توان با دادن آن فعال کرد -F/--فایل به جلو استدلال برای یک کار
در اینجا یک مثال:
TASK mytask -F /tmp/foo.0=/scratch/foo /bin/mytask -o /tmp/foo.0
در این مورد، فرآیند کارگر انتظار دارد که فایل /tmp/foo.0 را هنگام خروج mytask پیدا کند.
با موفقیت. دادههای آن فایل را میخواند و به Master ارسال میکند تا روی آن نوشته شود
انتهای /scratch/foo. پس از خواندن /tmp/foo.0 توسط کارگر حذف خواهد شد
روند.
این رویکرد در سیستم هایی که دیسک محلی یک سیستم فایل RAM است، مانند Cray، بهترین کار را دارد
ماشین های XT متناوبا، می توان از این کار استفاده کرد /dev/shm در یک کلاستر لینوکس معمولی. ممکن است
همچنین در صورتی که حافظه پنهان سیستم فایل قادر به انجام این کار باشد، روی یک دیسک محلی به طور نسبتاً کارآمدی کار می کند
همه خواندن و نوشتن ها را جذب کند.
I / O حمل و نقل هشدارها
هنگام استفاده از حمل و نقل ورودی/خروجی، توجه به چند نکته مهم است.
اول، اگر کار PMC به هر دلیلی شکست بخورد (از جمله زمانی که گردش کار برای آن متوقف شود).
نقض کردن -- حداکثر زمان دیوار، ممکن است فایل های حاوی I/O ارسال شده خراب شده باشند. آنها
می تواند شامل جزئي سوابق، به این معنی که تنها بخشی از I/O از یک یا چند کار بود
نوشته شده است و می توانند شامل شوند تکراری سوابق، به این معنی که I/O نوشته شده است، اما
قبل از اینکه کار به عنوان موفقیت آمیز علامت گذاری شود، کار PMC با شکست مواجه شد، و گردش کار انجام شد
بعدا دوباره راه اندازی شد ما هیچ تضمینی در مورد محتوای فایل های داده در این مورد نمی دهیم.
الف) شناسایی و ب) بازیابی از چنین مشکلاتی به کدی بستگی دارد که فایل ها را می خواند.
برای حذف موارد تکراری، رکوردها باید دارای یک شناسه منحصر به فرد باشند و حذف شوند
موارد جزئی سوابق باید شامل یک چکسوم باشد.
دوم، اگر قرار است داده های زیادی در وظیفه شما بنویسد، نباید از ارسال I/O استفاده کنید
پرونده. زیرا کارگر PMC در حال خواندن داده ها از لوله/فایل به حافظه و ارسال است
آن را در یک پیام MPI، اگر بیش از حد بنویسید، فرآیند کارگر سیستم را اجرا خواهد کرد
از حافظه خارج شده است همچنین، تمام دادهها باید در یک پیام MPI قرار گیرند. در حمل و نقل لوله
محدودیت سختی در اندازه وجود ندارد، اما در ارسال فایل محدودیت 1 مگابایت است. ما نداریم
عملکرد را در I/O بزرگ محک زده است، اما هر چیزی بزرگتر از حدود 1 مگابایت احتمالاً ممکن است
خیلی زیاد. در هر صورت، اگر داده های شما بزرگتر از 1 مگابایت باشد، احتمالاً ارسال I/O انجام نخواهد شد
به هر حال مزایای عملکردی زیادی دارند.
سوم، اگر وظیفه کد خروجی غیر صفر را برگرداند، I/O روی فایل نوشته نمیشود. ما
فرض کنید که اگر کار با شکست مواجه شد، نمیخواهید دادهای را که تولید میکند، داشته باشید.
چهارم، داده های مربوط به وظایف مختلف به هم متصل نمی شوند. تمام داده های نوشته شده توسط a
وظیفه داده شده به صورت متوالی در فایل خروجی ظاهر می شود. توجه داشته باشید که هنوز هم می توانید دریافت کنید
با این حال، سوابق جزئی، اگر دادهای از یک کار ظاهر شود، هرگز بین آنها تقسیم نخواهد شد
محدوده های غیر مجاور در فایل خروجی. اگر 3 وظیفه دارید که می نویسند: "من یک وظیفه هستم" شما
می توانید دریافت کنید:
من یک وظیفه هستم، یک وظیفه هستم، یک وظیفه هستم
و:
من یک وظیفه هستم من یک وظیفه هستم
اما نه:
من یک وظیفه هستم من یک وظیفه هستم یک وظیفه
پنجم، داده های مربوط به وظایف مختلف به ترتیب دلخواه در فایل خروجی ظاهر می شوند. بستگی دارد
به چه ترتیبی وظایف توسط PMC اجرا شده است که در صورت عدم وجود ممکن است دلخواه باشد
وابستگی بین وظایف داده هایی که نوشته می شود باید حاوی اطلاعات کافی باشد
که در صورت نیاز می توانید تعیین کنید که کدام وظیفه آن را ایجاد کرده است. PMC ندارد
هر سرصفحه یا تریلر را به داده ها اضافه کنید.
ششم، یک کار تنها زمانی به عنوان موفق علامت گذاری می شود که تمام ورودی/خروجی آن با موفقیت انجام شده باشد
نوشته شده است. اگر گردش کار با موفقیت انجام شود، مطمئناً I/O انجام شده است
نوشته شده است.
هفتم، اگر استاد به هر دلیلی نتواند در فایل خروجی بنویسد (مثلاً
master سعی می کند I/O را در فایل مقصد بنویسد، اما فراخوانی write() an را برمی گرداند
خطا) سپس کار به عنوان ناموفق علامت گذاری می شود حتی اگر کار کد خروجی غیر صفر تولید کند. که در
به عبارت دیگر، حتی زمانی که PMC کار را ناموفق اعلام می کند، ممکن است یک رکورد شروع غیر صفر دریافت کنید.
هشتم، لوله ها فقط نوشتن هستند. اگر نیاز به خواندن و نوشتن داده ها از فایل دارید
باید از فوروارد فایل استفاده کرد نه از انتقال لوله.
نهم، تمامی فایل ها توسط استاد در حالت ضمیمه باز می شوند. این به این صورت است که اگر گردش کار
شکست می خورد و باید دوباره راه اندازی شود، یا اگر یک کار شکست خورد و دوباره امتحان شد، داده هایی که
نوشته قبلی گم نمی شود PMC هرگز فایل ها را کوتاه نمی کند. این یکی از دلایل است
چرا می توانید رکوردهای جزئی و رکوردهای تکراری در فایل خروجی داشته باشید.
در نهایت، در ارسال فایل، فایل خروجی با خارج شدن وظیفه حذف می شود. تو نمی توانی
به فایل تکیه کنید که هنگام اجرای کار بعدی وجود داشته باشد، حتی اگر آن را در یک فایل مشترک بنویسید
سیستم.
MISC
منابع بهره برداری
در پایان گردش کار، استاد استفاده از منابع را گزارش خواهد کرد
کار. این کار با جمع کردن کل زمانهای اجرا تمام وظایف اجرا شده (از جمله
وظایف ناموفق) و تقسیم بر کل زمان دیوار کار بار N، که در آن N هر دو است
تعداد کل فرآیندها از جمله Master و تعداد کل کارگران. این دو
مقادیر استفاده از منابع ارائه شده است تا کاربران بتوانند ایده ای در مورد چگونگی آن داشته باشند
آنها به نحو احسن از منابعی که اختصاص داده اند استفاده می کنند. استفاده کم از منابع
مقادیر نشان می دهد که کاربر باید از هسته های کمتر و زمان دیوار طولانی تری در اجراهای آینده استفاده کند.
در حالی که مقادیر بالای استفاده از منابع نشان می دهد که کاربر می تواند از هسته های بیشتری برای آن استفاده کند
در آینده اجرا می شود و زمان دیوار کوتاه تری دریافت کنید.
شناخته شده مسائل
چنگال() و exec()
برای اینکه فرآیندهای کارگر وظایف را روی گره محاسباتی شروع کنند، گره ها را محاسبه می کنند
باید پشتیبانی کند چنگال() و exec() تماس های سیستمی اگر ماشین مورد نظر شما یک
پس از آن، سیستمعاملی بر روی گرههای محاسباتی که از این تماسهای سیستمی پشتیبانی نمیکنند، حذف شده است
پگاسوس-mpi-cluster کار نخواهد کرد.
پردازنده استفاده
بسیاری از پیادهسازیهای MPI بهینهسازی شدهاند تا پیامهای ارسالی و دریافتی در انتظار مشغول باشند
(یعنی به جای خوابیدن روی ارسال یا دریافت پیام می چرخند/نظرسنجی می کنند). استدلال این است
از آنجایی که بسیاری از سیستمهای HPC از اشتراکگذاری فضای اختصاصی استفاده میکنند، خوابیدن سربار را اضافه میکند
سخت افزار، هیچ فرآیند دیگری با هم رقابت نمی کند، بنابراین چرخش به جای خواب می تواند
عملکرد بهتری تولید کند. در این پیادهسازیها، فرآیندهای MPI با 100% CPU اجرا میشوند
استفاده حتی زمانی که آنها فقط منتظر پیام هستند. این یک مشکل بزرگ برای چند هسته ای است
وظایف در پگاسوس-mpi-cluster زیرا اسلات های بیکار منابع CPU را مصرف می کنند. به منظور حل
این مشکل پگاسوس-mpi-cluster خواب را برای مدت کوتاهی بین بررسی ها پردازش می کند
پیام های منتظر این امر بار را به میزان قابل توجهی کاهش می دهد، اما باعث تاخیر کوتاه می شود
دریافت پیام ها اگر از یک پیاده سازی MPI استفاده می کنید که روی ارسال پیام و می خوابد
دریافت به جای انجام انتظار مشغول، سپس می توانید با مشخص کردن علامت، خواب را غیرفعال کنید
--بدون خواب-روی-رجو گزینه. توجه داشته باشید که استاد همیشه می خوابد اگر -- حداکثر زمان دیوار is
مشخص شده است زیرا هیچ راهی برای قطع کردن یا مهلت زمانی تماس مسدود شده در MPI وجود ندارد
(به عنوان مثال SIGALRM باعث نمی شود MPI_Recv EINTR را برگرداند).
محیط زیست متغیرها
متغیرهای محیط زیر نام مستعار گزینه های خط فرمان هستند. اگر محیط
متغیر موجود است، سپس به عنوان پیش فرض برای گزینه مرتبط استفاده می شود. اگر هر دو هستند
حال، سپس از گزینه خط فرمان استفاده می شود.
PMC_HOST_SCRIPT
نام مستعار برای --میزبان-اسکریپت گزینه.
PMC_HOST_MEMORY
نام مستعار برای - حافظه میزبان گزینه.
PMC_HOST_CPUS
نام مستعار برای --Host-Cpus گزینه.
PMC_MAX_WALL_TIME
نام مستعار برای -- حداکثر زمان دیوار گزینه.
با استفاده از خدمات onworks.net از pegasus-mpi-cluster به صورت آنلاین استفاده کنید