EnglishFrenchSpanish

เรียกใช้เซิร์ฟเวอร์ | Ubuntu > | Fedora > |


ไอคอน Fav ของ OnWorks

likwid-pin - ออนไลน์ในคลาวด์

เรียกใช้ likwid-pin ในผู้ให้บริการโฮสต์ฟรีของ OnWorks ผ่าน Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

นี่คือคำสั่ง likwid-pin ที่สามารถเรียกใช้ในผู้ให้บริการโฮสติ้งฟรีของ OnWorks โดยใช้หนึ่งในเวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

โครงการ:

ชื่อ


likwid-pin - ปักหมุดแอปพลิเคชันตามลำดับหรือแบบเธรดไปยังโปรเซสเซอร์เฉพาะ

เรื่องย่อ


ลิขิต-พิน [-vhqipS] [-c ] [-s ] [-d ]

DESCRIPTION


ลิขิต-พิน เป็นแอปพลิเคชันบรรทัดคำสั่งเพื่อปักหมุดแอปพลิเคชันแบบต่อเนื่องหรือแบบมัลติเธรด
ให้กับโปรเซสเซอร์เฉพาะ ใช้แทนได้ ชุดภารกิจ(1) ตรงข้ามกับ
taskset ไม่มี affinity mask แต่มีการระบุตัวประมวลผลเดียว สำหรับมัลติเธรด
แอปพลิเคชันตามไลบรารี pthread the pthread_create การโทรของห้องสมุดมีมากเกินไป
ผ่าน LD_PRELOAD และแต่ละเธรดที่สร้างขึ้นจะถูกตรึงไว้กับโปรเซสเซอร์เฉพาะตามที่ระบุ
in core_list

ตามค่าเริ่มต้น ทุกเธรดที่สร้างขึ้นจะถูกตรึงไว้ที่คอร์ตามลำดับการเรียกไปยัง
pthread_create เป็นไปได้ที่จะข้ามเธรดเดียวโดยใช้ตัวเลือกบรรทัดคำสั่ง -s

สำหรับการใช้งาน OpenMP คอมไพเลอร์ gcc และ icc ได้รับการสนับสนุนอย่างชัดเจน คนอื่นอาจ
ทำงาน ลิขิต-พิน ตั้งค่าตัวแปรสภาพแวดล้อม OMP_NUM_THREADS ให้คุณหากยังไม่ได้ทำ
ปัจจุบัน. มันจะตั้งค่าเธรดได้มากเท่าที่มีอยู่ในนิพจน์พิน พึงรู้ไว้เถิดว่า
ด้วย pthreads เธรดหลักจะถูกตรึงไว้เสมอ หากคุณสร้างเช่น 4 เธรดด้วย
pthread_create และอย่าใช้กระบวนการหลักในฐานะผู้ปฏิบัติงานที่คุณยังต้องจัดหาให้
รหัสโปรเซสเซอร์ num_threads+1

ลิขิต-พิน รองรับการกำหนดหมายเลขที่แตกต่างกันสำหรับการปักหมุด ต่อการกำหนดหมายเลขทางกายภาพเริ่มต้นของ
แกนถูกนำมาใช้ นี่คือการนับด้วย likwid-โทโพโลยี(1) รายงาน แต่ยัง
สามารถใช้การนับเลขแบบลอจิคัลภายในโหนดหรือซ็อกเก็ตได้ หากใช้กับ N (เช่น -c
N:0-6) แกนมีหมายเลขลอจิกเหนือโหนดทั้งหมด แกนทางกายภาพมาก่อน ถ้า
ระบบเช่นมี 8 คอร์พร้อม 16 เธรด SMT พร้อม -c N:0-7 คุณจะได้รับฟิสิคัลคอร์ทั้งหมด
หากคุณระบุ -c N:0-15 คุณจะได้รับฟิสิคัลคอร์ทั้งหมดและเธรด SMT ทั้งหมด ด้วย S คุณสามารถ
ระบุหมายเลขลอจิคัลภายในซ็อกเก็ต ฟิสิคัลคอร์มาก่อนอีกครั้ง คุณสามารถผสม
โดเมนต่างๆ คั่นด้วย @ เช่น -c S0:0-3@S2:2-3 คุณตรึงเธรด 0-3 เป็นตรรกะ
คอร์ 0-3 บนซ็อกเก็ต 0 และเธรด 4-5 บนแกนตรรกะ 2-3 บนซ็อกเก็ต 2

สำหรับแอปพลิเคชันที่ไม่สามารถใช้นโยบายการสัมผัสครั้งแรกบนระบบ numa ได้ ลิขิต-พิน
สามารถใช้เพื่อเปิดตำแหน่งหน่วยความจำสอดแทรก สิ่งนี้สามารถเร่งความเร็วได้อย่างมาก
ประสิทธิภาพของรหัสมัลติเธรดที่ผูกกับหน่วยความจำ โหนด num ทั้งหมดที่ผู้ใช้ตรึงเธรดไว้ที่
ใช้สำหรับสอดประสาน

OPTIONS


-v พิมพ์ข้อมูลเวอร์ชันไปยังเอาต์พุตมาตรฐาน จากนั้นออก

-h พิมพ์ข้อความช่วยเหลือไปยังเอาต์พุตมาตรฐาน จากนั้นออก

-c OR OR <scatter นโยบาย>
ระบุรายการตัวเลขของโปรเซสเซอร์ รายการอาจมีหลายรายการ
คั่นด้วยเครื่องหมายจุลภาค และช่วง ตัวอย่างเช่น 0,3,9-11 คุณยังสามารถใช้ตรรกะ
การนับจำนวนภายในโหนด (N) ซ็อกเก็ต (S ) หรือโดเมน numa (M ).
likwid-pin ยังรองรับการปักหมุดแบบลอจิคัลภายใน cpuset ด้วยคำนำหน้า L ถ้าคุณ
ละเว้นตัวเลือกนี้ likwid-pin จะปักหมุดเธรดกับโปรเซสเซอร์บนโหนด
ด้วยแกนทางกายภาพก่อน ดูด้านล่างสำหรับรายละเอียดเกี่ยวกับการใช้นิพจน์เธรดหรือ
นโยบายกระจาย

-s
ระบุข้ามมาสก์เป็นหมายเลข HEX สำหรับแต่ละชุดบิตเธรดที่สอดคล้องกันคือ
ข้ามไป

-S โดเมนหน่วยความจำ ccNUMA ทั้งหมดที่เป็นของรายการเธรดที่ระบุจะถูกล้าง
ก่อนวิ่ง สามารถแก้ปัญหาแคชไฟล์บัฟเฟอร์บน Linux

-p พิมพ์โดเมนเธรดที่มีอยู่สำหรับการปักหมุดแบบลอจิคัล หากใช้ร่วมกัน
ด้วย -c ID ตัวประมวลผลทางกายภาพจะถูกพิมพ์ไปที่ stdout

-i ตั้งค่านโยบายหน่วยความจำ num ให้แทรกระหว่างโหนด num ทั้งหมดที่เกี่ยวข้องกับการปักหมุด

-q การดำเนินการเงียบโดยไม่มีเอาต์พุต

-d
ตั้งค่าตัวคั่นที่ใช้เพื่อส่งออกรายการตัวประมวลผลทางกายภาพ (-p & -c)

ตัวอย่าง


1. สำหรับแอปพลิเคชัน pthread มาตรฐาน:

ลิขิต-พิน -c 0,2,4-6 ./myApp

กระบวนการหลักถูกตรึงไว้ที่โปรเซสเซอร์ 0 เธรด 0 ถึงโปรเซสเซอร์ 2, เธรด 1 ถึง
โปรเซสเซอร์ 4, เธรด 2 ถึงโปรเซสเซอร์ 5 และเธรด 3 ถึงโปรเซสเซอร์ 6 หากมีเธรดเพิ่มเติม
สร้างมากกว่าที่ระบุไว้ในรายการโปรเซสเซอร์ เธรดเหล่านี้ถูกตรึงไว้ที่ตัวประมวลผล 0 as
รั้งท้าย.

2. สำหรับ gcc OpenMP ต้องระบุรหัสจำนวนมากในรายการตัวประมวลผลเนื่องจากมีเธรด:

OMP_NUM_THREADS=4; ลิขิต-พิน -c 0,2,1,3 ./myApp

3. สามารถควบคุมการปักหมุดได้อย่างสมบูรณ์โดยการระบุรูปแบบการข้าม ตัวอย่างเช่น
คำสั่งต่อไปนี้ข้ามการปักหมุดของเธรด 1:

OMP_NUM_THREADS=4; ลิขิต-พิน -s 0x1 -c 0,2,1,3 ./myApp

4. สวิตช์ -c รองรับคำจำกัดความของเธรดในโดเมนความสัมพันธ์เฉพาะ เช่น
โหนด NUMA หรือกลุ่มแคช โดเมนความสัมพันธ์ที่มีอยู่สามารถดึงข้อมูลได้โดยใช้ -p
เปลี่ยนและไม่มีตัวเลือกเพิ่มเติมใน commandline โดเมนผู้สนใจทั่วไปคือ N
(ทั้งโหนด), SX (ซ็อกเก็ต X), CX (กลุ่มแคช X) และ MX (กลุ่มหน่วยความจำ X) หลายรายการ
โดเมนผู้สนใจสามารถตั้งค่าโดยคั่นด้วย @ เพื่อปักหมุด 2 เธรดในแต่ละซ็อกเก็ต
ของระบบ 2 ซ็อกเก็ต:

OMP_NUM_THREADS=4; ลิขิต-พิน -c S0:0-1@S1:0-1 ./myApp

5. คำจำกัดความอาร์กิวเมนต์อื่นของสวิตช์ -c ช่วยให้สามารถปักหมุดเธรดได้ตาม
เป็นนิพจน์เช่น E:N:4:1:2 ไวยากรณ์คือ E: :
กระทู้>(: : ). ตัวอย่างหมุด 8 เธรดที่มี 2 เธรด SMT ต่อ
คอร์บนเครื่อง SMT 4:

OMP_NUM_THREADS=4; ลิขิต-พิน -c อ:N:8:2:4 ./myApp

6. ทางเลือกสุดท้ายสำหรับสวิตช์ -c คือการกระจายเธรดโดยอัตโนมัติใน
โดเมนผู้สนใจ ตัวอย่างเช่น เพื่อกระจายเธรดบนโดเมนหน่วยความจำทั้งหมดใน a
ระบบ:

OMP_NUM_THREADS=4; ลิขิต-พิน -c M:กระจัดกระจาย ./myApp

ใช้ likwid-pin ออนไลน์โดยใช้บริการ onworks.net


Ad


Ad