초록
한정된 자원을 여러 사용자에게 공유해야하는 슈퍼컴퓨터와 같은 시스템은 응용프로그램의 실행을 최적화하는 방안이 필요하다. 이를 위해 시스템 관리자가 수행할 응용프로그램에 대한 사전 정보를 파악하는 것이 유용하다. 대부분의 고성능 컴퓨팅 시스템 운영에 있어 작업을 실행할 때 사용자로부터 실행 기간, 자원 요구사항들에 대한 정보를 제공 받거나 시스템 사용 통계 값을 사용하여 필요한 정보를 생성하는 등의 프로파일링 기술을 바탕으로 시스템 활용률을 높이는데 활용하고 있다. 본 논문의 선행연구에서는 하드웨어 성능 카운터를 이용하여 소스코드에 대한 별도의 이해 없이 응용프로그램 특성분석을 실행하고, 이 결과를 바탕으로 작업 스케줄링 알고리즘을 최적화하는 기술을 개발한 바 있다. 본 논문에서는 슈퍼컴퓨터 최적 실행지원을 위한 프로파일링 테스트베드 클러스터를 구축하고 구축한 클러스터 환경에서 하드웨어 성능 카운터를 기반으로 응용프로그램의 특성을 분석하는 프로파일링 기법의 확장성을 실험하였다. 이를 통해 응용프로그램의 문제크기를 축소하거나 프로파일링에 사용되는 노드수를 최소화하여도 개발한 하드웨어 성능 카운터 기반의 프로파일링 기법이 확장성 있게 동작하여 실제 스케줄링 최적화시에 활용될 수 있음을 보이고자 한다. 실험을 통해 프로파일링에 사용되는 노드의 수를 1/4로 줄여도 전체 노드를 사용한 프로파일링 대비 응용프로그램의 실행 시간이 1.08% 증가할 뿐 스케줄링 최적화 성능은 순차실행 대비 최대 37% 향상되었다. 또한 응용프로그램의 문제크기를 축소하여 프로파일링한 결과 프로파일링 데이터 수집 단계의 시간적 비용을 1/4배 이상 낮추면서 최대 35% 성능 향상 효과를 얻었다.
Supercomputer that shares limited resources to multiple users needs a way to optimize the execution of application. For this, it is useful for system administrators to get prior information and hint about the applications to be executed. In most high-performance computing system operations, system administrators strive to increase system productivity by receiving information about execution duration and resource requirements from users when executing tasks. They are also using profiling techniques that generates the necessary information using statistics such as system usage to increase system utilization. In a previous study, we have proposed a scheduling optimization technique by developing a hardware performance counter-based profiling technique that enables characterization of applications without further understanding of the source code. In this paper, we constructed a profiling testbed cluster to support optimal execution of the supercomputer and experimented with the scalability of the profiling method to analyze application characteristics in the built cluster environment. Also, we experimented that the profiling method can be utilized in actual scheduling optimization with scalability even if the application class is reduced or the number of nodes for profiling is minimized. Even though the number of nodes used for profiling was reduced to 1/4, the execution time of the application increased by 1.08% compared to profiling using all nodes, and the scheduling optimization performance improved by up to 37% compared to sequential execution. In addition, profiling by reducing the size of the problem resulted in a quarter of the cost of collecting profiling data and a performance improvement of up to 35%.