utilize only four of the eight cores, each core will be oversubscribed
by the OpenMP threads. In contrast, because
the latter mapping is the only one that utilizes all cores on
the node and assigns task 0 to a core that is close to the
HCA card, it is likely that Intel MPI will provide the best
performance.
Although, MPI libraries provide parameters that can be
used to change the tasks-to-cores mapping, identifying and
effecting a suitable mapping requires knowledge regarding
the node architecture and the related parameter settings.
This is not a trivial task for the average user.
To recommend a better tasks-to-cores binding, MPI Advisor
detects the mapping being used by the input application
and determines if it is the most suitable. If it is not, MPI Advisor
provides the user with the details of the current mapping
and recommends related parameter settings that can
be utilized to affect an alternate mapping, which may improve
performance. To do this, during MPI Advisor’s data
collection phase: 1) using the POSIX function getenv(),
the OMP_NUM_THREADS variable is read to identify the number
of MPI tasks and OpenMP threads executing on each
node, 2) by calling MPI_Get_processor_name(), the hostname
associated with each task is identified to determine
the number of MPI tasks on each node (the number with
the same hostname), and 3) using hwloc, the mapping used
by the application is identified.
During the analysis phase, this information is used to
determine if one of the following situations exist: 1) the
node is under- or over-utilized, i.e., the number of resident
OpenMP threads is smaller or larger than the number of
resident cores, 2) the cores are under- or over-subscribed,
0 1
2
2 3
0 1
3
(a) MVAPICH2
0
0 1
1 2
2 3
3
(b) Open MPI
1
3
0
2
1 0
3 2
(c) Intel MPI
Figure 6: Default mapping of 4 multi-threaded MPI tasks
inside a dual-socket node equipped with two 4-core processors
according to each MPI library.
i.e., the number of cores assigned to an MPI task is greater
or less than the number of OpenMP threads executing on a
node, and 3) the root process is not close to the HCA card.
Any one of these situations triggers MPI Advisor to output
a recommendation.
4.4 Infiniband Transport: RC and UD
To provide high-throughput communication InfiniBand is
the interconnection network of choice of many HPC systems.
Of the four transports defined by the InfiniBand specification,
reliable connection (RC) and unreliable datagram (UD)
[11] are the most commonly used, with RC being the primary
(default) transport over InfiniBand for MVAPICH2,
Intel MPI, and Open MPI. As shown in Table 4, RC and
UD differ in several ways. But, one of the most important
is in terms of their relative memory footprints. In general,
the default MPI library settings usually cause RC memory
requirements per node to grow linearly with the number of
MPI tasks with which it communicates. This is despite the
fact that InfiniBand provides mechanisms to reduce the footprint
of RC [10] and MPI implementations provide a way to
make use of them. In contrast, UD’s memory usage is near
constant.
To select the Infiniband transport method, MPI Advisor
assumes that the input application is using RC by default.
To determine which transport is more suitable, during the
data collection phase, MPI Advisor calls MPI_Comm_size()
to identify the number of tasks employed by the application.
If this number exceeds 4,096, MPI Advisor recommends that
UD be employed (in accordance with [11]) and provides instructions
on how to make this change.
5. PERFORMANCE EVALUATION
To demonstrate the efficacy of MPI Advisor recommendations
for optimization, we conducted experiments on TACC’s
Stampede and Maverick clusters. Stampede has 6,400 dualsocket
8-core Sandy-Bridge E5-2680 compute nodes each
with 32 GB of memory. Maverick contains 132 dual-socket
10-core Ivy-Bridge E5-2680v2 compute nodes each with 256
GB of memory. On both clusters, the nodes are interconnected
by InfiniBand HCAs in FDR mode [22] and the operating
system is Linux (kernel version 2.6.32-358.el6, CentOS
distribution version 6.4). We used MVAPICH2 version
1.9a2 and Intel MPI version 4.1.0.030 for this evaluation
since these are the two MPI libraries most commonly used
on Stampede and Maverick. The case study applications
were compiled using the Intel Compiler version 13.0.2.146.
Characteristic RC UD
Scalability n
2 n
Corrupt data detected yes yes
Delivery guarantee yes no
Ordering guarantee yes no
Data loss detection yes no
Error recovery yes no
Send / RDMA write yes no
Receive / RDMA read yes no
Max message size 1 GB MTU
Table 4: Infiniband RC and UD transport characteristics.
ใช้เพียงสี่แกนแปด จะทุนอสังหาริมแต่ละคอร์โดยเธรด OpenMP ตรงกันข้าม เนื่องจากการแม็ปหลังเป็นหนึ่งเดียวที่ใช้แกนทั้งหมดในโหนดและกำหนดงาน 0 ถึงหลักที่มีการบัตร HCA มีแนวโน้มว่า Intel MPI จะให้ดีที่สุดการทำงานถึงแม้ว่า MPI ไลบรารีมีพารามิเตอร์ที่สามารถใช้เพื่อเปลี่ยนแปลงการงาน-การแกนการแมป การระบุ และมีผลต่อการการแมปที่เหมาะสมต้องมีความรู้เกี่ยวกับสถาปัตยกรรมโหนและการตั้งค่าพารามิเตอร์ที่เกี่ยวข้องนี้ไม่ใช่งานเล็ก ๆ น้อย ๆ สำหรับผู้ใช้เฉลี่ยจะแนะนำที่ดีกว่างานที่แกนผูก ปรึกษา MPIตรวจพบการแมปที่ถูกใช้ โดยโปรแกรมที่ป้อนเข้าและกำหนดว่าเหมาะสมที่สุด ถ้าไม่ ปรึกษา MPIแก่ผู้ใช้รายละเอียดของการแม็ปที่ปัจจุบันและขอแนะนำที่เกี่ยวข้องกับการตั้งค่าพารามิเตอร์ที่สามารถที่ถูกต้องมีผลต่อการแมปอื่น ซึ่งอาจเพิ่มการทำงาน การทำเช่นนี้ ระหว่างข้อมูลปรึกษา MPIคอลเลกชันเฟส: 1) โดยใช้ฟังก์ชัน getenv() POSIXตัวแปร OMP_NUM_THREADS จะอ่านการระบุหมายเลขงาน MPI และ OpenMP เธรดที่ดำเนินการในแต่ละโหน 2) โดยการเรียก MPI_Get_processor_name() ชื่อโฮสต์เกี่ยวข้องกับแต่ละงานมีระบุการตรวจสอบจำนวนงาน MPI บนแต่ละโหน (หมายเลขด้วยชื่อโฮสต์เดียวกัน), และ 3) ใช้ hwloc การแมปที่ใช้โดยโปรแกรมที่ระบุระหว่างขั้นตอนการวิเคราะห์ ข้อมูลนี้จะใช้เพื่อหากหนึ่งในสถานการณ์ต่อไปนี้อยู่: 1) การโหนอยู่ภายใต้- หรือใช้ งานมากเกิน คือ หมายเลขของถิ่นที่อยู่เธรด OpenMP จะเล็ก หรือใหญ่กว่าจำนวนอาศัยแกน 2) แกนอยู่ภายใต้- หรือสมัคร สมาชิกมากกว่า0 122 30 13(ก) MVAPICH200 11 22 33(ข) เปิด MPI13021 03 2(ค) Intel MPIรูปที่ 6: เริ่มต้นการแมป 4 งาน MPI หลายเธรดภายในโหนสองซ็อกเก็ตพร้อมกับตัวประมวลผล 4 แกนที่สองตามแต่ละไลบรารี MPIเช่น จำนวนแกนที่กำหนดให้กับงานพัฒนามีค่าหรือน้อยกว่าจำนวน OpenMP เธรดที่ดำเนินการในการโหน และ 3) กระบวนการรากไม่ได้อยู่ใกล้กับบัตร HCAทริกเกอร์หนึ่งสถานการณ์เหล่านี้ปรึกษา MPI จะแสดงผลคำแนะนำ4.4 ขนส่งมือส่วน: RC และ UDเพื่อให้การสื่อสารความเร็วสูงที่เป็นมือส่วนเครือข่ายที่เชื่อมต่อโครงข่ายของทางเลือกของหลาย ๆ ระบบ HPCการขนส่งที่สี่ที่กำหนดตามข้อมูลจำเพาะมือส่วนการเชื่อมต่อ (RC) และเดตาแกรมไม่น่าเชื่อถือ (UD)[11] ถูกใช้บ่อยที่สุด กับ RC เป็นหลักขนส่ง (เริ่มต้น) ผ่านมือส่วนสำหรับ MVAPICH2Intel MPI และ MPI เปิด ดังแสดงในตาราง 4, RC และยูดีแตกต่างกันในหลายวิธี แต่ สำคัญที่สุดอย่างหนึ่งในแง่ของหน่วยความจำญาติรอยเท้าได้ ทั่วไปค่าเริ่มต้นไลบรารีของ MPI มักจะทำให้หน่วยความจำ RCต้องการต่อโหนเติบโตขนานไปกับจำนวนที่จะสื่อสารงาน MPI เหมือนว่าความจริงที่ว่า มือส่วนให้กลไกในการลดรอยRC [10] และใช้งาน MPI มีวิธีการทำให้ใช้ของพวกเขา ในทางตรงข้าม ใช้หน่วยความจำของ UD อยู่ใกล้ค่าคงการเลือกวิธีการขนส่งมือส่วน ปรึกษา MPIสันนิษฐานว่า โปรแกรมที่เข้าใช้ RC โดยค่าเริ่มต้นการตรวจสอบเหมาะสม ในระหว่างการขั้นตอนการเก็บข้อมูล MPI ปรึกษาโทร MPI_Comm_size()เพื่อระบุจำนวนงานที่ว่าจ้าง โดยโปรแกรมประยุกต์หากหมายเลขนี้เกิน 4,096, MPI ปรึกษาแนะนำที่ใช้ UD (ตาม [11]) และให้คำแนะนำวิธีการทำการเปลี่ยนแปลง5. การประเมินผลแสดงให้เห็นถึงประสิทธิภาพของคำแนะนำปรึกษา MPIสำหรับการเพิ่มประสิทธิภาพ เราดำเนินการทดลองกับของ TACCกลุ่มหนีและนิวส์ หนีได้ 6,400 dualsocketแซนดี้บริดจ์ E5 8 แกน-2680 คำนวณโหนแต่ละมีหน่วยความจำ 32 GB นิวส์ประกอบด้วย 132 แบบสองซ็อกเก็ต10-หลักไม้เลื้อยสะพาน E5-2680v2 คำนวณโหนแต่ละกับ 256กิกะไบต์ของหน่วยความจำ บน clusters ทั้ง โหนที่เชื่อมต่อกันโดย HCAs มือส่วนในโหมด FDR [22] และการดำเนินงานระบบที่เป็น Linux (เคอร์เนลรุ่น 2.6.32-358.el6, CentOSการแจกจ่ายเวอร์ชัน 6.4) เราใช้รุ่น MVAPICH21.9a2 และ Intel MPI รุ่น 4.1.0.030 สำหรับการประเมินนี้เนื่องจากมีไลบรารี MPI สองที่ใช้มากที่สุดหนีและนิวส์ การใช้งานกรณีศึกษาถูกคอมไพล์โดยใช้ Intel คอมไพเลอร์รุ่น 13.0.2.146ลักษณะ RC UDขยาย n2 nข้อมูลเสียหายพบใช่ใช่รับประกันส่งใช่ไม่ใช่สั่งซื้อรับประกันใช่ไม่ใช่ใช่ไม่ใช่การตรวจจับการสูญเสียข้อมูลการกู้คืนข้อผิดพลาดใช่ไม่ใช่ส่ง / RDMA เขียนใช่ไม่ใช่รับ / RDMA อ่านใช่ไม่ข้อความสูงสุดขนาด 1 GB MTUตารางที่ 4: UD และ RC มือส่วนการขนส่งลักษณะ
การแปล กรุณารอสักครู่..
ใช้เพียงสี่แปดแกนหลักแต่ละคนจะได้รับการ oversubscribed
โดยหัวข้อ OpenMP ในทางตรงกันข้ามเพราะ
การทำแผนที่หลังเป็นเพียงคนเดียวที่ใช้แกนทั้งหมดใน
โหนดและกำหนดงาน 0 ถึงหลักที่อยู่ใกล้กับที่
บัตร HCA ก็มีแนวโน้มว่าอินเทล MPI จะให้ดีที่สุด
ประสิทธิภาพ.
แม้ว่าห้องสมุด MPI ให้ พารามิเตอร์ที่สามารถ
ใช้ในการเปลี่ยนงานการทำแผนที่การแกนระบุและ
มีผลกระทบต่อการทำแผนที่ที่เหมาะสมต้องมีความรู้เกี่ยวกับ
สถาปัตยกรรมโหนดและการตั้งค่าพารามิเตอร์ที่เกี่ยวข้อง.
นี้ไม่ได้เป็นงานเล็กน้อยสำหรับผู้ใช้เฉลี่ย.
เพื่อแนะนำ tasks- ดีกว่า การแกนผูกพัน MPI ที่ปรึกษา
ตรวจพบการทำแผนที่ถูกนำมาใช้โดยการประยุกต์ใช้การป้อนข้อมูล
และกำหนดถ้ามันเป็นที่เหมาะสมที่สุด ถ้ามันไม่ได้เป็น MPI ที่ปรึกษา
ให้กับผู้ใช้รายละเอียดของการทำแผนที่ในปัจจุบัน
และแนะนำการตั้งค่าพารามิเตอร์ที่เกี่ยวข้องที่สามารถ
นำไปใช้เพื่อส่งผลกระทบต่อการทำแผนที่อื่นซึ่งอาจช่วยปรับปรุง
ประสิทธิภาพการทำงาน การทำเช่นนี้ในช่วงข้อมูล MPI ที่ปรึกษาของ
เฟสคอลเลกชัน: 1) โดยใช้ getenv ฟังก์ชั่น POSIX ()
ตัวแปร OMP_NUM_THREADS ถูกอ่านในการระบุจำนวน
ของงาน MPI และหัวข้อ OpenMP การดำเนินการในแต่ละ
โหนด 2) โดยการเรียก MPI_Get_processor_name () ที่ ชื่อโฮสต์
ที่เกี่ยวข้องกับงานแต่ละงานมีการระบุในการกำหนด
จำนวนของงาน MPI ในแต่ละโหนด (หมายเลขที่มี
ชื่อโฮสต์เดียวกัน) และ 3) การใช้ hwloc การทำแผนที่ที่ใช้
โดยโปรแกรมจะถูกระบุ.
ในระหว่างขั้นตอนการวิเคราะห์ข้อมูลนี้จะถูกนำมาใช้ เพื่อ
ตรวจสอบว่าเป็นหนึ่งในสถานการณ์ต่อไปนี้: 1)
โหนดเข้าใจหรือใช้งานเกินกำลังเช่นจำนวนของถิ่นที่อยู่
หัวข้อ OpenMP มีขนาดเล็กหรือใหญ่กว่าจำนวนของ
แกนถิ่น 2) แกนมีความเข้าใจหรือ -subscribed,
0 1
2
2 3
0 1
3
(ก) MVAPICH2
0
0 1
1 2
2 3
3
(ข) เปิด MPI
1
3
0
2
1 0
3 2
(c) Intel MPI
รูปที่ 6: การทำแผนที่เริ่มต้น 4 หลาย เกลียวงาน MPI
ภายในโหนดแบบ dual-ซ็อกเก็ตพร้อมกับสองหน่วยประมวลผล 4 หลัก
ตามแต่ละห้องสมุด MPI.
เช่นจำนวนของแกนที่ได้รับมอบหมายงาน MPI เป็นมากขึ้น
หรือน้อยกว่าจำนวนของหัวข้อ OpenMP รันบน
โหนดและ 3 ) กระบวนการรากไม่ได้ใกล้เคียงกับการ์ด HCA ได้.
หนึ่งในสถานการณ์เหล่านี้ใด ๆ ที่ก่อให้เกิด MPI ที่ปรึกษาการส่งออก
ข้อเสนอแนะ.
4.4 Infiniband ขนส่ง: RC และ UD
เพื่อให้สูง throughput InfiniBand สื่อสาร
เครือข่ายเชื่อมต่อโครงข่ายของทางเลือกของระบบ HPC หลาย
ในสี่ของการขนส่งที่กำหนดโดยสเป InfiniBand การ
เชื่อมต่อที่เชื่อถือ (RC) และดาต้าไม่น่าเชื่อถือ (UD)
[11] มีใช้กันมากที่สุดกับ RC เป็นหลัก
การขนส่ง (เริ่มต้น) มากกว่า InfiniBand สำหรับ MVAPICH2,
Intel MPI และเปิด MPI . ดังแสดงในตารางที่ 4, RC และ
UD แตกต่างกันในหลายวิธี แต่หนึ่งในสิ่งที่สำคัญที่สุด
คือในแง่ของหน่วยความจำรอยเท้าของญาติ โดยทั่วไป
การตั้งค่าห้องสมุด MPI เริ่มต้นมักจะก่อให้เกิดหน่วยความจำ RC
ต้องการต่อโหนดที่จะเติบโตเป็นเส้นตรงกับจำนวนของ
งาน MPI ที่มันสื่อสาร นี่คือแม้จะมี
ความจริงที่ว่า InfiniBand ให้กลไกในการลดการปล่อย
ของ RC [10] และ MPI การใช้งานให้วิธีการที่จะ
ทำให้การใช้งานของพวกเขา ในทางตรงกันข้ามการใช้หน่วยความจำ UD คือใกล้
คง.
ในการเลือกวิธีการขนส่ง Infiniband, MPI ปรึกษา
อนุมานว่าการประยุกต์ใช้การป้อนข้อมูลที่ใช้ RC โดยค่าเริ่มต้น.
การตรวจสอบการขนส่งมีความเหมาะสมมากขึ้นในช่วง
ขั้นตอนการเก็บรวบรวมข้อมูล MPI ที่ปรึกษาเรียก MPI_Comm_size ()
การระบุจำนวนของงานการจ้างงานโดยแอพลิเคชัน.
ถ้าจำนวนนี้เกิน 4,096, MPI ปรึกษาแนะนำว่า
UD ได้รับการว่าจ้าง (สอดคล้องกับ [11]) และให้คำแนะนำ
เกี่ยวกับวิธีการที่จะทำให้การเปลี่ยนแปลงนี้.
5 การประเมินผลงาน
เพื่อแสดงให้เห็นถึงประสิทธิภาพของคำแนะนำ MPI ที่ปรึกษา
สำหรับการเพิ่มประสิทธิภาพเราดำเนินการทดลองใน TACC ของ
แตกตื่นและไม่ฝักใฝ่ฝ่ายใดกลุ่ม แตกตื่นมี 6,400 dualsocket
8-core แซนดี้สะพานโหนด E5-2680 Compute แต่ละ
32 GB หน่วยความจำ ไม่ฝักใฝ่ฝ่ายใดมี 132 คู่ซ็อกเก็ต
10-core Ivy สะพาน E5-2680v2 Compute โหนดแต่ละคนมี 256
GB หน่วยความจำ ในกลุ่มทั้งสองโหนดที่มีการเชื่อมต่อกัน
โดย InfiniBand HCAs ในโหมด FDR [22] และการดำเนินงาน
ระบบลินุกซ์ (เคอร์เนลรุ่น 2.6.32-358.el6, CentOS
กระจายเวอร์ชัน 6.4) เราใช้ MVAPICH2 รุ่น
1.9a2 และ Intel MPI รุ่น 4.1.0.030 สำหรับการประเมินผลนี้
ตั้งแต่เหล่านี้ทั้งสองห้องสมุด MPI ใช้กันมากที่สุด
ในแตกตื่นและไม่ฝักใฝ่ฝ่ายใด การใช้งานกรณีศึกษา
ได้รวบรวมใช้รุ่น Intel คอมไพเลอร์ 13.0.2.146.
ลักษณะ RC UD
Scalability n
2 n
ข้อมูลเสียหายที่ตรวจพบใช่ใช่
รับประกันการส่งมอบใช่ไม่มี
การรับประกันการสั่งซื้อใช่ไม่มี
การตรวจสอบการสูญเสียข้อมูลใช่ไม่มี
การกู้คืนข้อผิดพลาดใช่ไม่มี
เขียนส่ง / RDMA ใช่ไม่มี
ได้รับ / RDMA อ่านใช่ไม่มี
แม็กซ์ขนาด 1 GB ข้อความ MTU
ตารางที่ 4: Infiniband RC และ UD ลักษณะการขนส่ง
การแปล กรุณารอสักครู่..