| dgscat(1) | PT-Scotch user's manual | dgscat(1) |
نام (NAME)
dggath, dgscat, gscat - تبدیل گرافهای منبع توزیعشده به متمرکز یا برعکس
خلاصه دستور (SYNOPSIS)
dggath [options] [igfile] [ogfile] dgscat [options] [igfile] [ogfile] gscat [options] [igfile] [ogfile]
توضیحات (DESCRIPTION)
برنامهٔ dggath گرافهای توزیعشده را در قالب گرافهای متمرکز گردآوری (gather) میکند. این برنامه مجموعهای از فایلهای igfile را که قطعات یک گراف منبع توزیعشده را نشان میدهند میخواند و آنها را در قالب یک فایل گراف منبع متمرکز واحد ogfile بازمینویسد.
برنامهٔ dgscat گرافهای منبع متمرکز را در قالب گرافهای توزیعشده پخش (scatter) میکند. این برنامه یک فایل گراف منبع متمرکز igfile را میخواند و آن را در قالب مجموعهای از فایلهای ogfile که قطعات گراف منبع توزیعشدهٔ متناظر را نشان میدهند، مینویسد.
برنامهٔ gscat دقیقاً همان عملکرد dgscat را دارد، اما نیازی به اجرا در یک محیط موازی ندارد. از آنجا که gscat فایل گراف متمرکز ورودی را به عنوان یک جریان متنی پردازش میکند، پیش از ساخت فایلهای قطعهگراف توزیعشده نیازی به بارگذاری کامل گراف در حافظه ندارد. بنابراین، منابع بسیار کمتری مصرف میکند، اما به دلیل نداشتن دید سراسری نسبت به ساختار گراف، امکان بررسی سازگاری گراف را فراهم نمیکند.
هنگامی که نام فایلها مشخص نشده باشد، دادهها از ورودی استاندارد خوانده شده و در خروجی استاندارد نوشته میشوند. جریانهای استاندارد را همچنین میتوان بهطور صریح با یک خط تیره «-» مشخص کرد.
اگر کتابخانههای مناسب در زمان کامپایل گنجانده شده باشند، dggath و dgscat میتوانند مستقیماً گرافهای فشردهشده را هم به عنوان ورودی و هم به عنوان خروجی مدیریت کنند. هر جریانی که نام آن دارای پسوند یک فایل فشرده باشد، مانند “brol.grf.bz2” یا “-.gz”، به صورت فشردهشده در نظر گرفته میشود. قالبهای فشردهسازی قابل پشتیبانی عبارتند از: قالب bzip2 (پسوند “.bz2”)، قالب gzip (پسوند “.gz”) و قالب lzma (پسوند “.lzma”).
برنامههای dggath و dgscat برای توزیع کار میان عناصر پردازشی، بر پایهٔ پیادهسازیهای رابط MPI عمل میکنند. بنابراین احتمالاً مستقیماً اجرا نمیشوند، بلکه از طریق یک دستور راهانداز مانند mpirun اجرا خواهند شد.
نامهای فایل توزیعشده (DISTRIBUTED FILE NAMES)
برای تعیین اینکه برنامهها باید از/در یک فایل واحد قرارگرفته بر روی تنها یک پردازنده بخوانند یا بنویسند، یا چندین نمونه از همان فایل بر روی همهٔ پردازندهها، و یا فایلهای مجزا بر روی هر یک از پردازندهها، یک دستور زبان ویژه طراحی شده است که بر پایهٔ نویسهٔ گریز «%» عمل میکند. چهار توالی گریز از این نوع تعریف شدهاند که پیش از باز شدن فایل، بر روی هر پردازنده بهطور مستقل تفسیر میشوند. بهطور پیشفرض، هنگامی که یک نام فایل ارائه میشود، فرض بر این است که فایل باید تنها بر روی یکی از پردازندهها باز شود که پردازندهٔ ریشه (root processor) نامیده میشود و معمولاً فرایند 0 از برقرارکننده ارتباط (communicator) است که برنامه درون آن اجرا میشود. شاخص پردازندهٔ ریشه را میتوان با استفاده از گزینهٔ -r تغییر داد. استفاده از هر یک از سه توالی گریز نخست در زیر، به برنامهها دستور میدهد تا بر روی هر پردازندهای که در آن اجرا میشوند، فایلی با نام برابر با نام فایل تفسیرشده را بهصورت موازی باز کنند.
- %p
- با تعداد فرایندهای موجود در برقرارکننده ارتباط سراسری که برنامه در آن اجرا میشود جایگزین میشود. منجر به باز شدن موازی میشود.
- %r
- بر روی هر فرایندِ اجراکنندهٔ برنامه، با رتبهٔ (rank) این فرایند در برقرارکننده ارتباط سراسری جایگزین میشود. منجر به باز شدن موازی میشود.
- %-
- نادیده گرفته میشود، اما منجر به باز شدن موازی میگردد. این توالی عمدتاً برای این به کار میرود که به برنامهها دستور دهد تا بر روی هر پردازنده فایلی با نام یکسان باز کنند. فایلهای بازشده بسته به اینکه مسیر ارائهشده به یک پوشهٔ اشتراکی ختم شود یا به پوشههایی که برای هر پردازنده محلی هستند، به ترتیب میتوانند منجر به باز شدن چندین نمونه از همان فایل یا باز شدن فایلهای مجزایی که هر کدام ممکن است محتوای متفاوتی داشته باشند شوند (اما در حالت دوم، اکیداً توصیه میشود که فایلها با استفاده از توالی «%r» تفکیک شوند).
- %%
- با یک نویسهٔ منفرد «%» جایگزین میشود. نام فایلهایی که از این توالی گریز استفاده میکنند برای باز شدن موازی در نظر گرفته نمیشوند، مگر اینکه یک یا چند مورد از سه توالی گریز دیگر نیز حضور داشته باشند.
به عنوان مثال، نام فایل “brol” منجر به باز شدن فایل “brol” تنها بر روی پردازندهٔ ریشه خواهد شد؛ نام فایل “%-brol” (یا حتی “br%-ol”) منجر به باز شدن موازی فایلهایی به نام “brol” بر روی هر پردازنده خواهد شد؛ و نام فایل “brol%p-%r” به ترتیب منجر به باز شدن فایلهای “brol2-0” و “brol2-1” بر روی هر یک از دو پردازندهای که برنامه قرار است روی آنها اجرا شود، خواهد شد.
گزینهها (OPTIONS)
- -c
- تنها برای dggath و dgscat. بررسی سازگاری گراف منبع ورودی پس از بارگذاری آن در حافظه.
- -h
- نمایش راهنما.
- -i nbr
- تنها برای gscat. ایجاد یک گراف توزیعشدهٔ نامتوازن، که در آن فایلهای گراف توزیعشده برای همهٔ فرایندها به تعداد extit{nbr} رأس از گراف را دریافت میکنند، به جز فایل مربوط به آخرین فرایند که تمامی رأسهای باقیمانده را دریافت خواهد کرد.
- -r pnum
- تنظیم فرایند ریشه برای فایلهای متمرکز (پیشفرض 0 است).
- -V
- نمایش نسخهٔ برنامه و حق نشر.
مثالها (EXAMPLES)
اجرای dgscat بر روی ۵ عنصر پردازشی برای پخش کردن فایل گراف متمرکز brol.grf در ۵ قطعهفایل فشردهشده با gzip از brol5-0.dgr.gz تا brol5-4.dgr.gz.
$ mpirun -np 5 dgscat brol.grf brol%p-%r.dgr.gz
همچنین ببینید (SEE ALSO)
dgmap(1), dgord(1), dgtst(1), gmk_hy(1).
راهنمای کاربری PT-Scotch.
نویسندگان (AUTHORS)
Francois Pellegrini <francois.pellegrini@labri.fr>
| 05 August 2023 |