Rescale에서 PETSc 알고리즘의 확장성 테스트

애완 동물
PETSc(Portable Extensible Toolkit for Scientific Computation)는 편미분 방정식으로 모델링된 과학 응용 프로그램의 확장 가능한(병렬) 솔루션을 위해 Argonne National Laboratory에서 개발한 데이터 구조 및 루틴 모음입니다. PETSc는 편미분 방정식 및 희소 행렬 계산을 위해 세계에서 가장 널리 사용되는 병렬 수치 소프트웨어 라이브러리 중 하나입니다.
전통적으로 과학자나 알고리즘 개발자가 PETSc에서 새로운 병렬 알고리즘을 완료하면 확장성과 속도 향상을 테스트하기 위해 멀티 코어 컴퓨터 클러스터에서 이를 실행해야 합니다. 클러스터는 일반적으로 HPC 리소스를 유지 관리하기 위해 상당한 관리 작업을 수행하는 대학, 정부 또는 기업의 공유 컴퓨팅 리소스입니다. 또한 실행을 생성하려면 과학자나 개발자가 환경을 준비해야 하는데 이는 어렵고 시간이 많이 소요될 수 있으며 실행 중에 예상치 못한 일이 발생하면 오류가 발생하고 출력 데이터가 생성되지 않을 수도 있습니다.
Rescale을 사용하면 PETSc 알고리즘의 확장성을 테스트하는 것이 훨씬 간단해집니다. 과학자나 개발자는 하드웨어 유형과 코어 수를 지정한 다음 인터넷 연결과 웹 브라우저를 사용하여 작업을 실행할 수 있습니다.
테스트할 알고리즘
제가 테스트할 알고리즘은 PETSc 패키지의 공식 튜토리얼에서 가져온 것입니다. 이 코드는 KSP와 병렬로 선형 시스템을 해결합니다. KSP는 PETSc 패키지에서 가장 일반적으로 사용되는 작업 중 하나이기 때문에 선택했습니다. 추가 분석을 위해 모든 프로세스에 대한 각 PETSc 함수 호출 작업의 타임스탬프를 로그 파일에 출력하도록 약간 변경했습니다.
여기는 소스 코드 내 수정 후. 나는 또한 메이크 파일 그것을 컴파일하기 위해.
KSP가 하는 일은 n개의 요소를 갖는 벡터 X에 대한 선형 방정식 AX=B를 푸는 것입니다. 여기서 A는 mxn 크기의 행렬이고 B는 m개의 요소를 갖는 벡터입니다.
Rescale에서 알고리즘 실행
Rescale에 가입한 후 PETSc 알고리즘을 컴파일하고 실행할 수 있는 새 작업을 생성할 수 있습니다.
설정 페이지의 분석 코드 섹션에서 PETSc를 선택합니다. 하드웨어 설정에서 코어 유형을 8코어 HPC+로 선택합니다. 아래 이미지는 화면이 어떤 모습이어야 하는지 보여줍니다.

워크플로 페이지에서 소스 코드와 makefile을 업로드합니다. 또는 대신 컴파일된 실행 바이너리 파일을 업로드하도록 선택할 수도 있습니다. 분석 명령에 실행하려는 명령을 입력합니다.

만들다; mpirun -n 8 ./ksp_test -n 1024 -m 1024 -logfile ksp_test_1024_1024_8.log

워크플로 페이지는 다음과 같아야 합니다.
2014 03-08-8.33.24 오후 스크린 샷
Rescale 작업을 실행하려면 오른쪽 하단에 있는 제출을 클릭하세요. 작업 제출 후 상태 페이지를 통해 작업을 실시간으로 모니터링할 수 있습니다.
2014 03-08-8.42.34 오후 스크린 샷
작업이 완료되면 결과 페이지에서 출력 파일과 로그 파일을 보고 다운로드할 수 있습니다.
2014 03-08-8.58.41 오후 스크린 샷
KSP 테스트 결과
확장성 테스트에서는 Rescale의 HPC+ 코어 유형으로 1, 2, 4, 8, 16, 32 코어를 선택했습니다. 행렬 A의 크기는 1024 x 1024였습니다. 평균 프로세스 실행 시간, 반복 횟수, 반복당 시간에 대한 결과는 다음과 같습니다.
chart1
평균 프로세스 실행 시간을 보면 코어 수가 증가함에 따라 시간이 감소하여(최대 16개 코어), 예기치 않게 32개 코어로 증가한 것을 확인할 수 있습니다. 이는 반복 횟수를 고려해야 했기 때문에 발생했습니다.
알고리즘이 시작될 때마다 행렬과 오른쪽 벡터가 무작위로 생성되었습니다. 이는 "오류의 표준"으로 수렴하는 데 필요한 반복이 매번 다르다는 것을 의미했습니다. 다음 차트에서는 테스트의 각 실행에 대한 반복 횟수를 볼 수 있습니다.
chart2
마지막 차트는 초당 반복 횟수를 보여주며, 이는 반복 횟수/평균 프로세스 실행 시간으로 계산됩니다. 차트에서 병렬 KSP가 코어 수 증가에 따라 잘 확장되는 것을 볼 수 있습니다.
chart3
Rescale 계정이 있는 경우 다음을 클릭하세요. 여기를 클릭하십시오. 제가 언급한 KSP 테스트 작업을 복제하고 다양한 하드웨어 설정, 코어 수 및 매개변수를 사용하여 시뮬레이션을 실행해 보세요. 클릭할 수도 있습니다. 여기를 클릭하십시오. "PETSc helloworld" 샘플 작업을 복제합니다. 계정이 없으시면 클릭해주세요 여기를 클릭하십시오. 가입하십시오.

비슷한 게시물