MPI 타이밍 문제를 디버깅하는 방법

MPI 타이밍 문제를 디버깅하는 방법

달리는 동안그로마크서로 다른 설정(Infiniband에 연결된 노드 내 2, 3, 4개 노드)에서 벤치마킹한 결과 심각한 성능 저하가 나타났습니다. 본 연구의 목적을 위해 MPI_Alltoall()모든 노드 간에 다양한 크기(4바이트 ~ 2MB)의 패킷을 전송하는 테스트 프로그램을 만들었습니다. 테스트 프로그램의 내부 타이밍과 I_MPI_STATSIntelMPI 시설에서 수집된 통계는 모두 동일한 패턴을 보여줍니다. 즉, 적은 양의 데이터의 경우 결과 대역폭이 허용 가능한 반면, 더 큰 페이로드의 경우 동작이 불규칙해집니다. 일부 전송에는 매우 오랜 시간이 필요합니다(약 2.15초), 평균 성능이 저하됩니다. 이러한 매우 긴 지연은 무작위로 발생하는 것으로 나타나므로 존재하지 않거나 샘플 크기가 작을 수도 있습니다(예: 페이로드 크기당 전송 100개). 다음은 4개의 노드, 각 크기의 1000개 전송을 사용하여 얻은 일부 샘플 데이터입니다.

#           Message size    Call count  Min time    Avr time    Max time    Total time

Alltoall
1           2097152         1000        5649.09     13420.98    2152225.97  13420980.69
2           1048576         1000        2874.85     13000.87    2151684.05  13000867.13
3           524288          1000        1404.05     8484.15     2149509.91  8484153.99
4           262144          1000        719.07      5308.87     2148617.98  5308866.74
5           131072          1000        364.78      9223.77     2148303.99  9223767.04
6           65536           1000        206.95      5124.41     2147943.97  5124409.44
7           32768           1000        120.88      12562.09    2147678.85  12562089.68
8           16384           1000        36.00       57.03       93.94       57034.25
9           8192            1000        22.89       34.80       103.00      34803.87

관리되지 않는 스위치를 통해 QDR Infiniband 및 IntelMPI 4.0.3을 사용하고 있습니다. ib_send_bw를 사용하여 링 전송(node1 -> node2 -> node3 -> node4 -> node1)을 설정하여 MPI를 확인하려고 시도했지만 문제가 되는 동작은 관찰되지 않았습니다.

#bytes     #iterations    BW peak[MB/sec]    BW average[MB/sec]
16384      10000           1202.93            1202.91
32768      10000           1408.94            1367.46
65536      10000           1196.71            1195.85
131072     10000           1195.68            1180.71
262144     10000           1197.27            1167.45
524288     10000           1162.94            1154.15
1048576    10000           1184.48            1151.31
2097152    10000           1163.39            1143.60
4194304    10000           1157.77            1141.84
8388608    10000           1141.23            1138.36

내 질문: 이 문제를 더 깊이 파고들어 문제의 근본 원인이 무엇인지 알아낼 수 있는 방법이 있습니까? IntelMPI 참조 매뉴얼을 살펴봤지만 I_MPI_STATS.

관련 정보