KR102471867B1 - Auto-scaling benchmark method and apparatus thereof - Google Patents

Auto-scaling benchmark method and apparatus thereof Download PDF

Info

Publication number
KR102471867B1
KR102471867B1 KR1020210013918A KR20210013918A KR102471867B1 KR 102471867 B1 KR102471867 B1 KR 102471867B1 KR 1020210013918 A KR1020210013918 A KR 1020210013918A KR 20210013918 A KR20210013918 A KR 20210013918A KR 102471867 B1 KR102471867 B1 KR 102471867B1
Authority
KR
South Korea
Prior art keywords
benchmark
computing device
result information
parameter
auto scaling
Prior art date
Application number
KR1020210013918A
Other languages
Korean (ko)
Other versions
KR20220110918A (en
Inventor
노승우
박근철
최지은
박찬열
Original Assignee
한국과학기술정보연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국과학기술정보연구원 filed Critical 한국과학기술정보연구원
Priority to KR1020210013918A priority Critical patent/KR102471867B1/en
Publication of KR20220110918A publication Critical patent/KR20220110918A/en
Application granted granted Critical
Publication of KR102471867B1 publication Critical patent/KR102471867B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3428Benchmarking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3452Performance evaluation by statistical analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 고성능 컴퓨팅 장치에 대한 벤치마크 방법 및 그 장치에 관한 것이다. 본 발명의 일 실시예에 따른 오토 스케일링 방법은, 컴퓨팅 장치에 의해 수행되는 방법에 있어서, 입력 정보에 포함된 복수의 파라미터 중 제1 파라미터에 대응되는 제1 벤치마크 툴을 이용하여, 상기 컴퓨팅 장치에 대한 제1 벤치마크를 수행하는 단계, 상기 제1 파라미터와 상이한 제2 파라미터에 대응되는 제2 벤치마크 툴을 이용하여, 상기 컴퓨팅 장치에 대한 제2 벤치마크를 수행하는 단계 및 상기 제1 벤치마크 및 상기 제2 벤치마크의 결과에 기초하여, 벤치마크 결과 정보를 제공하는 단계를 포함할 수 있다.The present invention relates to a benchmark method and apparatus for a high performance computing device. An auto scaling method according to an embodiment of the present invention is a method performed by a computing device, using a first benchmark tool corresponding to a first parameter among a plurality of parameters included in input information, the computing device Performing a first benchmark for the computing device using a second benchmark tool corresponding to a second parameter different from the first parameter, and performing a second benchmark for the computing device and the first benchmark. The method may include providing benchmark result information based on the mark and the result of the second benchmark.

Figure R1020210013918
Figure R1020210013918

Description

오토 스케일링 벤치마크 방법 및 그 장치{AUTO-SCALING BENCHMARK METHOD AND APPARATUS THEREOF}Auto scaling benchmark method and device thereof {AUTO-SCALING BENCHMARK METHOD AND APPARATUS THEREOF}

본 발명은 고성능 컴퓨팅 장치에 대한 벤치마크 방법 및 그 장치에 관한 것이다. 보다 구체적으로는, 다양한 파라미터를 지정된 범위 내에서 변경하며 벤치마크를 수행하는 방법 및 그 장치에 관한 것이다.The present invention relates to a benchmark method and apparatus for a high performance computing device. More specifically, it relates to a method and apparatus for performing a benchmark while changing various parameters within a specified range.

컴퓨팅 장치에 입력된 수많은 데이터를 기초로 사용자가 원하는 결과를 빠르게 도출하기 위해서는, 그에 상응하는 컴퓨팅 장치의 연산 속도가 필수적으로 뒷받침되어야 한다. 특히, 인공 지능 분야의 기술 발전의 요구에 대응하여, 연산 속도를 증가시키기 위한 고성능 컴퓨팅 장치에 대한 기술 발전의 요구도 증가하고 있다.In order to rapidly derive a result desired by a user based on a large amount of data input into the computing device, the computing speed of the computing device corresponding to the result must necessarily be supported. In particular, in response to the demand for technological advancement in the field of artificial intelligence, the demand for technological advancement for high-performance computing devices for increasing computation speed is also increasing.

이러한, 고성능 컴퓨팅 장치(High-Performance Computing, HPC)의 성능을 평가하는 기술 분야 역시, 고성능 컴퓨팅 장치에 대한 기술 발전의 요구에 대응하여, 그 중요도가 증가하고 있다.The technical field of evaluating the performance of such high-performance computing devices (HPC) is also increasing in importance in response to the demand for technological development of high-performance computing devices.

종래의 고성능 컴퓨팅 장치의 성능을 평가하는 기술은, 다양한 파라미터에 대한 입력을 지원하지 않아, 사용자가 성능 평가 시 개별 파라미터마다 파라미터의 테스트 범위를 일일이 지정해야 하는 문제가 있었다. 성능 평가 시마다 파라미터의 테스트 범위를 일일이 지정해야 하는 이러한 문제는, 컴퓨팅 장치에 대한 평가를 연속적으로 할 수 없다는 문제를 수반한다. 따라서, 다양한 파라미터에 대한 입력을 지원하는 고성능 컴퓨팅 장치의 성능을 평가하는 기술이 요구된다.Conventional technologies for evaluating the performance of high-performance computing devices do not support inputs for various parameters, and thus a user has to specify test ranges of parameters for each individual parameter during performance evaluation. This problem of specifying test ranges of parameters one by one at each performance evaluation is accompanied by a problem that it is not possible to continuously evaluate the computing device. Therefore, a technique for evaluating the performance of a high performance computing device supporting inputs for various parameters is required.

또한, 종래의 고성능 컴퓨팅 장치의 성능을 평가하는 기술은, 하드웨어 성능 카운터 기반의 프로파일링 데이터를 제공하는 기능을 지원하지 않았다. 따라서, 프로파일링 데이터를 원하는 사용자들은, 하드웨어 성능 카운터 기반의 데이터를 추출 및 가공하는 등의 별도의 노력이 요구되었다. 이에, 하드웨어 성능 카운터 기반의 프로파일링 데이터를 제공하는 기술 역시 요구된다.In addition, conventional techniques for evaluating the performance of high-performance computing devices do not support a function of providing profiling data based on hardware performance counters. Accordingly, users desiring profiling data required additional efforts such as extracting and processing hardware performance counter-based data. Accordingly, a technique for providing hardware performance counter-based profiling data is also required.

본 발명의 몇몇 실시예를 통해 해결하고자 하는 기술적 과제는, 고성능 컴퓨팅 장치의 성능을 평가하는 장치 및 그 장치에서 수행되는 방법을 제공하는 것이다.A technical problem to be solved through some embodiments of the present invention is to provide a device for evaluating the performance of a high-performance computing device and a method performed in the device.

본 발명의 몇몇 실시예를 통해 해결하고자 하는 다른 기술적 과제는, 다양한 파라미터에 대한 입력을 지원하는 벤치마크 장치 및 그 장치에서 수행되는 방법을 제공하는 것이다.Another technical problem to be solved through some embodiments of the present invention is to provide a benchmark device that supports input for various parameters and a method performed in the device.

본 발명의 몇몇 실시예를 통해 해결하고자 하는 또 다른 기술적 과제는, 하드웨어 성능 카운터 기반의 프로파일링 데이터를 제공하는 장치 및 그 장치에서 수행되는 방법을 제공하는 것이다.Another technical problem to be solved through some embodiments of the present invention is to provide a device for providing hardware performance counter-based profiling data and a method performed by the device.

본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명의 기술 분야에서의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.The technical problems of the present invention are not limited to the technical problems mentioned above, and other technical problems not mentioned will be clearly understood by those skilled in the art from the following description.

상기 기술적 과제를 해결하기 위한, 본 발명의 일 실시예에 따른 오토 스케일링 벤치마크 방법은, 컴퓨팅 장치에 의해 수행되는 방법에 있어서, 입력 정보에 포함된 복수의 파라미터 중 제1 파라미터에 대응되는 제1 벤치마크 툴을 이용하여, 상기 컴퓨팅 장치에 대한 제1 벤치마크를 수행하는 단계, 상기 제1 파라미터와 상이한 제2 파라미터에 대응되는 제2 벤치마크 툴을 이용하여, 상기 컴퓨팅 장치에 대한 제2 벤치마크를 수행하는 단계 및 상기 제1 벤치마크 및 상기 제2 벤치마크의 결과에 기초하여, 벤치마크 결과 정보를 제공하는 단계를 포함할 수 있다.In order to solve the above technical problem, an auto scaling benchmark method according to an embodiment of the present invention is a method performed by a computing device, wherein a first parameter corresponding to a first parameter among a plurality of parameters included in input information Performing a first benchmark on the computing device using a benchmark tool, and performing a second benchmark on the computing device using a second benchmark tool corresponding to a second parameter different from the first parameter. The method may include performing a mark and providing benchmark result information based on the results of the first benchmark and the second benchmark.

일 실시예에서, 상기 입력 정보에 포함된 복수의 파라미터를 초기화하는 단계를 더 포함할 수 있다.In an embodiment, the method may further include initializing a plurality of parameters included in the input information.

일 실시예에서, 상기 컴퓨팅 장치는 복수의 컴퓨팅 노드를 포함할 수 있다. 여기서, 상기 입력 정보는, 벤치마크 대상 컴퓨팅 노드를 지시하는 실행 지시자를 포함하고, 상기 제1 벤치마크 및 상기 제2 벤치마크를 수행하는 단계는, 상기 실행 지시자가 둘 이상의 컴퓨팅 노드를 지시하면, MPI(Message Passing Interface) 명령어에 기초하여 상기 벤치마크 대상 컴퓨팅 노드에 대한 상기 제1 벤치마크 및 상기 제2 벤치마크를 수행하는 단계를 포함할 수 있다.In one embodiment, the computing device may include a plurality of computing nodes. Here, the input information includes an execution indicator indicating a computing node to be benchmarked, and the step of performing the first benchmark and the second benchmark, if the execution indicator indicates two or more computing nodes, The method may include performing the first benchmark and the second benchmark for the benchmark target computing node based on a Message Passing Interface (MPI) command.

일 실시예에서, 상기 제1 벤치마크를 수행하는 단계는, 상기 제1 파라미터를 미리 지정된 범위 내에서 변경하며 상기 제1 벤치마크를 수행하는 단계를 포함하고, 상기 제2 벤치마크를 수행하는 단계는, 상기 제2 파라미터를 미리 지정된 범위 내에서 변경하며 상기 제2 벤치마크를 수행하는 단계를 포함할 수 있다.In one embodiment, the performing of the first benchmark includes performing the first benchmark while changing the first parameter within a predetermined range, and performing the second benchmark. may include changing the second parameter within a predetermined range and performing the second benchmark.

일 실시예에서, 상기 복수의 파라미터 각각에 대해 파라미터 순서에 따라 벤치마크를 수행하는 단계를 더 포함할 수 있다. 여기서, 상기 벤치마크를 수행하는 단계는, 상기 복수의 파라미터 각각에 대해 미리 지정된 횟수만큼 반복 수행하는 단계를 포함하고, 상기 벤치마크 결과 정보를 제공하는 단계는, 상기 반복 수행하는 단계에 따른 벤치마크 결과의 평균값에 기초하여, 상기 벤치마크 결과 정보를 제공하는 단계를 포함할 수 있다.In an embodiment, the method may further include performing a benchmark according to a parameter order for each of the plurality of parameters. Here, the performing of the benchmark includes repeatedly performing a predetermined number of times for each of the plurality of parameters, and the providing of the benchmark result information includes benchmarking according to the iteratively performing the benchmark. Based on the average value of the result, providing the benchmark result information may be included.

일 실시예에서, 상기 입력 정보에 하드웨어 성능 카운터 이벤트가 포함된 경우, 상기 컴퓨팅 장치에 대해 생성된 프로파일링 결과 정보를 제공하는 단계를 더 포함할 수 있다. 여기서, 상기 프로파일링 결과 정보를 제공하는 단계는, Perf 명령어에 기초하여 상기 컴퓨팅 장치에 대해 생성된 프로파일링 결과 정보를 제공하는 단계를 포함할 수 있다. 또한, 상기 컴퓨팅 장치는 복수의 컴퓨팅 노드를 포함하고, 상기 프로파일링 결과 정보를 제공하는 단계는, 컴퓨팅 노드 별로 프로파일링 결과 정보를 생성하는 단계 및 상기 컴퓨팅 노드 별로 생성된 프로파일링 결과 정보를 가공하여, 가공된 프로파일링 결과 정보를 제공하는 단계를 포함할 수 있다. 또한, 상기 프로파일링 결과 정보를 제공하는 단계는, 상기 컴퓨팅 장치에 대해 프로파일링 결과 정보를 미리 지정된 횟수만큼 반복하여 생성하는 단계를 포함하고, 프로파일링 결과 정보의 평균값을 제공하는 단계를 더 포함할 수 있다.In an embodiment, the method may further include providing profiling result information generated for the computing device when the input information includes a hardware performance counter event. Here, the providing of the profiling result information may include providing profiling result information generated for the computing device based on a Perf command. In addition, the computing device includes a plurality of computing nodes, and the providing of the profiling result information includes generating profiling result information for each computing node and processing the profiling result information generated for each computing node. , providing processed profiling result information. The providing of the profiling result information may include repeatedly generating the profiling result information for the computing device a predetermined number of times, and may further include providing an average value of the profiling result information. can

본 발명의 다른 실시예에 따른 컴퓨터 판독 가능한 기록 매체는, 프로세서에 의해 실행 가능한 컴퓨터 프로그램 명령어들을 포함하는, 컴퓨팅 장치를 벤치마크하기 위한 컴퓨터 프로그램으로서, 상기 컴퓨터 프로그램 명령어들이 컴퓨팅 장치의 프로세서에 의해 실행되는 경우에, 입력 정보에 포함된 복수의 파라미터 중 제1 파라미터에 대응되는 제1 벤치마크 툴을 이용하여, 상기 컴퓨팅 장치에 대한 제1 벤치마크를 수행하는 단계, 상기 제1 파라미터와 상이한 제2 파라미터에 대응되는 제2 벤치마크 툴을 이용하여, 상기 컴퓨팅 장치에 대한 제2 벤치마크를 수행하는 단계 및 상기 제1 벤치마크 및 상기 제2 벤치마크의 결과에 기초하여, 벤치마크 결과 정보를 제공하는 단계를 포함하는, 동작들을 수행하는 컴퓨터 프로그램이 기록될 수 있다.A computer readable recording medium according to another embodiment of the present invention is a computer program for benchmarking a computing device, including computer program instructions executable by a processor, wherein the computer program instructions are executed by a processor of the computing device. , performing a first benchmark on the computing device using a first benchmark tool corresponding to a first parameter among a plurality of parameters included in the input information, and performing a second benchmark different from the first parameter. Performing a second benchmark on the computing device using a second benchmark tool corresponding to the parameter, and providing benchmark result information based on the results of the first benchmark and the second benchmark. A computer program performing operations, including the step of doing, may be recorded.

본 발명의 또 다른 실시예에 따른 오토 스케일링 벤치마크 장치는, 프로세서, 네트워크 인터페이스, 메모리 및 상기 메모리에 로드(load)되고, 상기 프로세서에 의해 실행되는 컴퓨터 프로그램을 포함하되, 상기 컴퓨터 프로그램은, 입력 정보에 포함된 복수의 파라미터 중 제1 파라미터에 대응되는 제1 벤치마크 툴을 이용하여, 컴퓨팅 장치에 대한 제1 벤치마크를 수행하는 인스트럭션(instruction), 상기 제1 파라미터와 상이한 제2 파라미터에 대응되는 제2 벤치마크 툴을 이용하여, 상기 컴퓨팅 장치에 대한 제2 벤치마크를 수행하는 인스트럭션 및 상기 제1 벤치마크 및 상기 제2 벤치마크의 결과에 기초하여, 벤치마크 결과 정보를 제공하는 인스트럭션을 포함할 수 있다. 여기서, 상기 입력 정보에 하드웨어 성능 카운터 이벤트가 포함된 경우, 상기 컴퓨팅 장치에 대해 생성된 프로파일링 결과 정보를 제공하는 인스트럭션을 더 포함할 수 있다.An auto scaling benchmark apparatus according to another embodiment of the present invention includes a processor, a network interface, a memory, and a computer program loaded into the memory and executed by the processor, wherein the computer program includes input An instruction for performing a first benchmark on the computing device using a first benchmark tool corresponding to a first parameter among a plurality of parameters included in the information, corresponding to a second parameter different from the first parameter An instruction for performing a second benchmark for the computing device using a second benchmark tool and an instruction for providing benchmark result information based on the results of the first benchmark and the second benchmark can include Here, when a hardware performance counter event is included in the input information, the method may further include an instruction for providing profiling result information generated with respect to the computing device.

도 1은 본 발명의 일 실시예에 따른 오토 스케일링 벤치마크 장치가 적용될 수 있는 예시적인 환경을 도시한다.
도 2는 도 1에 도시된 오토 스케일링 벤치마크 장치를 보다 구체적으로 설명하기 위한 예시적인 블록도이다.
도 3은 본 발명의 다른 실시예에 따른 오토 스케일링 벤치마크 방법을 나타내는 예시적인 순서도이다.
도 4는 도 3을 참조하여 설명된 벤치마크 툴 설치 동작을 나타내는 예시적인 순서도이다.
도 5는 도 3을 참조하여 설명된 벤치마크 툴을 이용하여 컴퓨팅 장치에 대한 벤치마크를 수행하는 동작을 나타내는 예시적인 순서도이다.
도 6은 본 발명의 또 다른 실시예에 따른 오토 스케일링 벤치마크 방법을 나타내는 예시적인 순서도이다.
도 7은 본 발명의 몇몇 실시예에서 참조될 수 있는 입력 정보를 나타내는 예시적인 도면이다.
도 8은 본 발명의 몇몇 실시예에서 참조될 수 있는 입력 정보에 기초하여 생성된 스크립트 및 실행 명령어를 나타내는 예시적인 도면이다.
도 9는 본 발명의 일 실시예에 따른 오토 스케일링 벤치마크 장치를 구현할 수 있는 예시적인 하드웨어 구성도이다.
1 illustrates an exemplary environment to which an auto scaling benchmark apparatus according to an embodiment of the present invention can be applied.
FIG. 2 is an exemplary block diagram illustrating the auto scaling benchmark apparatus shown in FIG. 1 in more detail.
3 is an exemplary flowchart illustrating an auto scaling benchmark method according to another embodiment of the present invention.
FIG. 4 is an exemplary flowchart illustrating an operation of installing the benchmark tool described with reference to FIG. 3 .
FIG. 5 is an exemplary flowchart illustrating operations of performing a benchmark on a computing device using the benchmark tool described with reference to FIG. 3 .
6 is an exemplary flowchart illustrating an auto scaling benchmark method according to another embodiment of the present invention.
7 is an exemplary diagram illustrating input information that may be referred to in some embodiments of the present invention.
8 is an exemplary diagram illustrating scripts and execution commands generated based on input information that may be referred to in some embodiments of the present invention.
9 is an exemplary hardware configuration diagram capable of implementing an auto scaling benchmark apparatus according to an embodiment of the present invention.

이하, 첨부된 도면을 참조하여 본 발명의 실시예들을 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명의 기술적 사상은 이하의 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 이하의 실시예들은 본 발명의 기술적 사상을 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명의 기술적 사상은 청구항의 범주에 의해 정의될 뿐이다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. Advantages and features of the present invention, and methods of achieving them, will become clear with reference to the detailed description of the following embodiments taken in conjunction with the accompanying drawings. However, the technical idea of the present invention is not limited to the following embodiments and can be implemented in various different forms, only the following embodiments complete the technical idea of the present invention, and in the technical field to which the present invention belongs It is provided to fully inform those skilled in the art of the scope of the present invention, and the technical spirit of the present invention is only defined by the scope of the claims.

각 도면의 구성 요소들에 참조부호를 부가함에 있어서, 동일한 구성 요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.In adding reference numerals to components of each drawing, it should be noted that the same components have the same numerals as much as possible even if they are displayed on different drawings. In addition, in describing the present invention, if it is determined that a detailed description of a related known configuration or function may obscure the gist of the present invention, the detailed description will be omitted.

다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.Unless otherwise defined, all terms (including technical and scientific terms) used in this specification may be used in a meaning commonly understood by those of ordinary skill in the art to which the present invention belongs. In addition, terms defined in commonly used dictionaries are not interpreted ideally or excessively unless explicitly specifically defined. Terminology used herein is for describing the embodiments and is not intended to limit the present invention. In this specification, singular forms also include plural forms unless specifically stated otherwise in a phrase.

또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제1, 제2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성 요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성 요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.In addition, in describing the components of the present invention, terms such as first, second, A, B, (a), and (b) may be used. These terms are only used to distinguish the component from other components, and the nature, order, or order of the corresponding component is not limited by the term. When an element is described as being “connected,” “coupled to,” or “connected” to another element, that element is or may be directly connected to the other element, but there is another element between the elements. It will be understood that elements may be “connected”, “coupled” or “connected”.

명세서에서 사용되는 "포함한다 (comprises)" 및/또는 "포함하는 (comprising)"은 언급된 구성 요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성 요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.As used herein, "comprises" and/or "comprising" means that a stated component, step, operation, and/or element is the presence of one or more other components, steps, operations, and/or elements. or do not rule out additions.

이하, 본 발명의 다양한 실시예들에 대한 명확한 이해를 위해, 본 명세서에 기재된 몇몇 용어를 정의하기로 한다. Hereinafter, for a clear understanding of various embodiments of the present invention, some terms described in this specification will be defined.

벤치마크란 최적화된 시스템 환경을 구축하기 위해, 하드웨어 또는 소프트웨어의 성능을 비교 평가하여 수치화 하는 것을 의미한다. 또한, 프로파일이란, 프로그램의 시간 복잡도, 메모리, 특정 명령어의 이용, 함수 호출 주기 및 함수 호출 빈도 등을 측정하는 동적 프로그램 분석을 의미한다. 본 명세서에서 벤치마크 툴에 의해 평가된 컴퓨팅 장치의 성능 평과 결과 값은 벤치마크 결과 정보라 하기로 한다. 또한, 하드웨어 성능 카운터 기반의 프로파일 결과 값은 프로파일링 결과 정보라 하기로 한다.Benchmark refers to comparing and evaluating the performance of hardware or software to quantify them in order to build an optimized system environment. In addition, the profile refers to dynamic program analysis that measures time complexity, memory, use of a specific instruction, function call cycle, function call frequency, and the like of a program. In this specification, the performance evaluation result value of the computing device evaluated by the benchmark tool will be referred to as benchmark result information. In addition, the profiling result value based on the hardware performance counter will be referred to as profiling result information.

또한, 오토 스케일링 벤치마크란, 다양한 파라미터 각각을 지정된 범위내에서 변경하며 벤치마크를 수행하는 것을 의미한다.In addition, the auto scaling benchmark means that benchmarking is performed while changing each of various parameters within a specified range.

이하, 본 발명의 다양한 실시예들에 대하여 첨부된 도면에 따라 상세하게 설명한다.Hereinafter, various embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 일 실시예에 따른 오토 스케일링 벤치마크 장치(100)가 적용될 수 있는 예시적인 환경을 도시한다. 도 1은 본 발명의 목적을 달성하기 위한 바람직한 실시예를 도시하고 있을 뿐이며, 필요에 따라 일부 구성 요소가 추가되거나 삭제될 수 있다. 또한, 도 1에 도시된 예시적인 환경의 구성 요소들은 기능적으로 구분되는 기능 요소들을 나타낸 것으로서, 복수의 구성 요소가 실제 물리적 환경에서는 서로 통합되는 형태로 구현될 수도 있음에 유의해야 한다. 예를 들어, 오토 스케일링 벤치마크 장치(100)와 컴퓨팅 노드(400)는 동일한 컴퓨팅 장치 내에 서로 다른 로직(logic)의 형태로 구현될 수도 있다. 이하, 도 1에 도시된 각 구성 요소에 대해 보다 구체적으로 설명하기로 한다.1 illustrates an exemplary environment to which the auto scaling benchmark apparatus 100 according to an embodiment of the present invention can be applied. Figure 1 only shows a preferred embodiment for achieving the object of the present invention, some components may be added or deleted as needed. In addition, it should be noted that components of the exemplary environment shown in FIG. 1 represent functionally differentiated functional elements, and a plurality of components may be implemented in a form integrated with each other in an actual physical environment. For example, the auto scaling benchmark device 100 and the computing node 400 may be implemented in the form of different logics in the same computing device. Hereinafter, each component shown in FIG. 1 will be described in more detail.

오토 스케일링 벤치마크 장치(100)는 컴퓨팅 장치에 대한 벤치마크를 수행할 수 있다. 보다 구체적으로, 오토 스케일링 벤치마크 장치(100)는 컴퓨팅 장치에 포함된 복수의 컴퓨팅 노드 중 적어도 하나에 대한 벤치마크를 수행할 수도 있다. 또한, 오토 스케일링 벤치마크 장치(100)는 컴퓨팅 장치의 하드웨어 성능 카운터에 기초하여 프로파일링 결과 정보를 생성할 수 있다. 보다 구체적으로, 오토 스케일링 벤치마크 장치(100)는 컴퓨팅 장치에 포함된 복수의 컴퓨팅 노드 중 적어도 하나에 대한 하드웨어 성능 카운터에 기초하여 프로파일링 결과 정보를 생성할 수도 있다. 중복된 설명의 배제를 위해, 오토 스케일링 벤치마크 장치(100)가 컴퓨팅 장치에 대한 벤치마크를 수행하거나 컴퓨팅 장치에 대한 하드웨어 성능 카원터 기반의 프로파일을 수행하는 구체적인 방법들에 관해서는 추후 명세서의 기재를 통해 구체화하기로 한다.The auto scaling benchmark device 100 may perform a benchmark for a computing device. More specifically, the auto scaling benchmark device 100 may perform a benchmark for at least one of a plurality of computing nodes included in the computing device. Also, the auto scaling benchmark device 100 may generate profiling result information based on a hardware performance counter of a computing device. More specifically, the auto scaling benchmark apparatus 100 may generate profiling result information based on a hardware performance counter for at least one of a plurality of computing nodes included in the computing device. In order to exclude redundant description, specific methods for the auto scaling benchmark device 100 to perform a benchmark on a computing device or a profile based on a hardware performance calculator on a computing device will be described later in the specification. to materialize through

다음으로, 데이터 저장소(200)는 오토 스케일링 벤치마크 장치(100)에 입력되는 입력 정보를 저장할 수 있다. 또한, 데이터 저장소(200)는 오토 스케일링 벤치마크 장치(100)가 사용자에게 제공하는 벤치마크 결과 정보 및 프로파일링 결과 정보를 저장할 수 있다. Next, the data storage 200 may store input information input to the auto scaling benchmark apparatus 100 . In addition, the data storage 200 may store benchmark result information and profiling result information provided to the user by the auto scaling benchmark apparatus 100 .

다음으로, 벤치마크 툴 저장소(300)는 요청 처리부(310) 및 저장 공간(320)을 포함할 수 있다. 상술한 저장 공간(320)에 도시된 벤치마크 툴 파일들은 저장 공간(320)에 저장될 수 있는 벤치마크 툴 파일의 예시를 나타낼 뿐 본 발명의 범위를 한정하는 것은 아님을 유의해야 한다.Next, the benchmark tool storage 300 may include a request processing unit 310 and a storage space 320 . It should be noted that the benchmark tool files shown in the storage space 320 described above represent examples of benchmark tool files that may be stored in the storage space 320 and do not limit the scope of the present invention.

벤치마크 툴 저장소(300)는 오토 스케일링 벤치마크 장치(100)의 벤치마크 툴 요청(10)에 응답하여, 저장 공간(320)에 저장된 벤치마크 툴 파일(20)을 오토 스케일링 벤치마크 장치(100)에 제공할 수 있다. 보다 구체적으로, 오토 스케일링 벤치마크 장치(100)의 벤치마크 툴 요청(10)이 있으면, 요청 처리부(310)는 저장 공간(320) 내에 벤치마크 툴 요청(10)에 대응되는 벤치마크 툴 파일(20)이 존재하는지 검색한다. 벤치마크 툴 파일(20)이 저장 공간(320) 내에서 검색되면, 요청 처리부(310)는 오토 스케일링 벤치마크 장치(100)에 벤치마크 툴 요청(10)에 대응되는 벤치마크 툴 파일(20)을 전송한다. 상술한 벤치마크 툴 저장소(300)를 이용하여 오토스케일링 벤치마크 장치(100)가 수행하는 벤치마크 툴 설치 동작은 추후 도 3 내지 도 4를 참조하면 보다 더 구체화될 것이다.In response to the benchmark tool request 10 of the auto scaling benchmark device 100, the benchmark tool storage 300 stores the benchmark tool file 20 stored in the storage space 320 as the auto scaling benchmark device 100. ) can be provided. More specifically, if there is a benchmark tool request 10 from the auto scaling benchmark device 100, the request processing unit 310 stores a benchmark tool file corresponding to the benchmark tool request 10 in the storage space 320 ( 20) to see if it exists. When the benchmark tool file 20 is retrieved from the storage space 320, the request processing unit 310 sends the benchmark tool file 20 corresponding to the benchmark tool request 10 to the auto scaling benchmark device 100. send A benchmark tool installation operation performed by the auto-scaling benchmark apparatus 100 using the above-described benchmark tool storage 300 will be detailed later with reference to FIGS. 3 and 4 .

다음으로, 컴퓨팅 노드(400)는 컴퓨팅 장치에 포함될 수 있다. 이때, 복수의 컴퓨팅 노드(400)들이 연결되어 하나의 시스템처럼 동작할 수 있다.Next, computing node 400 may be included in a computing device. At this time, a plurality of computing nodes 400 may be connected to operate as one system.

또한, 컴퓨팅 노드(400)는 오토 스케일링 벤치마크 장치(100)에 의해 성능 평가의 대상이 되는 노드를 포함할 수 있다. 도 1의 컴퓨팅 노드(400)에 도시된 것들은 오토 스케일링 벤치마크 장치(100)에 의해 성능 평가의 대상이 될 수 있는 컴퓨팅 노드의 예시를 나타낼 뿐 본 발명의 범위를 한정하는 것은 아님을 유의해야 한다.Also, the computing node 400 may include a node to be evaluated for performance by the auto scaling benchmark device 100 . It should be noted that those shown in the computing node 400 of FIG. 1 represent examples of computing nodes that may be subject to performance evaluation by the auto scaling benchmark device 100, but do not limit the scope of the present invention. .

이하, 일 실시예에 따른 오토 스케일링 벤치마크 장치(100)에 대한 보다 구체적인 설명을 위해 도 2를 참조하여 설명하기로 한다. 도 2는 도 1에 도시된 오토 스케일링 벤치마크 장치(100)를 보다 구체적으로 설명하기 위한 예시적인 블록도이다. 도 2는 본 발명의 목적을 달성하기 위한 바람직한 실시예를 도시하고 있을 뿐이며, 필요에 따라 일부 구성 요소가 추가되거나 삭제될 수 있다. 또한, 도 2에 도시된 예시적인 오토 스케일링 벤치마크 장치(100)는 기능적으로 구분되는 기능 요소들을 나타낸 것으로서, 복수의 구성 요소가 실제 물리적 환경에서는 서로 통합되는 형태로 구현될 수도 있음에 유의해야 한다. 예를 들어, 동일한 컴퓨팅 장치 내에 서로 다른 로직(logic)의 형태로 구현될 수도 있다.Hereinafter, the auto scaling benchmark apparatus 100 according to an embodiment will be described with reference to FIG. 2 for a more detailed description. FIG. 2 is an exemplary block diagram for describing the auto scaling benchmark apparatus 100 shown in FIG. 1 in more detail. Figure 2 only shows a preferred embodiment for achieving the object of the present invention, some components may be added or deleted as necessary. In addition, it should be noted that the exemplary auto scaling benchmark apparatus 100 shown in FIG. 2 represents functionally differentiated functional elements, and a plurality of components may be implemented in a form integrated with each other in an actual physical environment. . For example, they may be implemented in the form of different logics within the same computing device.

또한, 도 2에 도시된 오토 스케일링 벤치마크 장치(100)는 하나 이상의 컴퓨팅 장치로 구현될 수 있다. 예를 들어, 오토 스케일링 벤치마크 장치(100)의 모든 기능은 단일 컴퓨팅 장치에서 구현될 수 있다. 다른 예로써, 오토 스케일링 벤치마크 장치(100)의 제1 기능은 제1 컴퓨팅 장치에서 구현되고, 제2 기능은 제2 컴퓨팅 장치에서 구현될 수도 있다. 여기서, 컴퓨팅 장치는, 노트북, 데스크톱(desktop), 랩탑(laptop) 등이 될 수 있으나, 이에 국한되는 것은 아니며 컴퓨팅 기능이 구비된 모든 종류의 장치를 포함할 수 있다. 다만, 오토 스케일링 벤치마크 장치(100)가 다양한 파라미터에 따라 고성능 컴퓨팅 장치에 대한 성능 평가를 제공해야 되는 환경이라면, 오토 스케일링 벤치마크 장치(100) 또한 고성능의 서버급 컴퓨팅 장치로 구현되는 것이 바람직할 수 있다. 상술한 오토 스케일링 벤치마크 장치(100)의 일 예에 대해서는 추후 도 9를 참조하여 설명하기로 한다.Also, the auto scaling benchmark device 100 shown in FIG. 2 may be implemented with one or more computing devices. For example, all functions of the auto scaling benchmark device 100 may be implemented in a single computing device. As another example, the first function of the auto scaling benchmark device 100 may be implemented in a first computing device, and the second function may be implemented in a second computing device. Here, the computing device may be a notebook, a desktop, or a laptop, but is not limited thereto and may include any type of device equipped with a computing function. However, in an environment in which the auto scaling benchmark device 100 needs to provide performance evaluation of a high performance computing device according to various parameters, it may be desirable that the auto scaling benchmark device 100 is also implemented as a high performance server-class computing device. have. An example of the above-described auto scaling benchmark apparatus 100 will be described later with reference to FIG. 9 .

입력 파서(110)는 사용자에 의해 작성된 입력 정보를 컴퓨팅 장치에 대한 벤치마크를 수행할 수 있는 형태로 변환할 수 있다. 예를 들어, 입력 정보를 실행 명령어로 변환할 수 있다. 여기서, 입력 정보는 파라미터의 유형 및 파라미터의 범위 등에 관한 정보를 포함하되, 사용자에 의해 작성된 정보를 의미한다. 예를 들어 도 7을 참조하면 입력 정보에는 "OMP_NUM_THREADS" 파라미터와 그 파라미터에 대응되는 범위에 관한 정보가 기재되어 있음을 확인할 수 있다. 여기서, 입력 정보는 Json 언어로 작성될 수 있으나, 입력 정보의 언어에 의해 본 발명이 한정되는 것은 아님을 유의해야 한다.The input parser 110 may convert input information written by a user into a form capable of benchmarking a computing device. For example, input information may be converted into an execution command. Here, the input information includes information about the type and range of the parameter, but refers to information written by the user. For example, referring to FIG. 7 , it can be confirmed that the input information includes the “OMP_NUM_THREADS” parameter and information about a range corresponding to the parameter. Here, although the input information may be written in Json language, it should be noted that the present invention is not limited by the language of the input information.

다음으로, 벤치마크 툴 설치부(120)는 벤치마크 툴 저장소에 벤치마크 툴을 요청할 수 있다. 또한, 벤치마크 툴 설치부(120)는 벤치마크 툴 저장소가 전송한 벤치마크 툴 파일을 수신하여, 벤치마크 툴 파일을 설치할 수 있다. Next, the benchmark tool installation unit 120 may request a benchmark tool from the benchmark tool storage. In addition, the benchmark tool installation unit 120 may receive the benchmark tool file transmitted from the benchmark tool storage and install the benchmark tool file.

보다 구체적으로 설명하면, 벤치마크 툴 설치가 필요한 경우 벤치마크 툴 설치부(120)는 벤치마크 툴 저장소에 벤치마크 툴을 요청할 수 있다. 벤치마크 툴 저장소에 벤치마크 툴 파일이 존재하면, 벤치마크 툴 설치부(120)는 벤치마크 툴 저장소가 전송한 벤치마크 툴 파일을 수신하여 벤치마크 툴 파일을 설치할 수 있다. 벤치마크 툴 저장소에 벤치마크 툴 파일이 존재하지 않으면, 벤치마크 툴 설치부(120)는 벤치마크 대상 컴퓨팅 노드에서 벤치마크 대상 파일을 검색하고, 벤치마크 대상 파일이 존재하면, 벤치마크 툴 설치부(120)는 벤치마크 툴 저장소에 벤치마크 툴 업데이트를 요청할 수 있다. 상술한 벤치마크 툴 설치부(120) 및 벤치마크 툴 저장소의 동작들에 따라, 입력 정보에 대응되는 벤치마크 툴에 기초하여 컴퓨팅 장치에 대한 벤치마크가 수행될 수 있다. 예를 들어 도 7에 도시된 "TEST_NAME" 항목의 "hpl_intel_mkl18-1.0"에 기초하여 컴퓨팅 장치에 대한 벤치마크가 수행될 수 있다. More specifically, if installation of the benchmark tool is required, the benchmark tool installation unit 120 may request the benchmark tool from the benchmark tool storage. If the benchmark tool file exists in the benchmark tool storage, the benchmark tool installation unit 120 may receive the benchmark tool file transmitted from the benchmark tool storage and install the benchmark tool file. If the benchmark tool file does not exist in the benchmark tool storage, the benchmark tool installation unit 120 searches for a benchmark target file from the benchmark target computing node, and if the benchmark target file exists, the benchmark tool installation unit 120 may request a benchmark tool update from a benchmark tool repository. According to the above-described operations of the benchmark tool installation unit 120 and the benchmark tool storage, a benchmark for the computing device may be performed based on the benchmark tool corresponding to the input information. For example, a benchmark for a computing device may be performed based on “hpl_intel_mkl18-1.0” of the “TEST_NAME” item shown in FIG. 7 .

다음으로, 벤치마크 툴 모니터링부(130)는 사용 가능한 벤치마크 툴 목록과 각각의 벤치마크 툴이 평가하는 항목에 관한 정보인 벤치마크 정보를 제공할 수 있다.Next, the benchmark tool monitoring unit 130 may provide a list of usable benchmark tools and benchmark information, which is information about items evaluated by each benchmark tool.

다음으로, 작업 실행부(140)는 벤치마크 툴을 이용하여 컴퓨팅 장치에 대한 벤치마크를 수행한다. 보다 구체적으로 설명하면, 작업 실행부(140)는 입력 정보에 포함된 파라미터를 순서대로 초기화할 수 있다. 또한, 작업 실행부(140)는 최우선 순위의 파라미터인 제1 파라미터에 대응되는 제1 벤치마크 툴을 이용하여 제1 파라미터를 미리 지정된 범위 내에서 변경하며 컴퓨팅 장치에 대한 제1 벤치마크를 수행하고, 다음 순서에 따라 제2 파라미터에 대응되는 제2 벤치마크 툴을 이용하여 제2 파라미터를 미리 지정된 범위 내에서 변경하며 컴퓨팅 장치에 대한 제2 벤치마크를 수행할 수 있다. 여기서, 작업 실행부(140)는 입력 정보에 포함된 모든 파라미터에 대해 파라미터 순서에 따라 벤치마크를 수행할 수도 있다. 상술한 작업 실행부(140)의 동작들에 따라 다양한 파라미터를 이용한 벤치마크를 수행함으로써, 컴퓨팅 장치에 대한 평가를 연속적으로 할 수 있다.Next, the task executor 140 performs a benchmark for the computing device using a benchmark tool. More specifically, the task executor 140 may sequentially initialize the parameters included in the input information. In addition, the task executor 140 changes the first parameter within a predetermined range using a first benchmark tool corresponding to the first parameter, which is a parameter of the highest priority, and performs a first benchmark for the computing device, , It is possible to change the second parameter within a pre-specified range using the second benchmark tool corresponding to the second parameter according to the following order, and perform the second benchmark for the computing device. Here, the task executor 140 may perform a benchmark according to the parameter order for all parameters included in the input information. By performing a benchmark using various parameters according to the above-described operations of the task executor 140, the evaluation of the computing device can be continuously performed.

다음으로, 프로파일러(150)는 Perf 명령어를 사용하여 컴퓨팅 장치에 대한 프로파일링 결과 정보를 수집할 수 있다. 또한, 프로파일러(150)는 수집된 프로파일링 결과 정보를 가공할 수도 있다. 상술한 프로파일러(150)의 동작들에 따라 컴퓨팅 장치에 대한 하드웨어 성능 카운터 기반의 프로파일링 결과 정보를 수집할 수 있다.Next, the profiler 150 may collect profiling result information on the computing device using the Perf command. Also, the profiler 150 may process the collected profiling result information. According to the above-described operations of the profiler 150, profiling result information based on the hardware performance counter of the computing device may be collected.

다음으로, 결과 정보 제공부(160)는 작업 실행부(140)에서 수행된 벤치마크의 결과에 기초하여, 벤치마크 결과 정보를 사용자에게 제공할 수 있다. 또한, 결과 정보 제공부(160)는 프로파일러(150)에서 수행된 프로파일의 결과에 기초하여, 프로파일링 결과 정보를 사용자에게 제공할 수도 있다.Next, the result information providing unit 160 may provide benchmark result information to the user based on the result of the benchmark performed by the task executor 140 . In addition, the result information providing unit 160 may provide profiling result information to the user based on the result of the profile performed by the profiler 150 .

한편, 도 1 내지 도 2에 도시된 각 구성 요소는 소프트웨어(Software) 또는, FPGA(Field Programmable Gate Array)나 ASIC(Application-Specific Integrated Circuit)과 같은 하드웨어(Hardware)를 의미할 수 있다. 그렇지만, 구성 요소들은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니며, 어드레싱(Addressing)할 수 있는 저장 매체에 있도록 구성될 수도 있고, 하나 또는 그 이상의 프로세서들을 실행시키도록 구성될 수도 있다. 구성 요소들 안에서 제공되는 기능은 더 세분화된 구성 요소에 의하여 구현될 수 있으며, 복수의 구성 요소들을 합하여 특정한 기능을 수행하는 하나의 구성 요소로 구현될 수도 있다.Meanwhile, each component shown in FIGS. 1 and 2 may mean software or hardware such as a Field Programmable Gate Array (FPGA) or an Application-Specific Integrated Circuit (ASIC). However, components are not meant to be limited to software or hardware, and may be configured to reside in an addressable storage medium or configured to execute one or more processors. Functions provided in the components may be implemented by more subdivided components, or may be implemented as a single component that performs a specific function by combining a plurality of components.

지금까지 도 1 내지 도 2를 참조하여 본 발명의 일 실시예에 따른 오토 스케일링 벤치마크 장치 및 그 장치가 적용될 수 있는 예시적인 환경을 설명하였다. 본 실시예에 따르면, 다양한 파라미터에 대해 연속적으로 벤치마크를 수행함으로써, 벤치마크 결과 정보를 사용자에게 제공할 수 있다. 또한, 본 실시예에 따르면, 하드웨어 성능 카운터 기반의 프로파일링 결과 정보를 사용자에게 제공할 수도 있다. 이하, 도 3 내지 도 6을 참조하여 본 발명의 몇몇 실시예에 따른 오토 스케일링 벤치마크 방법을 나타내는 예시적인 순서도에 대해 구체적으로 설명하기로 한다.So far, an auto scaling benchmark device according to an embodiment of the present invention and exemplary environments to which the device can be applied have been described with reference to FIGS. 1 and 2 . According to this embodiment, benchmark result information can be provided to a user by continuously performing benchmarks on various parameters. Also, according to the present embodiment, profiling result information based on hardware performance counters may be provided to the user. Hereinafter, exemplary flowcharts illustrating an auto scaling benchmark method according to some embodiments of the present invention will be described in detail with reference to FIGS. 3 to 6 .

도 3 내지 도 6에 도시된 방법들의 각 단계들은 본 발명의 목적을 달성하기 위한 바람직한 실시예일 뿐이며, 필요에 따라 일부 단계가 추가되거나 삭제될 수 있음은 물론이다.Each step of the methods shown in FIGS. 3 to 6 is only a preferred embodiment for achieving the object of the present invention, and it goes without saying that some steps may be added or deleted as needed.

또한, 도 3 내지 도 6에 도시된 방법들의 각 단계는 컴퓨팅 장치에 의해 수행될 수 있다. 다시 말하면, 방법들의 각 단계는 컴퓨팅 장치의 프로세서에 의해 실행되는 하나 이상의 인스트럭션들로 구현될 수 있다. 방법들에 포함되는 모든 단계는 하나의 물리적인 컴퓨팅 장치에 의하여 실행될 수도 있을 것이나, 방법의 제1 단계들은 제1 컴퓨팅 장치에 의하여 수행되고, 방법의 제2 단계들은 제2 컴퓨팅 장치에 의하여 수행될 수도 있다. 이하에서는, 방법들의 각 단계가 도 1에 예시된 오토 스케일링 벤치마크 장치(100)에 의해 수행되는 것을 가정하여 설명을 이어가도록 한다. 다만, 설명의 편의상, 방법들에 포함되는 각 단계의 동작 주체는 그 기재가 생략될 수도 있다.In addition, each step of the methods shown in FIGS. 3 to 6 may be performed by a computing device. In other words, each step of the methods may be implemented as one or more instructions executed by a processor of a computing device. All steps included in the methods could be performed by one physical computing device, but first steps of the method are performed by a first computing device and second steps of the method are performed by a second computing device. may be Hereinafter, description will be continued on the assumption that each step of the methods is performed by the auto scaling benchmark apparatus 100 illustrated in FIG. 1 . However, for convenience of description, the description of the subject of operation of each step included in the methods may be omitted.

도 3을 참조하면 단계 S100에서 입력 정보가 변환된다. 본 단계는 앞서 도 2를 참조하여 설명된 입력 파서(110)에 의해 수행될 수 있다. Referring to FIG. 3 , input information is converted in step S100. This step may be performed by the input parser 110 previously described with reference to FIG. 2 .

다음으로 단계 S200에서 벤치마크 툴이 설치된다. 본 단계는 앞서 도 2를 참조하여 설명된 벤치마크 툴 설치부(120)에 의해 수행될 수 있다. 본 단계에 대한 보다 구체적인 설명을 위해 도 4를 참조하여 설명하기로 한다.Next, in step S200, a benchmark tool is installed. This step may be performed by the benchmark tool installation unit 120 described above with reference to FIG. 2 . For a more detailed description of this step, it will be described with reference to FIG. 4 .

도 4를 참조하면, 벤치마크 툴 설치가 필요하면(S210), 벤치마크 툴 저장소에 벤치마크 툴이 요청되고(S220), 벤치마크 툴 저장소에 벤치마크 툴이 존재하면(S230), 벤치마크 툴 파일이 벤치마크 툴 저장소로부터 수신되고 설치된다(S240). 벤치마크 툴 저장소에 벤치마크 툴 파일이 존재하지 않으면(S230), 벤치마크 대상 컴퓨팅 노드에서 벤치마크 대상 파일이 검색되고(S250), 검색의 결과 벤치마크 대상 파일이 부존재하면(S260), 벤치마크 툴 업데이트가 요청된다(S270). 도 4를 참조하여 설명된 동작들에 따르면, 입력 정보에 대응되는 벤치마크 툴에 기초하여 컴퓨팅 장치에 대한 벤치마크가 수행될 수 있다. 다시 도 3을 참조하여 설명하기로 한다.Referring to FIG. 4, if the installation of the benchmark tool is required (S210), the benchmark tool is requested in the benchmark tool repository (S220), and if the benchmark tool exists in the benchmark tool repository (S230), the benchmark tool The file is received from the benchmark tool repository and installed (S240). If the benchmark tool file does not exist in the benchmark tool repository (S230), the benchmark target file is searched for in the benchmark target computing node (S250), and if the benchmark target file does not exist as a result of the search (S260), the benchmark Tool update is requested (S270). According to the operations described with reference to FIG. 4 , a benchmark for a computing device may be performed based on a benchmark tool corresponding to input information. It will be described with reference to FIG. 3 again.

다음으로 단계 S300에서 벤치마크 툴을 이용하여 컴퓨팅 장치에 대한 벤치마크가 수행된다. 본 단계는 앞서 도 2를 참조하여 설명된 작업 실행부(140)에 의해 수행될 수 있다. 본 단계에 대한 보다 구체적인 설명을 위해 도 5를 참조하여 설명하기로 한다.Next, in step S300, benchmarking of the computing device is performed using a benchmark tool. This step may be performed by the task executor 140 previously described with reference to FIG. 2 . For a more detailed description of this step, it will be described with reference to FIG. 5 .

도 5를 참조하면, 단계 S310에서 입력 정보에 포함된 파라미터가 초기화된다. 본 단계에 따르면, 파라미터에 대응되는 컴퓨팅 장치의 리소스 자원이 초기화될 수 있다.Referring to FIG. 5 , parameters included in the input information are initialized in step S310. According to this step, the resource resource of the computing device corresponding to the parameter may be initialized.

다음으로 단계 S320에서 제1 파라미터에 대응되는 제1 벤치마크 툴을 이용하여 제1 파라미터를 미리 지정된 범위 내에서 변경하며 컴퓨팅 장치에 대한 제1 벤치마크가 수행된다. 예를 들어 도 7을 참조하면, 제1 파라미터인 "OMP_NUM_THREADS"의 초기값인 72부터 종기값인 288까지 제1 파라미터의 값을 변경하며 컴퓨팅 장치에 대한 제1 벤치마크가 수행될 수 있다.Next, in step S320, the first parameter is changed within a predetermined range using a first benchmark tool corresponding to the first parameter, and a first benchmark for the computing device is performed. For example, referring to FIG. 7 , a first benchmark for a computing device may be performed while changing the value of the first parameter “OMP_NUM_THREADS” from an initial value of 72 to a final value of 288.

다음으로 단계 S330에서 제1 파라미터의 후순위인 제2 파라미터에 대응되는 제2 벤치마크 툴을 이용하여, 제2 파라미터를 미리 지정된 범위내에서 변경하며, 컴퓨팅 장치에 대한 제2 벤치마크가 수행된다. 예를 들어 도 7을 참조하면, 제2 파라미터인 "ProblemSize"의 초기값인 10000부터 종기값인 150000까지 제2 파라미터의 값을 변경하며 컴퓨팅 장치에 대한 제2 벤치마크가 수행될 수 있다. Next, in step S330, the second parameter is changed within a predetermined range by using a second benchmark tool corresponding to the second parameter, which is a lower order of the first parameter, and a second benchmark is performed for the computing device. For example, referring to FIG. 7 , the second benchmark for the computing device may be performed by changing the value of the second parameter “ProblemSize” from the initial value of 10000 to the final value of 150000.

다음으로, 단계 S340에서 입력 정보에 포함된 모든 파라미터에 대해 파라미터 순서에 따라, 단계 S320 및 단계 S330에서 참조될 수 있는 벤치마크 수행 동작과 유사한 동작으로 벤치마크가 수행된다.Next, benchmarking is performed for all parameters included in the input information in step S340 according to the parameter order, in a similar operation to the benchmark execution operation that can be referred to in steps S320 and S330.

도 5를 참조하여 설명된 벤치마크 수행 동작과 관련된 몇몇 실시예에서, 입력 정보는 벤치마크 대상 컴퓨팅 노드를 지시하는 실행 지시자를 포함하고, 실행 지시자가 둘 이상의 컴퓨팅 노드를 지시하면, MPI(Message Passing Interface) 명령어에 기초하여 벤치마크 대상 컴퓨팅 노드에 대한 벤치마크를 수행할 수 있다. 본 실시예에 따르면, MPI 명령어를 이용함으로써, 둘 이상의 컴퓨팅 노드를 대상으로 벤치마크를 수행할 수 있다. 예를 들어 도 7을 참조하면, 실행 지시자인, "MPI_HOSTS"가 "knl01" 및 "knl02"를 지시하고 있으므로, MPI 명령어에 기초하여 벤치마크 대상 컴퓨팅 노드들에 대한 벤치마크가 수행될 수 있다.In some embodiments related to the benchmark execution operation described with reference to FIG. 5 , the input information includes an execution indicator indicating a benchmark target computing node, and when the execution indicator indicates two or more computing nodes, MPI (Message Passing) A benchmark may be performed on a computing node to be benchmarked based on an Interface) command. According to this embodiment, a benchmark may be performed for two or more computing nodes by using an MPI command. For example, referring to FIG. 7 , since "MPI_HOSTS", an execution indicator, indicates "knl01" and "knl02", benchmarking of target computing nodes may be performed based on the MPI command.

다른 몇몇 실시예에서, 입력 정보에 포함된 모든 파라미터에 대해 미리 지정된 횟수만큼 벤치마크를 반복 수행할 수도 있다. 각각의 파라미터를 이용한 벤치마크를 반복하여 수행함으로써, 보다 정확한 벤치마크 결과 정보를 사용자에게 제공할 수 있다. 예를 들어 도 7에 따르면, "TIME_TO_RUN"이 "5"이므로 각각의 파라미터를 이용한 벤치마크가 5회 반복하여 수행된다는 점을 이해할 수 있다. 이때, 벤치마크의 반복 수행 시마다 리소스 초기화를 위한 소정의 시간이 부여될 수도 있음을 유의해야 한다.In some other embodiments, the benchmark may be repeatedly performed a predetermined number of times for all parameters included in the input information. By repeatedly performing the benchmark using each parameter, more accurate benchmark result information can be provided to the user. For example, according to FIG. 7 , since “TIME_TO_RUN” is “5”, it can be understood that the benchmark using each parameter is repeatedly performed 5 times. At this time, it should be noted that a predetermined time for resource initialization may be granted whenever the benchmark is repeatedly performed.

다시 도 3을 참조하여 설명하기로 한다. 도 3을 참조하면 단계 S400에서 벤치마크 결과 정보가 제공된다. 본 단계는 앞서 도 2를 참조하여 설명된 결과 정보 제공부(160)에 의해 수행될 수 있다.It will be described with reference to FIG. 3 again. Referring to FIG. 3 , benchmark result information is provided in step S400 . This step may be performed by the result information provider 160 described above with reference to FIG. 2 .

단계 S400과 관련된 몇몇 실시예에서, 벤치마크를 반복하여 수행함에 따른 벤치마크 결과의 평균값에 기초하여, 벤치마크 결과 정보가 제공될 수 있다. 본 실시예에 따르면 벤치마크를 반복하여 수행하고 각 수행의 결과의 평균값에 기초하여 벤치마크 결과 정보를 제공함으로써, 보다 정확한 벤치마크 결과 정보를 사용자에게 제공할 수 있다.In some embodiments related to step S400, benchmark result information may be provided based on an average value of benchmark results as the benchmark is repeatedly performed. According to the present embodiment, more accurate benchmark result information can be provided to the user by repeatedly performing the benchmark and providing the benchmark result information based on the average value of the result of each performance.

도 6을 참조하면 단계 S10에서 입력 정보가 변환된다. 본 단계에 대한 설명은 도 3의 단계 S100에 관한 설명을 참조하면 이해될 수 있을 것이다.Referring to FIG. 6 , input information is converted in step S10. A description of this step will be understood by referring to the description of step S100 of FIG. 3 .

다음으로 단계 S20에서, Perf 명령어에 기초하여 컴퓨팅 장치에 대해 프로파일링 결과 정보가 생성된다. 본 단계는 앞서 도 2를 참조하여 설명된 프로파일러(150)에 의해 수행될 수 있다. 도 7을 참조하여 보다 구체적인 예를 들면, 입력 정보에 "PERF_EVENT"가 포함된 경우 Perf 명령어에 기초하여 평가의 대상이 되는 컴퓨팅 장치에서 스크립트가 실행되고, 하드웨어 성능 카운터에 기반한 프로파일링 결과 정보가 생성될 수 있다. 도 8은 입력 정보에 기초하여 생성된 예시적인 스크립트 및 그 스크립트에 대응되는 실행 명령어이다. 도 8에 도시된 예시적인 스크립트에 따라 프로파일링 결과 정보가 생성될 수 있다.Next, in step S20, profiling result information is generated for the computing device based on the Perf command. This step may be performed by the profiler 150 previously described with reference to FIG. 2 . For a more specific example with reference to FIG. 7 , when “PERF_EVENT” is included in the input information, the script is executed in the computing device to be evaluated based on the Perf command, and profiling result information based on the hardware performance counter is generated. It can be. 8 is an exemplary script generated based on input information and an execution command corresponding to the script. Profiling result information may be generated according to the exemplary script shown in FIG. 8 .

단계 S20과 관련된 몇몇 실시예에서, 컴퓨팅 장치에 포함된 복수의 컴퓨팅 노드 별로 프로파일링 결과 정보가 생성될 수 있다. In some embodiments related to step S20, profiling result information may be generated for each of a plurality of computing nodes included in the computing device.

다른 몇몇 실시예에서, 생성된 프로파일링 결과 정보가 가공될 수도 있다. 여기서, 노드 별로 생성된 프로파일링 결과 정보가 하나의 파일로 합쳐질 수 있다. 또한, 생성된 프로파일링 결과 정보에 포함된 가비지 데이터가 삭제될 수도 있다. 또한, 생성된 프로파일링 결과 정보가 소정의 기준에 따라 정렬될 수도 있다. 본 실시예에 따른 프로파일링 결과 정보의 가공에 있어서, 공지된 모든 데이터 후처리 작업이 포함될 수도 있음을 유의해야 한다.In some other embodiments, the generated profiling result information may be processed. Here, profiling result information generated for each node may be combined into one file. Also, garbage data included in the generated profiling result information may be deleted. In addition, the generated profiling result information may be sorted according to a predetermined criterion. It should be noted that processing of profiling result information according to the present embodiment may include all known data post-processing operations.

또 다른 몇몇 실시예에서, Perf 명령어에 기초하여 컴퓨팅 장치에 대한 프로파일링 결과 정보를 지정된 횟수만큼 반복하여 생성할 수도 있다. 본 실시예에 따르면, 컴퓨팅 장치에 대한 보다 정확한 프로파일링 결과 정보가 도출될 수 있다.In some other embodiments, based on the Perf command, profiling result information on the computing device may be repeatedly generated a specified number of times. According to this embodiment, more accurate profiling result information on a computing device can be derived.

다음으로 단계 S30에서 프로파일링 결과 정보가 제공된다. 본 단계는 앞서 도 2를 참조하여 설명된 결과 정보 제공부(160)에 의해 수행될 수 있다.Next, profiling result information is provided in step S30. This step may be performed by the result information provider 160 described above with reference to FIG. 2 .

단계 S30과 관련된 몇몇 실시예에서, 프로파일링 결과 정보의 생성을 반복하여 수행함에 따라 프로파일링 결과 정보의 평균값이 제공될 수 있다. 본 실시예에 따르면 프로파일링 결과 정보가 반복하여 생성되고 생성된 각 프로파일링 결과 정보의 평균값에 기초하여 프로파일링 결과 정보를 제공함으로써, 보다 정확한 프로파일링 결과 정보를 사용자에게 제공할 수 있다.In some embodiments related to step S30, an average value of profiling result information may be provided as profiling result information is repeatedly generated. According to the present embodiment, more accurate profiling result information can be provided to a user by repeatedly generating profiling result information and providing profiling result information based on an average value of each generated profiling result information.

지금까지 도 3 내지 도 6을 참조하여 본 발명의 몇몇 실시예에 따른 오토 스케일링 벤치마크 방법들을 설명하였다. 상술한 방법들에 따르면, 다양한 파라미터를 이용하여 둘 이상의 컴퓨팅 노드를 포함하는 고성능 컴퓨팅 장치에 대한 벤치마크가 수행될 수 있다. 즉, 다양한 파라미터에 대한 입력을 지원함으로써, 다양한 파라미터에 의한 연속적인 벤치마크를 수행할 수 있다. 또한, 하드웨어 성능 카운터 기반의 프로파일링 결과 정보를 생성할 수도 있다. So far, auto scaling benchmark methods according to some embodiments of the present invention have been described with reference to FIGS. 3 to 6 . According to the methods described above, a benchmark for a high-performance computing device including two or more computing nodes may be performed using various parameters. That is, by supporting inputs for various parameters, it is possible to perform continuous benchmarking by various parameters. Also, profiling result information based on a hardware performance counter may be generated.

이하, 도 9를 참조하여 본 발명의 일 실시예에 따른 오토 스케일링 벤치마크 장치를 구현할 수 있는 예시적인 컴퓨팅 장치(1500)를 보다 구체적으로 설명하기로 한다.Hereinafter, an exemplary computing device 1500 capable of implementing an auto scaling benchmark device according to an embodiment of the present invention will be described in more detail with reference to FIG. 9 .

컴퓨팅 장치(1500)는 하나 이상의 프로세서(1510), 버스(1550), 통신 인터페이스(1570), 프로세서(1510)에 의하여 수행되는 컴퓨터 프로그램(1591)을 로드(load)하는 메모리(1530)와, 컴퓨터 프로그램(1591)을 저장하는 스토리지(1590)를 포함할 수 있다. 다만, 도 9에는 본 발명의 실시예와 관련 있는 구성 요소들 만이 도시되어 있다. 따라서, 본 발명이 속한 기술분야의 통상의 기술자라면 도 9에 도시된 구성 요소들 외에 다른 범용적인 구성 요소들이 더 포함될 수 있음을 알 수 있다.The computing device 1500 includes one or more processors 1510, a bus 1550, a communication interface 1570, a memory 1530 for loading a computer program 1591 executed by the processor 1510, and a computer A storage 1590 for storing the program 1591 may be included. However, only components related to the embodiment of the present invention are shown in FIG. 9 . Accordingly, those skilled in the art to which the present invention pertains can know that other general-purpose components may be further included in addition to the components shown in FIG. 9 .

프로세서(1510)는 컴퓨팅 장치(1500)의 각 구성의 전반적인 동작을 제어한다. 프로세서(1510)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit) 또는 본 발명의 기술 분야에 잘 알려진 임의의 형태의 프로세서를 포함하여 구성될 수 있다. 또한, 프로세서(1510)는 본 발명의 실시예들에 따른 방법을 실행하기 위한 적어도 하나의 애플리케이션 또는 프로그램에 대한 연산을 수행할 수 있다. 컴퓨팅 장치(1500)는 하나 이상의 프로세서를 구비할 수 있다.The processor 1510 controls the overall operation of each component of the computing device 1500 . The processor 1510 includes a Central Processing Unit (CPU), a Micro Processor Unit (MPU), a Micro Controller Unit (MCU), a Graphic Processing Unit (GPU), or any type of processor well known in the art. It can be. Also, the processor 1510 may perform an operation for at least one application or program for executing a method according to embodiments of the present invention. Computing device 1500 may include one or more processors.

메모리(1530)는 각종 데이터, 명령 및/또는 정보를 저장한다. 메모리(1530)는 본 발명의 실시예들에 따른 방법을 실행하기 위하여 스토리지(1590)로부터 하나 이상의 프로그램(1591)을 로드 할 수 있다. 메모리(1530)는 RAM과 같은 휘발성 메모리로 구현될 수 있을 것이나, 본 발명의 기술적 범위가 이에 한정되는 것은 아니다.Memory 1530 stores various data, commands and/or information. Memory 1530 may load one or more programs 1591 from storage 1590 to execute a method according to embodiments of the present invention. The memory 1530 may be implemented as a volatile memory such as RAM, but the technical scope of the present invention is not limited thereto.

버스(1550)는 컴퓨팅 장치(1500)의 구성 요소 간 통신 기능을 제공한다. 버스(1550)는 주소 버스(Address Bus), 데이터 버스(Data Bus) 및 제어 버스(Control Bus) 등 다양한 형태의 버스로 구현될 수 있다.The bus 1550 provides a communication function between components of the computing device 1500 . The bus 1550 may be implemented as various types of buses such as an address bus, a data bus, and a control bus.

통신 인터페이스(1570)는 컴퓨팅 장치(1500)의 유무선 인터넷 통신을 지원한다. 또한, 통신 인터페이스(1570)는 인터넷 통신 외의 다양한 통신 방식을 지원할 수도 있다. 이를 위해, 통신 인터페이스(1570)는 본 발명의 기술 분야에 잘 알려진 통신 모듈을 포함하여 구성될 수 있다.The communication interface 1570 supports wired and wireless Internet communication of the computing device 1500 . Also, the communication interface 1570 may support various communication methods other than Internet communication. To this end, the communication interface 1570 may include a communication module well known in the art.

몇몇 실시예들에 따르면, 통신 인터페이스(1570)는 생략될 수도 있다.According to some embodiments, communication interface 1570 may be omitted.

스토리지(1590)는 상기 하나 이상의 프로그램(1591)과 각종 데이터를 비임시적으로 저장할 수 있다. The storage 1590 may non-temporarily store the one or more programs 1591 and various data.

스토리지(1590)는 ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리 등과 같은 비휘발성 메모리, 하드 디스크, 착탈형 디스크, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터로 읽을 수 있는 기록 매체를 포함하여 구성될 수 있다.The storage 1590 may be a non-volatile memory such as read only memory (ROM), erasable programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), flash memory, or the like, a hard disk, a removable disk, or a device well known in the art. It may be configured to include any known type of computer-readable recording medium.

컴퓨터 프로그램(1591)은 메모리(1530)에 로드 될 때 프로세서(1510)로 하여금 본 발명의 다양한 실시예에 따른 방법/동작을 수행하도록 하는 하나 이상의 인스트럭션들을 포함할 수 있다. 즉, 프로세서(1510)는 상기 하나 이상의 인스트럭션들을 실행함으로써, 본 발명의 다양한 실시예에 따른 방법/동작들을 수행할 수 있다.Computer program 1591 may include one or more instructions that when loaded into memory 1530 cause processor 1510 to perform methods/operations in accordance with various embodiments of the invention. That is, the processor 1510 may perform methods/operations according to various embodiments of the present disclosure by executing the one or more instructions.

위와 같은 경우, 컴퓨팅 장치(1500)를 통해 본 발명의 일 실시예에 따른 오토 스케일링 벤치마크 장치가 구현될 수 있다.In the above case, the auto scaling benchmark device according to an embodiment of the present invention may be implemented through the computing device 1500 .

지금까지 도 1 내지 도 9를 참조하여 본 발명의 다양한 실시예들 및 그 실시예들에 따른 효과들을 언급하였다. 본 발명의 기술적 사상에 따른 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 명세서의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.So far, various embodiments of the present invention and effects according to the embodiments have been described with reference to FIGS. 1 to 9 . Effects according to the technical idea of the present invention are not limited to the effects mentioned above, and other effects not mentioned will be clearly understood by those skilled in the art from the description of the specification.

지금까지 도 1 내지 도 9를 참조하여 설명된 본 발명의 기술적 사상은 컴퓨터가 읽을 수 있는 매체 상에 컴퓨터가 읽을 수 있는 코드로 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체는, 예를 들어 이동형 기록 매체(CD, DVD, 블루레이 디스크, USB 저장 장치, 이동식 하드 디스크)이거나, 고정식 기록 매체(ROM, RAM, 컴퓨터 구비 형 하드 디스크)일 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체에 기록된 상기 컴퓨터 프로그램은 인터넷 등의 네트워크를 통하여 다른 컴퓨팅 장치에 전송되어 상기 다른 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 다른 컴퓨팅 장치에서 사용될 수 있다.The technical idea of the present invention described with reference to FIGS. 1 to 9 so far can be implemented as computer readable code on a computer readable medium. The computer-readable recording medium may be, for example, a removable recording medium (CD, DVD, Blu-ray disc, USB storage device, removable hard disk) or a fixed recording medium (ROM, RAM, computer-equipped hard disk). can The computer program recorded on the computer-readable recording medium may be transmitted to another computing device through a network such as the Internet, installed in the other computing device, and thus used in the other computing device.

이상에서, 본 발명의 실시예를 구성하는 모든 구성 요소들이 하나로 결합되거나 결합되어 동작하는 것으로 설명되었다고 해서, 본 발명의 기술적 사상이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위 안에서라면, 그 모든 구성 요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다.In the above, even though all the components constituting the embodiment of the present invention have been described as being combined or operated as one, the technical spirit of the present invention is not necessarily limited to these embodiments. That is, within the scope of the object of the present invention, all of the components may be selectively combined with one or more to operate.

도면에서 동작들이 특정한 순서로 도시되어 있지만, 반드시 동작들이 도시된 특정한 순서로 또는 순차적 순서로 실행 되어야만 하거나 또는 모든 도시 된 동작들이 실행 되어야만 원하는 결과를 얻을 수 있는 것으로 이해되어서는 안 된다. 특정 상황에서는, 멀티태스킹 및 병렬 처리가 유리할 수도 있다. 더욱이, 위에 설명한 실시예들에서 다양한 구성들의 분리는 그러한 분리가 반드시 필요한 것으로 이해되어서는 안 되고, 설명된 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일 소프트웨어 제품으로 함께 통합되거나 다수의 소프트웨어 제품으로 패키지 될 수 있음을 이해하여야 한다.Although actions are shown in a specific order in the drawings, it should not be understood that the actions must be performed in the specific order shown or in a sequential order, or that all depicted actions must be performed to obtain a desired result. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of the various components in the embodiments described above should not be understood as requiring such separation, and the described program components and systems may generally be integrated together into a single software product or packaged into multiple software products. It should be understood that there is

이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 본 발명이 다른 구체적인 형태로도 실시될 수 있다는 것을 이해할 수 있다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명에 의해 정의되는 기술적 사상의 권리범위에 포함되는 것으로 해석되어야 할 것이다.Although the embodiments of the present invention have been described with reference to the accompanying drawings, those skilled in the art can implement the present invention in other specific forms without changing the technical spirit or essential features. can understand that there is Therefore, the embodiments described above should be understood as illustrative in all respects and not limiting. The protection scope of the present invention should be construed according to the claims below, and all technical ideas within the equivalent range should be construed as being included in the scope of the technical ideas defined by the present invention.

Claims (17)

컴퓨팅 장치에 의해 수행되는 방법에 있어서,
입력 정보에 포함된 복수의 파라미터 중 제1 파라미터에 대응되는 제1 벤치마크 툴을 이용하여, 상기 컴퓨팅 장치에 대한 제1 벤치마크를 수행하는 단계;
상기 제1 파라미터와 상이한 제2 파라미터에 대응되는 제2 벤치마크 툴을 이용하여, 상기 컴퓨팅 장치에 대한 제2 벤치마크를 수행하는 단계; 및
상기 제1 벤치마크 및 상기 제2 벤치마크의 결과에 기초하여, 벤치마크 결과 정보를 제공하는 단계를 포함하는,
오토 스케일링 벤치마크 방법.
In a method performed by a computing device,
performing a first benchmark on the computing device using a first benchmark tool corresponding to a first parameter among a plurality of parameters included in input information;
performing a second benchmark on the computing device using a second benchmark tool corresponding to a second parameter different from the first parameter; and
Based on the results of the first benchmark and the second benchmark, providing benchmark result information,
Auto scaling benchmark method.
제1 항에 있어서,
상기 입력 정보에 포함된 복수의 파라미터를 초기화하는 단계를 더 포함하는,
오토 스케일링 벤치마크 방법.
According to claim 1,
Further comprising initializing a plurality of parameters included in the input information,
Auto scaling benchmark method.
제1 항에 있어서,
상기 컴퓨팅 장치는 복수의 컴퓨팅 노드를 포함하는,
오토 스케일링 벤치마크 방법.
According to claim 1,
The computing device includes a plurality of computing nodes,
Auto scaling benchmark method.
제3 항에 있어서,
상기 입력 정보는,
벤치마크 대상 컴퓨팅 노드를 지시하는 실행 지시자를 포함하고,
상기 제1 벤치마크 및 상기 제2 벤치마크를 수행하는 단계는,
상기 실행 지시자가 둘 이상의 컴퓨팅 노드를 지시하면, MPI(Message Passing Interface) 명령어에 기초하여 상기 벤치마크 대상 컴퓨팅 노드에 대한 상기 제1 벤치마크 및 상기 제2 벤치마크를 수행하는 단계를 포함하는,
오토 스케일링 벤치마크 방법.
According to claim 3,
The input information is
Includes an execution indicator instructing a benchmark target computing node;
Performing the first benchmark and the second benchmark,
If the execution indicator indicates two or more computing nodes, performing the first benchmark and the second benchmark for the benchmark target computing node based on a Message Passing Interface (MPI) command,
Auto scaling benchmark method.
제1 항에 있어서,
상기 제1 벤치마크를 수행하는 단계는,
상기 제1 파라미터를 미리 지정된 범위 내에서 변경하며 상기 제1 벤치마크를 수행하는 단계를 포함하고,
상기 제2 벤치마크를 수행하는 단계는,
상기 제2 파라미터를 미리 지정된 범위 내에서 변경하며 상기 제2 벤치마크를 수행하는 단계를 포함하는,
오토 스케일링 벤치마크 방법.
According to claim 1,
Performing the first benchmark,
Changing the first parameter within a predetermined range and performing the first benchmark;
Performing the second benchmark,
Changing the second parameter within a pre-specified range and performing the second benchmark,
Auto scaling benchmark method.
제1 항에 있어서,
상기 복수의 파라미터 각각에 대해 파라미터 순서에 따라 벤치마크를 수행하는 단계를 더 포함하는,
오토 스케일링 벤치마크 방법.
According to claim 1,
Further comprising performing a benchmark according to the parameter order for each of the plurality of parameters,
Auto scaling benchmark method.
제6 항에 있어서,
상기 벤치마크를 수행하는 단계는,
상기 복수의 파라미터 각각에 대해 미리 지정된 횟수만큼 반복 수행하는 단계를 포함하는,
오토 스케일링 벤치마크 방법.
According to claim 6,
The step of performing the benchmark,
Comprising the step of repeatedly performing a predetermined number of times for each of the plurality of parameters,
Auto scaling benchmark method.
제7 항에 있어서,
상기 벤치마크 결과 정보를 제공하는 단계는,
상기 반복 수행하는 단계에 따른 벤치마크 결과의 평균값에 기초하여, 상기 벤치마크 결과 정보를 제공하는 단계를 포함하는,
오토 스케일링 벤치마크 방법.
According to claim 7,
The step of providing the benchmark result information,
Providing the benchmark result information based on the average value of the benchmark results according to the iteratively performing,
Auto scaling benchmark method.
제1 항에 있어서,
상기 입력 정보에 하드웨어 성능 카운터 이벤트가 포함된 경우, 상기 컴퓨팅 장치에 대해 생성된 프로파일링 결과 정보를 제공하는 단계를 더 포함하는,
오토 스케일링 벤치마크 방법.
According to claim 1,
Further comprising providing profiling result information generated for the computing device when the input information includes a hardware performance counter event.
Auto scaling benchmark method.
제9 항에 있어서,
상기 프로파일링 결과 정보를 제공하는 단계는,
Perf 명령어에 기초하여 상기 컴퓨팅 장치에 대해 생성된 프로파일링 결과 정보를 제공하는 단계를 포함하는,
오토 스케일링 벤치마크 방법.
According to claim 9,
Providing the profiling result information,
Providing profiling result information generated for the computing device based on a Perf command,
Auto scaling benchmark method.
제9 항에 있어서,
상기 컴퓨팅 장치는 복수의 컴퓨팅 노드를 포함하고,
상기 프로파일링 결과 정보를 제공하는 단계는,
컴퓨팅 노드 별로 프로파일링 결과 정보를 생성하는 단계; 및
상기 컴퓨팅 노드 별로 생성된 프로파일링 결과 정보를 가공하여, 가공된 프로파일링 결과 정보를 제공하는 단계를 포함하는,
오토 스케일링 벤치마크 방법.
According to claim 9,
The computing device includes a plurality of computing nodes;
Providing the profiling result information,
generating profiling result information for each computing node; and
Processing profiling result information generated for each computing node and providing processed profiling result information,
Auto scaling benchmark method.
제9 항에 있어서,
상기 프로파일링 결과 정보를 제공하는 단계는,
상기 컴퓨팅 장치에 대해 프로파일링 결과 정보를 미리 지정된 횟수만큼 반복하여 생성하는 단계를 포함하는,
오토 스케일링 벤치마크 방법.
According to claim 9,
Providing the profiling result information,
Repetitively generating profiling result information for the computing device a predetermined number of times,
Auto scaling benchmark method.
제12 항에 있어서,
프로파일링 결과 정보의 평균값을 제공하는 단계를 더 포함하는,
오토 스케일링 벤치마크 방법.
According to claim 12,
Further comprising providing an average value of the profiling result information,
Auto scaling benchmark method.
제1 항에 있어서,
제N 파라미터에 대응되는 제N 벤치마크 툴을 이용하여, 상기 컴퓨팅 장치에 대한 제N 벤치마크를 수행하는 단계를 더 포함하고,
상기 벤치마크 결과 정보를 제공하는 단계는,
상기 제N 벤치마크의 결과에 기초하여, 벤치마크 결과 정보를 제공하는 단계를 포함하고,
상기 제N 파라미터는 상기 제1 파라미터 및 상기 제2 파라미터와 상이한 파라미터인,
오토 스케일링 벤치마크 방법.
According to claim 1,
Further comprising performing an N-th benchmark on the computing device using an N-th benchmark tool corresponding to the N-th parameter;
The step of providing the benchmark result information,
Based on the result of the Nth benchmark, providing benchmark result information;
The Nth parameter is a parameter different from the first parameter and the second parameter,
Auto scaling benchmark method.
프로세서에 의해 실행 가능한 컴퓨터 프로그램 명령어들을 포함하는, 컴퓨팅 장치를 벤치마크하기 위한 컴퓨터 프로그램으로서, 상기 컴퓨터 프로그램 명령어들이 컴퓨팅 장치의 프로세서에 의해 실행되는 경우에,
입력 정보에 포함된 복수의 파라미터 중 제1 파라미터에 대응되는 제1 벤치마크 툴을 이용하여, 상기 컴퓨팅 장치에 대한 제1 벤치마크를 수행하는 단계;
상기 제1 파라미터와 상이한 제2 파라미터에 대응되는 제2 벤치마크 툴을 이용하여, 상기 컴퓨팅 장치에 대한 제2 벤치마크를 수행하는 단계; 및
상기 제1 벤치마크 및 상기 제2 벤치마크의 결과에 기초하여, 벤치마크 결과 정보를 제공하는 단계를 포함하는, 동작들을 수행하는 컴퓨터 프로그램이 기록된,
컴퓨터 판독 가능한 기록 매체.
A computer program for benchmarking a computing device comprising computer program instructions executable by a processor, the computer program instructions being executed by a processor of the computing device comprising:
performing a first benchmark on the computing device using a first benchmark tool corresponding to a first parameter among a plurality of parameters included in input information;
performing a second benchmark on the computing device using a second benchmark tool corresponding to a second parameter different from the first parameter; and
Based on the results of the first benchmark and the second benchmark, a computer program performing operations comprising providing benchmark result information is recorded,
A computer-readable recording medium.
프로세서;
네트워크 인터페이스;
메모리; 및
상기 메모리에 로드(load)되고, 상기 프로세서에 의해 실행되는 컴퓨터 프로그램을 포함하되,
상기 컴퓨터 프로그램은,
입력 정보에 포함된 복수의 파라미터 중 제1 파라미터에 대응되는 제1 벤치마크 툴을 이용하여, 컴퓨팅 장치에 대한 제1 벤치마크를 수행하는 인스트럭션(instruction);
상기 제1 파라미터와 상이한 제2 파라미터에 대응되는 제2 벤치마크 툴을 이용하여, 상기 컴퓨팅 장치에 대한 제2 벤치마크를 수행하는 인스트럭션; 및
상기 제1 벤치마크 및 상기 제2 벤치마크의 결과에 기초하여, 벤치마크 결과 정보를 제공하는 인스트럭션을 포함하는,
오토 스케일링 벤치마크 장치.
processor;
network interface;
Memory; and
A computer program loaded into the memory and executed by the processor,
The computer program,
instructions for performing a first benchmark on the computing device by using a first benchmark tool corresponding to a first parameter among a plurality of parameters included in the input information;
instructions for performing a second benchmark on the computing device using a second benchmark tool corresponding to a second parameter different from the first parameter; and
Including instructions for providing benchmark result information based on the results of the first benchmark and the second benchmark,
Auto scaling benchmark device.
제16 항에 있어서,
상기 입력 정보에 하드웨어 성능 카운터 이벤트가 포함된 경우, 상기 컴퓨팅 장치에 대해 생성된 프로파일링 결과 정보를 제공하는 인스트럭션을 더 포함하는,
오토 스케일링 벤치마크 장치.
According to claim 16,
Further comprising an instruction for providing profiling result information generated for the computing device when the input information includes a hardware performance counter event.
Auto scaling benchmark device.
KR1020210013918A 2021-02-01 2021-02-01 Auto-scaling benchmark method and apparatus thereof KR102471867B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210013918A KR102471867B1 (en) 2021-02-01 2021-02-01 Auto-scaling benchmark method and apparatus thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210013918A KR102471867B1 (en) 2021-02-01 2021-02-01 Auto-scaling benchmark method and apparatus thereof

Publications (2)

Publication Number Publication Date
KR20220110918A KR20220110918A (en) 2022-08-09
KR102471867B1 true KR102471867B1 (en) 2022-11-29

Family

ID=82844647

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210013918A KR102471867B1 (en) 2021-02-01 2021-02-01 Auto-scaling benchmark method and apparatus thereof

Country Status (1)

Country Link
KR (1) KR102471867B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120131591A1 (en) 2010-08-24 2012-05-24 Jay Moorthi Method and apparatus for clearing cloud compute demand
US20200344136A1 (en) 2017-04-11 2020-10-29 Nerdio Inc. Scalable, standardized i.t. deployment platform

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120131591A1 (en) 2010-08-24 2012-05-24 Jay Moorthi Method and apparatus for clearing cloud compute demand
US20200344136A1 (en) 2017-04-11 2020-10-29 Nerdio Inc. Scalable, standardized i.t. deployment platform

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
"슈퍼컴퓨터 최적 실행 지원을 위한 하드웨어 성능 카운터 기반 프로파일링 기법의 확장성 연구", 최지은 외 3명, 한국정보처리학회, 정보처리학회논문지 컴퓨터 및 통신시스템 9(10), 2020.10.31.
"자체개발 초고성능 컴퓨팅 시스템 및 기타 주요 컴퓨티 시스템 벤치마크 성능 분석", 한국과학기술정보연구원, 2020.04.06.
"차세대 매니코어 프로세서 기반 성능 모니터링 이벤트를 활용한 응용 특성 분석 기법", 최지은 외 2명, 한국정보과학회 2017 한국소프트웨어종합학술대회 논문집, 2017.12.31.
"확장형 벤치마크 자동화 도구를 이용한 고성능컴퓨팅시스템 성능 평가", 노승우 외 3명, 한국정보과학회, 정보과학회 컴퓨팅의 실제 논문지 26(2), 2020.02.28.

Also Published As

Publication number Publication date
KR20220110918A (en) 2022-08-09

Similar Documents

Publication Publication Date Title
EP3285170B1 (en) Application profiling job management system, program, and method
US10997052B2 (en) Methods to associate workloads to optimal system settings based upon statistical models
US11665064B2 (en) Utilizing machine learning to reduce cloud instances in a cloud computing environment
JP2012525641A (en) Application efficiency engine
WO2018066040A1 (en) Management computer and test environment determination method
JP2019534523A (en) Test case generator built in data integration workflow editor
US10592392B2 (en) System and method for predictive performance analysis via dynamic benchmark generation
US10754744B2 (en) Method of estimating program speed-up in highly parallel architectures using static analysis
JP2020194524A (en) Method, apparatus, device, and storage medium for managing access request
JP2018173883A (en) Control device, control program, control system, and control method
CN111666217A (en) Method and apparatus for testing code
Trubiani et al. Performance issues? Hey DevOps, mind the uncertainty
KR101212496B1 (en) Method of representing usage of monitoring resource, computing apparatus for performing the same and record medium recording program for implementing the method
KR102471867B1 (en) Auto-scaling benchmark method and apparatus thereof
US20180314774A1 (en) System Performance Measurement of Stochastic Workloads
JP4870956B2 (en) Embedded program generation method, embedded program development system, and information table section
KR20200132460A (en) Method and system for program analysis
US20220019420A1 (en) System, method, and server for optimizing deployment of containerized applications
Hauck et al. Towards Performance Prediction for Cloud Computing Environments based on Goal-oriented Measurements.
JP5525658B2 (en) Computer, resource usage calculation method, and resource usage calculation program
CN111861012A (en) Test task execution time prediction method and optimal execution node selection method
KR20220029004A (en) Cloud-based deep learning task execution time prediction system and method
JP2016062300A (en) Source code generation device, source code generation method, and source code generation program
Iordache et al. Heterogeneous resource selection for arbitrary HPC applications in the cloud
JP6322968B2 (en) Information processing apparatus, information processing method, and program

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant