เริ่มต้นใช้งาน Intel Trace Analyzer และ Collector
เริ่มต้นใช้งาน Intel® Trace Analyzer และ Collector
ใช้เอกสารเริ่มต้นใช้งานนี้และการติดตามที่รวบรวมไว้ล่วงหน้า file เพื่อดำเนินการวิเคราะห์ประสิทธิภาพ MPI ขั้นพื้นฐานด้วย Intel® Trace Analyzer and Collector
Intel Trace Analyzer and Collector ช่วยสำรวจประสิทธิภาพการใช้งาน Message Passing Interface (MPI) และระบุฮอตสปอตการสื่อสาร ปัญหาคอขวดในการซิงโครไนซ์ และการปรับสมดุลโหลด สำหรับข้อมูลเพิ่มเติมเกี่ยวกับผลิตภัณฑ์ โปรดดูหน้าผลิตภัณฑ์ Intel Trace Analyzer and Collector
ดาวน์โหลด Intel Trace Analyzer และ Collector
- โดยเป็นส่วนหนึ่งของชุดเครื่องมือ Intel® oneAPI HPC
- เป็นเครื่องมือแบบสแตนด์อโลน
ข้อกำหนดเบื้องต้น
- ก่อนที่จะรัน Intel Trace Analyzer and Collector ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง Intel® MPI Library และ Intel® oneAPI DPC++/C++ Compiler หรือ Intel® Fortran Compiler ล่าสุด
- ซึ่งจะตั้งค่าตัวแปรสภาพแวดล้อมที่จำเป็นสำหรับคอมไพเลอร์, Intel MPI Library และ Intel Trace Analyzer and Collector และคุณพร้อมที่จะติดตามแอปพลิเคชันของคุณ
- สำหรับข้อมูลเพิ่มเติม โปรดดู: ข้อกำหนดระบบ Intel® oneAPI HPC Toolkit
ทำความเข้าใจเวิร์กโฟลว์
- ติดตามใบสมัครของคุณ
- วิเคราะห์ฟังก์ชัน MPI ที่ใช้งานมากที่สุด
- ระบุปฏิสัมพันธ์ที่เป็นปัญหา
- ปรับปรุงประสิทธิภาพแอปพลิเคชันของคุณโดยแทนที่ฟังก์ชันที่ทำให้เกิดปัญหา
ติดตามใบสมัคร MPI ของคุณ
สร้างร่องรอย file เพื่อรวบรวมบันทึกเหตุการณ์สำหรับการวิเคราะห์พฤติกรรมของแอปพลิเคชันต่อไปนี้
- ตั้งค่าสภาพแวดล้อมสำหรับการเรียกใช้ Intel® Trace Analyzer and Collector โดยการรันสคริปต์ setvars จากผู้อำนวยการการติดตั้ง oneAPI
บันทึก
ตามค่าเริ่มต้น Intel Trace Analyzer and Collector จะถูกติดตั้งไว้ที่ /opt/intel/oneapi/itac สำหรับระบบปฏิบัติการ Linux* และในโปรแกรม Files (x86)\Intel\oneAPI\itac\latest สำหรับระบบปฏิบัติการ Windows*
บน Linux:
$ แหล่งที่มา /opt/intel/oneapi/setvars.sh
บน Windows:
“C:\โปรแกรม Files (x86)\Intel\oneAPI\setvars.bat” - รันแอปพลิเคชัน MPI ของคุณและสร้างการติดตามด้วยตัวเลือก -trace
บน Linux:
$ mpirun -trace -n 4 ./poisson_sendrecv.single
บน Windows:
รวบรวมแอปและรวบรวมการติดตาม
สำหรับคอมไพเลอร์ Intel oneAPI DPC++/C++ ให้รัน:
> mpiicc -ติดตาม poisson_sendrecv.single.c
สำหรับ Intel Fortran Compiler ให้รัน:
> mpiifort -trace poisson_sendrecv.single.f
อดีตนี้ample สร้างการติดตาม (stf*) สำหรับ asampแอปพลิเคชัน le poisson_sendrcv.single MPI - เปิดไฟล์ .stf ที่สร้างขึ้น file ด้วย Intel Trace Analyzer พร้อม Intel Trace Analyzer และ Collector
บน Linux:
$ เครื่องวิเคราะห์การติดตาม ./ poisson_sendrecv.single.stf
บน Windows:
เครื่องวิเคราะห์การติดตาม poisson_sendrecv.single.stf
บันทึก
เพื่อวัตถุประสงค์ในการทดสอบ คุณสามารถดาวน์โหลดการติดตามที่รวบรวมไว้ล่วงหน้าได้ file poisson_sendrecv.single.stf สำหรับ poisson ที่ใช้ในเอกสารนี้ และเปิดด้วย Intel Trace Analyzer and Collector
.stf file จะเปิดขึ้นในหน้าสรุป viewซึ่งแสดงถึงข้อมูลทั่วไปเกี่ยวกับประสิทธิภาพแอปพลิเคชันของคุณ:บันทึก สำหรับข้อมูลเพิ่มเติมเกี่ยวกับฟังก์ชัน Intel Trace Analyzer และ Collector โปรดดูเรียนรู้เพิ่มเติม
วิเคราะห์ฟังก์ชัน MPI ที่ใช้งานมากที่สุด
วิเคราะห์พฤติกรรมแอปพลิเคชัน MPI ค้นหาคอขวด และระบุการทำให้เป็นอนุกรมเพื่อค้นหาวิธีปรับปรุงประสิทธิภาพของแอปพลิเคชัน
- จากหน้าสรุป ให้เปิดไทม์ไลน์ของเหตุการณ์ view โดยการคลิกดำเนินการต่อ > แผนภูมิ > ไทม์ไลน์ของเหตุการณ์ เพื่อการวิเคราะห์เชิงลึกของฟังก์ชัน MPI อันดับต้นๆ
แผนภูมิแสดงกิจกรรมกระบวนการแต่ละอย่างในช่วงเวลาหนึ่ง
งานแอปพลิเคชันเป็นแบบวนซ้ำ โดยแต่ละวนซ้ำประกอบด้วยส่วนการคำนวณและการสื่อสาร MPI - ระบุการวนซ้ำครั้งเดียวเพื่อโฟกัสและซูมเข้าโดยการลากเมาส์ไปเหนือช่วงเวลาที่ต้องการ:
ร่องรอย view แสดงส่วนภายในการติดตามที่คุณเลือก แผนภูมิไทม์ไลน์เหตุการณ์แสดงเหตุการณ์ที่เกิดขึ้นระหว่างการวนซ้ำที่เลือก
- แถบแนวนอนแสดงถึงกระบวนการที่มีฟังก์ชันที่เรียกใช้ในกระบวนการเหล่านี้
- เส้นสีดำหมายถึงข้อความที่ส่งระหว่างกระบวนการ บรรทัดเหล่านี้เชื่อมต่อกระบวนการส่งและรับ
- เส้นสีน้ำเงินแสดงถึงการดำเนินงานโดยรวม เช่น การออกอากาศหรือการลดการดำเนินงาน
- เปลี่ยนไปใช้ Flat Profile แท็บ (A) เพื่อดูฟังก์ชันที่ดำเนินการในเวลาที่ชี้ของคุณอย่างละเอียดยิ่งขึ้น ( เลือกไว้ในไทม์ไลน์ของเหตุการณ์
- ยกเลิกการจัดกลุ่มฟังก์ชัน MPI เพื่อวิเคราะห์กิจกรรมกระบวนการ MPI ในแอปพลิเคชันของคุณ
เมื่อต้องการทำเช่นนี้ ให้คลิกขวาที่กระบวนการทั้งหมด > กลุ่ม MPI ( B) ใน Flat Profile และเลือก UngroupMPI การดำเนินการนี้เปิดเผยการเรียก MPI แต่ละรายการ - วิเคราะห์กระบวนการสื่อสารกับเพื่อนบ้านโดยตรงโดยใช้ MPI_Sendrecv เมื่อเริ่มต้นการวนซ้ำ สำหรับเช่นampเลอ:
- ก. ในสampเนื่องจากการแลกเปลี่ยนข้อมูล MPI_Sendrecv มีปัญหาคอขวด: กระบวนการจะไม่แลกเปลี่ยนข้อมูลกับเพื่อนบ้านถัดไปจนกว่าการแลกเปลี่ยนกับกระบวนการก่อนหน้าจะเสร็จสมบูรณ์ ไทม์ไลน์ของเหตุการณ์ view แสดงคอขวดนี้เป็นบันได
- ข. MPI_Allreduce เมื่อสิ้นสุดการวนซ้ำจะซิงโครไนซ์กระบวนการทั้งหมดอีกครั้ง ด้วยเหตุนี้บล็อกนี้จึงมีลักษณะเป็นบันไดย้อนกลับ
- ระบุการทำให้เป็นอนุกรมโดยใช้ Function Profile และข้อความโปรfile views.
- ก. เปิดแผนภูมิพร้อมกัน:
ในฟังก์ชั่นโปรfile แผนภูมิ เปิดแท็บ Load Balance - ไปที่เมนูแผนภูมิเพื่อเปิด Message Profile.
- ข. ในแท็บ Load Balance ให้ขยาย MPI_Sendrecv และ MPI_Allreduce Load Balancing บ่งชี้ว่าเวลาที่ใช้ใน MPI_Sendrecv จะเพิ่มขึ้นตามหมายเลขกระบวนการ ในขณะที่เวลาสำหรับ MPI_Allreduce ลดลง
- ค. ตรวจสอบข้อความ Profile แผนภูมิลงไปที่มุมขวาล่าง
รหัสสีของบล็อกบ่งชี้ว่าข้อความที่เดินทางจากตำแหน่งที่สูงกว่าไปยังตำแหน่งที่ต่ำกว่าต้องใช้เวลามากขึ้นตามสัดส่วน ในขณะที่ข้อความที่เดินทางจากตำแหน่งที่ต่ำกว่าไปยังตำแหน่งที่สูงกว่าจะแสดงรูปแบบเลขคี่คู่ที่อ่อนแอ:
- ก. เปิดแผนภูมิพร้อมกัน:
ผลลัพธ์ของการวิเคราะห์เปรียบเทียบแสดงให้เห็นว่าแอปพลิเคชันไม่มีรูปแบบการแลกเปลี่ยนที่ซับซ้อน การแลกเปลี่ยนจะดำเนินการเฉพาะกับกระบวนการใกล้เคียงเท่านั้น ข้อมูลนี้จะจำเป็นสำหรับการปรับปรุงประสิทธิภาพแอปพลิเคชันของคุณโดยการเปลี่ยนขั้นตอนการสื่อสารเพื่อปรับรูปแบบการสื่อสารของแอปพลิเคชันให้เหมาะสม
ระบุการสื่อสารที่ไม่สมดุล
เฝ้าดูการใช้งานของคุณภายใต้สถานการณ์ที่เหมาะสมและเปรียบเทียบร่องรอยดั้งเดิม file ด้วยแนวคิดในอุดมคติเพื่อแยกปฏิสัมพันธ์ที่เป็นปัญหาออก
- สร้างอุดมคติ file:
- ก. เลือกขั้นสูง > การทำให้เป็นอุดมคติ หรือคลิก
ปุ่มแถบเครื่องมือ (อุดมคติ)
- ข. ตรวจสอบพารามิเตอร์การทำให้เป็นอุดมคติในกล่องโต้ตอบการทำให้เป็นอุดมคติ (การติดตามในอุดมคติ file ชื่อและช่วงเวลาในการแปลง)
- ค. คลิกเริ่มเพื่อทำให้การติดตามของคุณสมบูรณ์แบบ
- ก. เลือกขั้นสูง > การทำให้เป็นอุดมคติ หรือคลิก
- เปรียบเทียบการติดตามดั้งเดิมกับการติดตามในอุดมคติ:
- ก. เลือกขั้นสูง > แผนภาพความไม่สมดุล หรือคลิกที่
ปุ่มแถบเครื่องมือ (แผนภาพความไม่สมดุล)
- ข. ในกล่องโต้ตอบไดอะแกรมความไม่สมดุลให้คลิกเปิดอื่น File นำทางไปยังการติดตามในอุดมคติ และเลือก
- ค. ในหน้าต่าง Imbalance Diagram คลิกปุ่ม Total Mode และเลือก Breakdown Mode
- ก. เลือกขั้นสูง > แผนภาพความไม่สมดุล หรือคลิกที่
คุณจะเห็นว่า MPI_Sendrecv เป็นฟังก์ชันที่ใช้เวลานานที่สุด น้ำหนักที่ไม่สมดุลจะแสดงอยู่ใน
สีอ่อนและประกอบด้วยประมาณ 10% สำหรับฟังก์ชัน MPI_Sendrecv นี่คือเวลาที่กระบวนการรอคอยซึ่งกันและกัน
ปรับปรุงประสิทธิภาพแอปพลิเคชันของคุณโดยการเปลี่ยนการสื่อสาร
- ปรับปรุงประสิทธิภาพของแอปพลิเคชัน MPI โดยเปลี่ยนการบล็อกเป็นการสื่อสารที่ไม่บล็อก
ในโค้ดของคุณ ให้แทนที่ MPI_Sendrcv แบบอนุกรมด้วยการสื่อสารที่ไม่ปิดกั้น: MPI_Isend และ MPI_Irecv สำหรับเช่นample: ข้อมูลโค้ดต้นฉบับ:
// การแลกเปลี่ยนขอบเขต
การแลกเปลี่ยนเป็นโมฆะ (ย่อหน้า * p, ตาราง * gr) {
int ฉัน, j;
MPI_สถานะ status_100, status_200, status_300, status_400;
// ส่งลงมาแถวแรก
MPI_Send(gr->x_new[1], gr->lcol+2, MPI_DOUBLE, gr->ลง, 100, MPI_COMM_WORLD); MPI_Recv(gr->x_new[gr->lrow+1], gr->lcol+2, MPI_DOUBLE, gr->ขึ้น, 100, MPI_COMM_WORLD,
&สถานะ_100);
// ส่งแถวสุดท้าย
MPI_Send(gr->x_new[gr->lrow], gr->lcol+2, MPI_DOUBLE, gr->ขึ้น, 200, MPI_COMM_WORLD);
MPI_Recv(gr->x_new[0], gr->lcol+2, MPI_DOUBLE, gr->ลง, 200, MPI_COMM_WORLD, &status_200);
ใช้การเปรียบเทียบ Intel Trace Analyzer view เพื่อเปรียบเทียบแอปพลิเคชันแบบซีเรียลไลซ์กับแอปพลิเคชันที่แก้ไข
// คัดลอกคอลัมน์ด้านซ้ายไปยังอาร์เรย์ tmp
ถ้า(gr->ซ้าย != MPI_PROC_NULL){
gr->x_new[i][gr->lcol+1] = right_col[i]; right_col[i] = gr->x_new[i][gr->lcol];
//ส่งถูกต้อง
MPI_Send(right_col, gr->lrow+2, MPI_DOUBLE, gr->ขวา, 400, MPI_COMM_WORLD); -
ถ้า(gr->ซ้าย != MPI_PROC_NULL)
{
MPI_Recv(left_col, gr->lrow+2, MPI_DOUBLE, gr->ซ้าย, 400, MPI_COMM_WORLD,&status_400); สำหรับ(i=0; i< gr->lrow+2; i++
{
gr->x_new[i][0] = left_col[i];
}
}
อัปเดตข้อมูลโค้ดแล้ว
คำขอ MPI_คำขอ [7];
// ส่งลงมาแถวแรก
MPI_Isend(gr->x_new[1], gr->lcol+2, MPI_DOUBLE, gr->ลง, 100, MPI_COMM_WORLD, &req[0]);
MPI_Irecv(gr->x_new[gr->lrow+1], gr->lcol+2, MPI_DOUBLE, gr->ขึ้น, 100, MPI_COMM_WORLD, &req[1]);
-
MPI_Waitall (7, คำขอ, MPI_STATUSES_IGNORE);
เมื่อแก้ไขแล้ว การวนซ้ำครั้งเดียวของแอปพลิเคชันที่แก้ไขจะมีลักษณะเช่นตัวอย่างต่อไปนี้ampเลอ: - ใช้การเปรียบเทียบ Intel Trace Analyzer view เพื่อเปรียบเทียบแอปพลิเคชันแบบซีเรียลไลซ์กับแอปพลิเคชันที่แก้ไข เปรียบเทียบสองร่องรอยด้วยความช่วยเหลือของการเปรียบเทียบ View, กำลังไป View > เปรียบเทียบ การเปรียบเทียบ View มีลักษณะคล้ายกับ:
ในการเปรียบเทียบ Viewคุณจะเห็นว่าการใช้การสื่อสารแบบไม่ปิดกั้นช่วยลบซีเรียลไลซ์และลดเวลาการสื่อสารของกระบวนการ
บันทึก สำหรับข้อมูลเพิ่มเติมเกี่ยวกับประสิทธิภาพระดับโหนดของแอปพลิเคชันของคุณ โปรดดูเอกสารสำหรับเครื่องมือที่เกี่ยวข้อง: Intel® VTune™ Profiler การวิเคราะห์โค้ด MPI และการวิเคราะห์แอปพลิเคชัน Intel® MPI โดยใช้ Intel® Advisor
เรียนรู้เพิ่มเติม
สำรวจแหล่งข้อมูลต่อไปนี้เพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับ Intel Trace Analyzer and Collector
ประกาศและข้อจำกัดความรับผิดชอบ
- เทคโนโลยีของ Intel อาจต้องเปิดใช้งานฮาร์ดแวร์ซอฟต์แวร์หรือการเปิดใช้งานบริการ
- ไม่มีผลิตภัณฑ์หรือส่วนประกอบใดที่จะปลอดภัยได้อย่างแน่นอน
- ค่าใช้จ่ายและผลลัพธ์ของคุณอาจแตกต่างกันไป
- © บริษัท อินเทล คอร์ปอเรชั่น Intel, โลโก้ Intel และเครื่องหมาย Intel อื่นๆ เป็นเครื่องหมายการค้าของ Intel Corporation หรือบริษัทในเครือ ชื่อและแบรนด์อื่น ๆ อาจถูกอ้างสิทธิ์ว่าเป็นทรัพย์สินของผู้อื่น
- ไม่มีการอนุญาตสิทธิ์ใดๆ (โดยชัดแจ้งหรือโดยนัย โดยการห้ามปรามหรือวิธีอื่นใด) ต่อสิทธิในทรัพย์สินทางปัญญาใดๆ ที่ได้รับอนุญาตจากเอกสารนี้
- ผลิตภัณฑ์ที่อธิบายอาจมีข้อบกพร่องด้านการออกแบบหรือข้อผิดพลาดที่เรียกว่าข้อผิดพลาดซึ่งอาจทำให้ผลิตภัณฑ์เบี่ยงเบนไปจากข้อมูลจำเพาะที่เผยแพร่ ข้อผิดพลาดที่ระบุในปัจจุบันสามารถขอได้
- Intel ขอปฏิเสธการรับประกันโดยชัดแจ้งและโดยนัยทั้งหมด ซึ่งรวมถึงแต่ไม่จำกัดเพียงการรับประกันโดยนัยของความสามารถในการซื้อขาย ความเหมาะสมสำหรับวัตถุประสงค์เฉพาะ และการไม่ละเมิด ตลอดจนการรับประกันใดๆ ที่เกิดขึ้นจากการดำเนินการ แนวทางการซื้อขาย หรือการใช้งานในการค้าขาย
เอกสาร / แหล่งข้อมูล
![]() |
intel เริ่มต้นใช้งาน Intel Trace Analyzer และ Collector [พีดีเอฟ] คู่มือการใช้งาน เริ่มต้นกับ Intel Trace Analyzer และ Collector, เริ่มต้นกับ Intel, Trace Analyzer และ Collector, Collector |