fi_pingpong(1) Libfabric v2.6.0 fi_pingpong(1)

fi_pingpong - آزمون پینگ‌پنگ سریع و ساده برای libfabric

fi_pingpong [OPTIONS]                      راه‌اندازی سرور
fi_pingpong [OPTIONS] <server address>     اتصال به سرور

ابزار fi_pingpong یک آزمون پینگ‌پنگ برای سنجش ویژگی اصلی کتابخانه libfabric است: انتقال داده میان دو فرآیند. همچنین fi_pingpong آمار تجمیعی را پس از هر بار اجرای آزمون نمایش می‌دهد و می‌تواند علاوه بر این، یکپارچگی داده‌ها را پس از دریافت اعتبارسنجی کند.

به‌طور پیش‌فرض، برای آزمون از نقطه پایانی (endpoint) دیتاگرام (FI_EP_DGRAM) استفاده می‌شود، مگر اینکه از طریق -e به‌گونه دیگری مشخص شده باشد.

باید دو نسخه از برنامه اجرا شود: ابتدا یک نسخه باید به عنوان سرور راه‌اندازی شود. سپس، نسخه دیگری با مشخص کردن آدرس سرور اجرا می‌شود.

به عنوان یک آزمون کلاینت-سرور، هر یک از الگوی استفاده زیر پیروی می‌کنند:

server$ fi_pingpong

client$ fi_pingpong <server address>

برای عملکرد صحیح ابزار fi_pingpong، سرور و کلاینت باید بتوانند ارتباط مناسبی با یکدیگر برقرار کنند. اگر از هر یک از گزینه‌های -e، -I، -S یا -p استفاده شود، این گزینه‌ها باید هنگام فراخوانی هر دو فرآیند سرور و کلاینت مشخص شوند. اگر گزینه -d در سمت سرور مشخص شده باشد، چنانچه هیچ سرنخی در سمت کلاینت ارائه نشده باشد، کلاینت دامنه (domain) مناسب را انتخاب خواهد کرد. اگر گزینه -d در سمت کلاینت مشخص شده باشد، باید در سمت سرور نیز مشخص شود. اگر هر دو سمت سرور و کلاینت گزینه -d را مشخص کنند و دامنه‌های تعیین‌شده نتوانند ارتباط برقرار کنند، برنامه با خطا متوقف خواهد شد.

شماره پورت غیرپیش‌فرض مبدأ برای سوکت کنترلی. اگر ارائه نشود، سرور به‌طور پیش‌فرض به پورت 47592 متصل می‌شود (bind) و کلاینت اجازه می‌دهد پورت به‌طور خودکار انتخاب شود.
شماره پورت غیرپیش‌فرض مقصد برای سوکت کنترلی. اگر ارائه نشود، کلاینت به‌طور پیش‌فرض به 47592 متصل خواهد شد. سرور این گزینه را نادیده می‌گیرد.

نام ارائه‌دهنده فابریک زیرین (مانند sockets، psm3، usnic و غیره). اگر ارائه‌دهنده‌ای از طریق سوئیچ -p مشخص نشود، آزمون یکی را از فهرست ارائه‌دهندگان در دسترس (همان‌طور که توسط fi_getinfo(3) برگردانده می‌شود) انتخاب خواهد کرد.
نوع نقطه پایانی (endpoint) مورد استفاده برای پیام‌رسانی داده میان دو فرآیند. مقادیر پشتیبانی‌شده عبارتند از dgram، rdm و msg. برای اطلاعات بیشتر در مورد انواع endpoint، fi_endpoint(3) را ببینید.
نام دامنه (domain) خاصی که باید استفاده شود.
آدرس مربوط به دامنه متناظر. در محیط‌های دارای چند آداپتور الزامی است.

تعداد دفعات تکرار اجرای آزمون.
اندازه خاص پیام بر حسب بایت که در آزمون استفاده می‌شود، یا 'all' برای اجرای تمام اندازه‌های پیش‌فرض.
فعال‌سازی بررسی صحت داده‌ها در سمت گیرنده (توجه: این کار کارایی را کاهش می‌دهد).

فعال‌سازی اشکال‌زدایی خروجی (هشدار: بسیار پرحجم و دارای جزئیات زیاد).
نمایش خروجی راهنما برای آزمون پینگ‌پنگ.

server$ fi_pingpong -p sockets

client$ fi_pingpong -p sockets 192.168.0.123

server$ fi_pingpong -p usnic -I 1000 -S 1024

client$ fi_pingpong -p usnic -I 1000 -S 1024 192.168.0.123

به‌طور مشخص، این دستور یک آزمون پینگ‌پنگ را با مشخصات زیر اجرا می‌کند:

•
ارائه‌دهنده usNIC
•
۱۰۰۰ تکرار
•
اندازه پیام ۱۰۲۴ بایت
•
گره سرور به نشانی 192.168.0.123

server$ fi_pingpong -p usnic -I 10000 -S all

client$ fi_pingpong -p usnic -I 10000 -S all 192.168.0.123

هیچ ارائه‌دهنده پیش‌فرضی وجود ندارد؛ اگر ارائه‌دهنده‌ای از طریق سوئیچ -p مشخص نشود، آزمون یک مورد را از فهرست ارائه‌دهندگان موجود (همان‌طور که توسط fi_getinfo(3) بازگردانده می‌شود) انتخاب خواهد کرد.

اگر هیچ نوع endpoint مشخص نشده باشد، 'dgram' استفاده می‌شود.

اندازه‌های آزموده‌شده پیش‌فرض عبارتند از: 64، 256، 1024، 4096، 65536 و 1048576. آزمون تنها اندازه‌هایی را بررسی خواهد کرد که در محدوده حداکثر اندازه پیام endpoint انتخاب‌شده قرار داشته باشند.

هر آزمون پیام‌های داده‌ای تولید می‌کند که در محاسبات لحاظ می‌شوند. به‌طور مشخص، آمارهای نمایش‌داده‌شده در انتها عبارتند از:

•
bytes : تعداد بایت‌های هر پیام ارسالی
•
#sent : تعداد پیام‌های (ping) ارسالی از کلاینت به سرور
•
#ack : تعداد پاسخ‌های (pong) سرور که توسط کلاینت دریافت شده است
•
total : میزان حافظه مبادله‌شده میان فرآیندها
•
time : مدت‌زمان این آزمون تکی
•
MB/sec : پهنای باند/توان عملیاتی محاسبه‌شده از روی total و time
•
usec/xfer : میانگین زمان ارسال یک پیام خروجی (ping یا pong) بر حسب میکروثانیه
•
Mxfers/sec : میانگین تعداد انتقال‌های پیام خروجی در هر ثانیه

fi_getinfo(3), fi_endpoint(3) fabric(7),

OpenFabrics.

2024-12-10 Libfabric Programmer’s Manual