| HWLOC-PS(1) | hwloc | HWLOC-PS(1) |
نام (NAME)
hwloc-ps - فهرست کردن فرایندها یا رشتههای در حال اجرایی که مقید شدهاند
خلاصه دستور (SYNOPSIS)
hwloc-ps [گزینهها]
گزینهها (OPTIONS)
- -a
- فهرست کردن تمام فرایندها، حتی مواردی که به بخش خاصی از ماشین مقید نشدهاند.
- --pid <pid>
- تنها نمایش فرایند با شناسهٔ فرایند <pid>، حتی اگر به بخش خاصی از ماشین مقید نشده باشد.
- --children-of-pid <pid>
- تنها نمایش فرایند با شناسهٔ فرایند <pid> و سلسلهمراتب فرزندان آن، حتی اگر به بخش خاصی از ماشین مقید نشده باشند.
- --name <name>
- تنها نمایش فرایندهایی که نام آنها شامل <name> است، حتی اگر به بخش خاصی از ماشین مقید نشده باشند. این گزینه روی همهٔ سیستمعاملها پشتیبانی نمیشود.
- --uid <uid>
- تنها نمایش فرایندهای کاربری که شناسهٔ کاربری (UID) او <uid> است، یا فرایندهای همهٔ کاربران در صورت مشخص شدن all. بهطور پیشفرض، فقط فرایندهای کاربر جاری نمایش داده میشوند. این قابلیت در حال حاضر تنها در Linux پشتیبانی میشود.
- -p --physical
- گزارش اندیسهای فیزیکی/سیستمعامل بهجای اندیسهای منطقی.
- -l --logical
- گزارش اندیسهای منطقی بهجای اندیسهای فیزیکی/سیستمعامل (پیشفرض).
- -c --cpuset
- نمایش قیدهای فرایند بهصورت cpuset بهجای اشیاء.
- -t --threads
- نمایش رشتهها درون فرایندها. اگر -a نیز داده شود، تمام رشتههای درون هر فرایند فهرست میشوند. در غیر این صورت، تمام رشتههای درون هر فرایندی که حداقل یک رشته از آن مقید شده است نمایش داده میشوند. این قابلیت در حال حاضر تنها در Linux پشتیبانی میشود.
- --single-ancestor
- هنگامی که شیء به اشیاء مختلفی مقید شده است، نیاکان مشترک آنها گزارش میشود (حتی اگر ممکن است بزرگتر از قید واقعی باشد).
- -e --get-last-cpu-location
- گزارش آخرین پردازندههایی که فرایند/رشته روی آنها اجرا شده است. توجه داشته باشید که ممکن است نتیجه در زمان گزارش از پیش قدیمی شده باشد، زیرا سیستمعامل میتواند با توجه به قید مربوطه وظایف را در هر زمان به پردازندههای دیگر منتقل کند.
- --disallowed
- شامل کردن اشیائی که به دلیل محدودیتهای مدیریتی مجاز نیستند.
- --pid-cmd <cmd>
- پیوست کردن خروجی دستور دادهشده به انتهای خط هر PID. بهازای هر شناسه فرایندِ نمایش دادهشده، دستور <cmd> <pid> اجرا شده و نخستین خط خروجی آن به انتهای خط معمولی hwloc-ps پیوست میشود.
- --pid-cmd env=<name>
- در Linux، تلاش برای خواندن مقدار متغیر محیطی name در هر فرایند و نمایش آن در انتهای خط.
- --pid-cmd mpirank
- در Linux، تلاش برای یافتن رتبهٔ MPI فرایند (از طریق پرسوجو از متغیرهای محیطی رایج) و نمایش آن در انتهای خط.
- --lstopo-misc <file>
- تولید خروجی در فایلی که میتواند برای نمایش فرایندها/رشتهها بهصورت اشیاء Misc به دستور lstopo --misc-from داده شود. بخش مثالها را در ادامه ببینید.
- --json-server
- اجرای ابزار بهصورت یک سرور JSON که روی یک درگاه منتظر درخواستهای فرایندهای دیگر میماند و اطلاعات مقیدسازی را بازمیگرداند. برای جزئیات، contrib/hwloc-ps.www/ را ببینید.
- --json-port <port>
- استفاده از شماره درگاه دادهشده بهجای مقدار پیشفرض 8888.
- -v --verbose
- افزایش پرگویی سرور JSON.
- --short-name
- تنها نمایش نام کوتاه فرایند بهجای مسیر آن.
- --version
- گزارش نسخه و خروج.
- -h --help
- نمایش پیام راهنما و خروج.
توضیحات (DESCRIPTION)
بهطور پیشفرض، hwloc-ps تنها فرایندهای در حال اجرایی را فهرست میکند که مقید شدهاند. اگر گزینهٔ -t داده شود، فرایندهایی که خودشان مقید نشدهاند اما حداقل یک رشتهٔ مقیدشده دارند نیز همراه با تمام رشتههایشان نمایش داده میشوند.
دستور hwloc-ps شناسهٔ فرایند، خط فرمان و قید (binding) را نمایش میدهد. قید ممکن است بهصورت اشیاء یا cpusets گزارش شود.
بهطور پیشفرض، قیدهای فرایند به توپولوژی در دسترس فعلی محدود میشوند. اگر برخی فرایندها به پردازندههایی مقید شده باشند که در دسترس فرایند جاری نیستند، نادیده گرفته میشوند مگر آنکه گزینهٔ --disallowed داده شده باشد.
خروجی یک فهرست متنی ساده است. اگر میخواهید توپولوژی سلسلهمراتبی را با فرایندها حاشیهنویسی کنید تا چگونگی توزیع واقعی آنها روی ماشین را مشاهده نمایید، ممکن است ترجیح دهید بهجای آن از lstopo --ps استفاده کنید (که آن هم فقط فرایندهای مقیدشده را نشان میدهد).
در صورت تمایل، از گزینهٔ -a میتوان برای نمایش تمام فرایندها استفاده کرد.
مثالها (EXAMPLES)
اگر فرایندی مقید شده باشد، در خروجی پیشفرض نشان داده میشود:
$ hwloc-ps
4759 Core:0 myprogram
اگر فرایندی به دو هسته از یک بسته (package) بزرگتر مقید شده باشد، خروجی این هستهها را نشان خواهد داد. گزینهٔ --single-ancestor در عوض بسته را بازمیگرداند، حتی اگر در اینجا در عمل بزرگتر از قید مربوطه باشد (فرایند به Core:0 از Package:0 مقید نشده است):
$ hwloc-ps
4863 Core:1 Core:2 myprogram
$ hwloc-ps --single-ancestor
4863 Package:0 myprogram
اگر فرایندی مقید نباشد اما ۳ رشته از ۴ رشتهٔ آن مقید شده باشند، تنها در خروجی آگاه از رشته نمایش داده میشود (یا اگر بهصراحت انتخاب شده باشد):
$ hwloc-ps
$ hwloc-ps -t
4759 Machine:0 myprogram
4759 Machine:0
4761 PU:0
4762 PU:2
4765 PU:1
$ hwloc-ps --pid 4759
4759 Machine:0 myprogram
مثال با یکپارچهسازی lstopo (Example with lstopo integration)
خروجی میتواند فایلی باشد که lstopo برای افزودن اشیاء Misc از آن استفاده میکند (نسخهٔ انعطافپذیرترِ lstopo --top):
$ hwloc-ps --misc-from foo
$ cat foo
name=12444 myprogram
cpuset=0x000000f0
subtype=Process
name=12444 mythread1
cpuset=0x00000050
subtype=Thread
name=12444 mythread2
cpuset=0x000000a0
subtype=Thread
این خروجی را میتوان مستقیماً به lstopo داد:
$ hwloc-ps --misc-from - | lstopo --misc-from -
مثالها با فرایندهای MPI (Examples with MPI processes)
در Linux، دستور hwloc-ps ممکن است برخی متغیرهای محیطی ویژهٔ فرایند را در انتهای خط نمایش دهد. این قابلیت برای مثال جهت شناسایی رتبههای MPI میان فرایندها مفید است:
$ hwloc-ps --pid-cmd env=OMPI_COMM_WORLD_RANK
29093 PU:0 myprogram OMPI_COMM_WORLD_RANK=0
29094 PU:2 myprogram OMPI_COMM_WORLD_RANK=1
29095 PU:1 myprogram OMPI_COMM_WORLD_RANK=2
29096 PU:3 myprogram OMPI_COMM_WORLD_RANK=3
برخی متغیرهای محیطی رایج ویژهٔ MPI (شامل OMPI_COMM_WORLD_RANK، PMIX_RANK، PMI_RANK و SLURM_PROCID) در واقع هنگام استفاده از دستور mpirank مستقیماً توسط hwloc-ps شناسایی میشوند:
$ hwloc-ps --pid-cmd mpirank
29093 PU:0 myprogram PMIX_RANK=0
29094 PU:2 myprogram PMIX_RANK=1
29095 PU:1 myprogram PMIX_RANK=2
29096 PU:3 myprogram PMIX_RANK=3
علاوه بر خواندن متغیرهای محیطی، hwloc-ps میتواند خروجی یک برنامهٔ سفارشی را نیز پیوست کند. مجدداً برای خواندن رتبهٔ فرایند در Open MPI:
$ hwloc-ps --pid-cmd myscript
29093 PU:0 myprogram OMPI_COMM_WORLD_RANK=0
29094 PU:2 myprogram OMPI_COMM_WORLD_RANK=1
29095 PU:1 myprogram OMPI_COMM_WORLD_RANK=2
29096 PU:3 myprogram OMPI_COMM_WORLD_RANK=3
که در آن myscript یک اسکریپت شل است که دستور زیر را انجام میدهد:
#!/bin/sh
cat /proc/$1/environ 2>/dev/null | xargs --null --max-args=1 echo | grep
OMPI_COMM_WORLD_RANK
همچنین ببینید (SEE ALSO)
hwloc(7), lstopo(1), hwloc-calc(1), hwloc-distrib(1) و hwloc-ps.www/README
| June 8, 2026 | 2.14.0 |