זוהי הפקודה hwloc-bind שניתן להריץ בספק האירוח החינמי של OnWorks באמצעות אחת מתחנות העבודה המקוונות המרובות שלנו, כגון Ubuntu Online, Fedora Online, אמולטור מקוון של Windows או אמולטור מקוון של MAC OS
תָכְנִית:
שֵׁם
hwloc-bind - הפעל פקודה המחוברת למעבדים ו/או זיכרון ספציפיים, או
להתייעץ עם הכריכה של תוכנית קיימת
תַקצִיר
hwloc-bind [אפשרויות] [ [...] ] [-] ...
שים לב כי הולל(7) מספק הסבר מפורט על מערכת hwloc ועל תקף
פורמטים; יש לקרוא אותו לפני שקוראים את דף האיש הזה.
אפשרויות
--cpubind השתמש בארגומנטים הבאים עבור כריכת מעבד (ברירת מחדל).
--ממבינד השתמש בארגומנטים הבאים לקשירת זיכרון. אם --מדיניות זיכרון לא ניתן גם,
מדיניות ברירת המחדל היא מחייבת.
--מדיניות זיכרון
שנה את מדיניות קשירת הזיכרון. המדיניות הזמינה היא ברירת מחדל,
firsttouch, bind, interleave replicate ו-nexttouch. אפשרות זו היא בלבד
משמעותי כאשר ניתנת גם כריכה ממשית עם --ממבינד. אם --ממבינד is
ניתן בלי --מדיניות זיכרון, מדיניות ברירת המחדל היא bind.
--לקבל דווח על הכריכות הנוכחיות.
כאשר ניתנת פקודה, הקישור מוצג לפני ביצוע הפקודה.
כאשר לא ניתנת פקודה, התוכנית יוצאת לאחר הצגת הנוכחי
כריכה.
בשילוב עם --ממבינד, דווח על כריכת הזיכרון במקום כריכת מעבד.
אין למסור מיקום מכיוון שלא מתבצעת כריכה.
-e -- get-last-cpu-location
דווח על המעבדים האחרונים שבהם רץ התהליך. שימו לב שהתוצאה עשויה
כבר היה מיושן כאשר מדווח, מכיוון שמערכת ההפעלה עשויה להזיז את
לעבד למעבדים אחרים בכל עת לפי הכריכה.
כאשר ניתנת פקודה, המעבדים האחרונים מוצגים לפני ביצוע ה-
פקודה. כאשר לא ניתנת פקודה, התוכנית יוצאת לאחר הצגת הפקודה האחרונה
מעבדים.
לא ניתן לשלב עם אפשרות זו --ממבינד.
אין למסור מיקום מכיוון שלא מתבצעת כריכה.
--יחיד התחבר למעבד יחיד כדי למנוע הגירה.
--קַפְּדָנִי דורשים כריכה קפדנית.
--pid
פעל על פיד
-p --גוּפָנִי
קח מערכת הפעלה/אינדקסים פיזיים במקום אינדקסים לוגיים
-l --הגיוני
קח אינדקסים לוגיים במקום אינדקסים פיזיים/מערכת הפעלה (ברירת מחדל)
--סט משימות הצג מחרוזות ערכת CPU בפורמט המזוהה על ידי שורת הפקודה של ערכת המשימות
תוכנית במקום פורמט מחרוזת הגדרת מעבד ספציפי hwloc. לאופציה זו אין
השפעה על הפורמט של מחרוזות ערכת מעבד קלט, שני הפורמטים תמיד מקובלים.
--לְהַגבִּיל
הגבל את הטופולוגיה ל-cpuset הנתון.
--כל המערכת
אל תשקול מגבלות ניהול.
-f --כּוֹחַ
הפעל את קובץ ההפעלה גם אם הכריכה נכשלה.
-q --שֶׁקֶט
הסתר הודעות שגיאה לא קטלניות. זה כולל מיקומים המצביעים על לא קיים
חפצים, כמו גם אי קשירה. זה בדרך כלל שימושי בנוסף ל
--כּוֹחַ.
-v --מִלוּלִי
תפוקה רחבה.
--גִרְסָה דווח על גרסה ויציאה.
תיאור
hwloc-bind מנהל קובץ הפעלה (עם ארגומנטים אופציונליים של שורת הפקודה) המחובר ל-
מיקום שצוין (או רשימת מיקומים). לאחר ביצוע מוצלח, hwloc-bind פשוט
מגדיר כריכות ולאחר מכן מוציא את קובץ ההפעלה מעל עצמו.
אם הכריכה נכשלת, או אם ערכת הכריכה ריקה, ו --כּוֹחַ לא ניתן, hwloc-bind
חוזר עם שגיאה במקום להפעיל את קובץ ההפעלה.
הערה: מומלץ מאוד לקרוא את הולל(7) דף סקירה לפני הקריאה
דף האיש הזה. רוב המושגים המתוארים ב הולל(7) לפנות ישירות ל-hwloc-
השירות לאגד.
דוגמאות
הפעולה של hwloc-bind מתוארת בצורה הטובה ביותר באמצעות מספר דוגמאות. פרטים נוספים על איך
המיקומים מצוינים בשורת הפקודה hwloc-bind מתוארים ב הולל(7).
כדי להפעיל את פקודת ההד על המעבד הלוגי הראשון של החבילה השנייה:
hwloc-bind package:1.pu:0 -- echo hello
שמקביל בדיוק ל
hwloc-bind package:1.pu:0 echo hello
לאגד את הפקודה "הד" לליבה הראשונה של החבילה השנייה ולליבה השנייה של
החבילה הראשונה:
hwloc-bind package:1.core:0 package:0.core:1 echo hello
שימו לב שקישור הפקודה "הד" למספר מעבדים הוא כנראה חסר משמעות
(מפני ש"הד" מיושם ככל הנראה כיישום עם חוט יחיד); הדוגמאות הללו
רק לשמש כדי להראות מה hwloc-bind יכול לעשות.
כדי להפעיל על שלוש החבילות הראשונות בצמתים השני והשלישי:
hwloc-bind node:1-2.package:0:3 echo hello
שהוא גם שווה ערך ל:
hwloc-bind node:1-2.package:0-2 echo hello
שים לב שאם תנסה לאגד לאובייקטים שאינם קיימים, hwloc-bind לא יזהיר
אלא אם כן -v צוין.
כדי להפעיל על מעבד עם אינדקס פיזי 2 בחבילה עם אינדקס פיזי 1:
hwloc-bind --physical package:1.core:2 echo hello
כדי להפעיל על ליבות אי-זוגיות בתוך חבילות זוגיות:
hwloc-bind package:even.core:odd echo hello
כדי להפעיל על החבילה הראשונה, למעט על הליבה השנייה והחמישית שלה:
hwloc-bind package:0 ~package:0.core:1 ~package:0.core:4 echo hello
כדי לרוץ בכל מקום מלבד בחבילה הראשונה:
hwloc-bind all ~package:0 echo hello
כדי להפעיל על ליבה ליד ממשק הרשת בשם eth0:
hwloc-bind os=eth0 אקו שלום
כדי להפעיל על ליבה ליד התקן PCI שמזהה האוטובוס שלו הוא 0000:01:02.0:
hwloc-bind pci=0000:01:02.0 echo hello
כדי לאגד זיכרון בצומת זיכרון שני ולהפעיל בצומת ראשון (כאשר הוא נתמך על ידי מערכת ההפעלה):
hwloc-bind --cpubind node:1 --membind node:0 echo hello
האפשרות --get יכולה לדווח על כריכות נוכחיות. דוגמה זו מציגה קינון של hwloc-bind
קריאות להגדיר מחייב ולאחר מכן לדווח עליה:
hwloc-bind node:1.package:2 hwloc-bind --get
באחת מהמכונות של מפתח hwloc, דוגמה זו מדווחת על "0x00004444,0x44000000".
המסכה המדווחת במחשב שלך עשויה להיות שונה.
ניתן לציין מיקומים גם כמסיכת hex bit (בדרך כלל נוצרת על ידי hwloc-calc).
לדוגמה:
hwloc-bind 0x00004444,0x44000000 אקו שלום
hwloc-bind `hwloc-calc node:1.package:2` echo hello
ניתן גם לדווח על כריכת זיכרון:
hwloc-bind --membind node:1 --mempolicy interleave -- hwloc-bind --get --membind
פעולה זו מחזירה מחרוזת המתארת את כריכת הזיכרון, כגון "0x000000f0 (interleave)".
שימו לב שאם המערכת אינה מכילה צמתים של NUMA, המחרוזת המדווחת תציין
שהתהליך קשור לזיכרון המערכת כולו (למשל, "0xf...f").
רמז
אם ה-lstopo התומך בגרפיקה זמין, השתמש למשל
hwloc-bind core:2 -- lstopo --pid 0
כדי לבדוק מה בעצם התוצאה של פקודת הכריכה שלך. lstopo יהיה גרפי
להראות לאן זה קשור על ידי hwloc-bind.
לַחֲזוֹר ערך
לאחר ביצוע מוצלח, hwloc-bind מבצע את הפקודה על עצמה. ערך ההחזר הוא
לכן יהיה ערך ההחזרה של הפקודה אשר יהיה.
hwloc-bind יחזיר לאפס אם מתרחשת שגיאה כלשהי, כגון (אך לא מוגבל ל):
כשל בניתוח שורת הפקודה, כשל באחזור כריכות תהליכים או היעדר א
פקודה לביצוע.
השתמש ב-hwloc-bind באינטרנט באמצעות שירותי onworks.net