KR101522881B1 - System and method for distributed compiling - Google Patents
System and method for distributed compiling Download PDFInfo
- Publication number
- KR101522881B1 KR101522881B1 KR1020080055345A KR20080055345A KR101522881B1 KR 101522881 B1 KR101522881 B1 KR 101522881B1 KR 1020080055345 A KR1020080055345 A KR 1020080055345A KR 20080055345 A KR20080055345 A KR 20080055345A KR 101522881 B1 KR101522881 B1 KR 101522881B1
- Authority
- KR
- South Korea
- Prior art keywords
- header file
- file
- remote computer
- cache
- directory
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
- G06F8/451—Code distribution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
본 발명은 소스 파일의 공유와 헤더 파일 캐싱을 기반으로 하는 분산 컴파일 시스템 및 방법에 관한 것이다. 본 발명에 따른 분산 컴파일 방법은, 서버 컴퓨터와 적어도 하나의 원격 컴퓨터가 소스 파일이 저장된 디렉터리를 공유 디렉터리로 사용할 수 있게 연결하고, 원격 컴퓨터에서 작업 디렉터리를 연결된 공유 디렉터리로 변경한다. 그리고, 원격 컴퓨터에서 소스 파일 중 할당된 파일에 대하여 분산 컴파일을 수행하여 공유 디렉터리에 목적 파일을 생성한다. 이에 의해, 서버 컴퓨터 및 원격 컴퓨터의 작업 부담을 최소화하면서 분산 컴파일을 수행할 수 있으며, 원격 컴퓨터의 수에 따른 성능 향상의 폭을 일정 수준 유지시킬 수 있다.
분산 컴파일, H-캐시, 전처리기
The present invention relates to a distributed compilation system and method based on sharing of source files and header file caching. In the distributed compilation method according to the present invention, a server computer and at least one remote computer connect a directory in which a source file is stored as a shared directory, and change a working directory from a remote computer to a connected directory. Then, distributed files are created in the shared directory by performing distributed compilation on the allocated files among the source files on the remote computer. Accordingly, it is possible to perform distributed compilation while minimizing work load on the server computer and the remote computer, and to maintain a certain level of performance improvement according to the number of remote computers.
Distributed compilation, H-cache, preprocessor
Description
본 발명은 분산 컴파일 시스템 및 방법에 관한 것으로, 더욱 상세하게는 소스 파일 공유와 헤더 파일 캐싱을 기반으로 하는 분산 컴파일 시스템 및 방법에 관한 것이다.The present invention relates to a distributed compilation system and method, and more particularly, to a distributed compilation system and method based on source file sharing and header file caching.
일반적으로 분산 컴파일 시스템은, 소스 파일(source file)을 소유하는 하나의 서버 컴퓨터가 네트워크에 연결된 원격 컴퓨터들에게 소스 파일을 전처리한(preprocessing) 결과 파일을 전송하여 컴파일을 수행토록 하는 구조이거나, 혹은 서버 컴퓨터가 컴파일에 필요한 소스 파일 및 헤더 파일들을 원격 컴퓨터들에게 전달하여 전처리 및 컴파일을 수행토록 하는 구조로 이루어져 있다.In general, a distributed compilation system is a structure in which a server computer that owns a source file performs a compilation by transmitting a preprocessing result file to remote computers connected to the network, or The server computer sends the source files and header files needed for compilation to remote computers for preprocessing and compiling.
첫 번째 구조의 경우, 간단한 구성의 컴파일 작업시 성능 향상을 얻을 수 있는 기회가 있다. 그러나, 복잡한 구성의 컴파일 작업시, 전처리 시간이 많이 소요되고, 서버 컴퓨터에서 다수의 전처리 작업을 동시에 처리하게 되어 멀티 태스킹 오버헤드가 커지게 되어 암달의 법칙(Amdhal's law)에 따른 병렬화 기회가 적어져 성능 향상을 얻기 어렵다. For the first structure, there is a chance to get a performance boost in a simple configuration compile. However, in the case of complicated configuration compilation, it takes a lot of preprocessing time and the multitasking overhead becomes large because the server computer handles a lot of preprocessing tasks simultaneously, and the chance of parallelism according to Amdhal's law is decreased It is difficult to obtain a performance improvement.
또한, 두 번째 구조의 경우, 첫 번째 구조의 단점을 최소화하여 작업에 참여 하는 원격 컴퓨터의 수가 늘어날수록 성능 향상을 얻을 수 있는 이점이 있다. 그러나, 소스 및 헤더 파일을 전송하기 위해 네트워크 오버헤드가 크며, 이를 해결하기 위해 원격 컴퓨터도 파일 전송에 참여하는 경우가 있어 작업을 즉시 처리하기 힘든 경우가 발생할 수 있다.Also, in the case of the second structure, there is an advantage that the disadvantage of the first structure is minimized and the performance increases as the number of remote computers participating in the work increases. However, the network overhead is large in order to transmit the source and header files. In order to solve this problem, the remote computer may participate in the file transfer.
따라서, 본 발명의 목적은, 컴파일에 참여하는 컴퓨터들의 작업 부담을 최소화하면서 분산 컴파일을 수행할 수 있도록 하는 분산 컴파일 시스템 및 방법을 제공함에 있다.Accordingly, it is an object of the present invention to provide a distributed compilation system and method that can perform distributed compilation while minimizing workload of computers participating in compilation.
상기 목적을 달성하기 위한 본 발명에 따른 분산 컴파일 방법은, 서버 컴퓨터와 적어도 하나의 원격 컴퓨터가 소스 파일이 저장된 디렉터리를 공유 디렉터리로 사용할 수 있도록 연결하는 단계, 상기 원격 컴퓨터에서 상기 공유 디렉터리를 작업 디렉터리로 변경하는 단계, 및 상기 원격 컴퓨터에서 상기 소스 파일 중 할당된 파일에 대하여 분산 컴파일을 수행하여 상기 공유 디렉터리에 목적 파일을 생성하는 단계를 포함한다.According to an aspect of the present invention, there is provided a distributed compilation method comprising: connecting a server computer and at least one remote computer so that a directory in which a source file is stored can be used as a shared directory; And performing distributed compilation on a file allocated among the source files in the remote computer to generate an object file in the shared directory.
한편, 본 발명에 따른 분산 컴파일 시스템은, 소스 파일을 저장하는 서버 컴퓨터, 및 상기 소스 파일이 저장된 디렉터리를 공유 디렉터리로 사용할 수 있도록 연결되어, 상기 공유 디렉터리를 작업 디렉터리로 변경한 후, 상기 소스 파일 중 할당된 파일에 대하여 분산 컴파일을 수행하여 상기 공유 디렉터리에 목적 파일을 생성하는 적어도 하나의 원격 컴퓨터를 포함한다. Meanwhile, a distributed compilation system according to the present invention includes a server computer that stores a source file, and a directory that is used to store the source file as a shared directory, changes the shared directory to a working directory, And at least one remote computer for performing distributed compilation on the allocated files to generate an object file in the shared directory.
상기 목적을 달성하기 위하여 본 발명에서는, 상기 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.In order to attain the above object, the present invention provides a computer-readable recording medium having recorded thereon a program for causing a computer to execute the method.
본 발명에 따르면, 서버 컴퓨터 및 원격 컴퓨터들이 소스 파일이 저장된 디렉터리를 공유하도록 연결되어, 상위 네트워크 계층에서 서버 컴퓨터와 원격 컴퓨터들은 파일 전송에 관여하지 않게 된다. 또한, 원격 컴퓨터들은 헤더 파일 캐싱을 사용하여, 헤더 파일 등을 전송하기 위한 네트워크 오버헤드를 감소시킨다. 이에 따라, 컴파일에 참여하는 컴퓨터들의 작업 부담을 최소화하면서 분산 컴파일을 수행할 수 있다. 또한, 원격 컴퓨터의 수에 따른 성능 향상의 폭을 일정 수준 유지시킬 수 있으므로, 다수의 컴퓨터를 사용하는 분산 컴파일 환경에 최적화되어 동작할 수 있다.According to the present invention, the server computer and the remote computers are connected to share a directory in which the source files are stored, so that the server computer and remote computers in the upper network layer are not involved in file transfer. In addition, remote computers use header file caching to reduce network overhead for sending header files and the like. Accordingly, distributed compilation can be performed while minimizing the workload of the computers participating in the compilation. In addition, since the performance improvement according to the number of remote computers can be maintained at a certain level, it can be optimized and operated in a distributed compilation environment using a plurality of computers.
이하에서는 도면을 참조하여 본 발명을 보다 상세하게 설명한다. Hereinafter, the present invention will be described in detail with reference to the drawings.
본 발명에 따른 분산 컴파일 시스템은, 서버 컴퓨터가 소유하고 있는 소스 파일들을 네트워크상에 연결된 다른 원격 컴퓨터들이 공유하여, 원격 컴퓨터들은 공유된 디렉터리에서 각각 컴파일 작업을 수행토록 한다. 이와 같은 구성에 의해, 상위 네트워크 계층에서의 파일 전송이 없으므로, 서버 컴퓨터 및 연결된 원격 컴퓨터들이 파일 전송을 중심으로 한 네트워크 접근에 대해 관여할 필요가 없게 되어, 각 컴퓨터들에게 더 많은 기회를 제공할 수 있게 된다. In the distributed compilation system according to the present invention, source files owned by a server computer are shared by other remote computers connected to the network, and remote computers execute compile operations in shared directories. With this arrangement, there is no file transfer at the higher network layer, so that the server computer and the connected remote computers do not have to engage in network access based on file transfer, thereby providing more opportunities for each computer .
도 1은 본 발명의 일실시예에 따른 분산 컴파일 시스템의 구성을 나타낸 도면이다. 도 1을 참조하면, 본 분산 컴파일 시스템은, 하나의 서버 컴퓨터(100)와 제1 내지 제n 원격 컴퓨터(200a ~ 200n)로 구성되며, 서버 컴퓨터(100)와 제1 내지 제n 원격 컴퓨터(200a ~ 200n)는 네트워크를 통해 연결된다. 1 is a block diagram of a distributed compilation system according to an embodiment of the present invention. 1, the distributed distributed compilation system includes a
서버 컴퓨터(100)는 작업을 수행할 제1 내지 제n 원격 컴퓨터(200a ~ 200n)를 선택한 후, 제1 내지 제n 원격 컴퓨터(200a ~ 200n)로 소스 파일이 저장된 소스 디렉터리를 공유 디렉터리로 접근할 수 있도록 하는 공유 디렉터리 접근 권한정보, 컴파일 명령어, 및 컴파일을 수행할 디렉터리 정보 등을 전달한다. 제1 내지 제n 원격 컴퓨터(200a ~ 200n)는 서버 컴퓨터(100)로부터 제공받은 정보를 바탕으로 서버 컴퓨터(100)의 소스 디렉터리를 공유하여 공유 디렉터리로 설정한다. 공유 디렉터리의 설정에는 네트워크 드라이브 방식을 사용할 수 있으며, 기타 다른 방법을 사용하여 소스 파일을 공유할 수도 있다. The
제1 내지 제n 원격 컴퓨터(200a ~ 200n)는 설정한 공유 디렉터리에서 전처리 및 컴파일 작업을 수행하게 된다. 이때, 전처리 작업의 빠른 처리를 위해 제1 내지 제n 원격 컴퓨터(200a ~ 200n) 내에 각각 요청되었던 헤더 파일들을 저장하는 H-캐시를 포함하여 헤더 파일 캐싱을 사용함으로써, 공유 디렉터리에 대한 접근을 최소화한다. The first to nth
즉, 공유 디렉터리에 연결되어 소스 파일을 공유하는 경우, 제1 내지 제n 원격 컴퓨터(200a ~ 200n)는 전처리 과정에서 공유 디렉터리에 있는 헤더 파일을 요구하게 되는데, 범용 전처리기(preprocessor)의 기본 동작에서는 사용자가 설정한 모든 검색경로를 전처리기가 원하는 파일을 발견할 때까지 탐색하게 되므로 필요 이상으로 공유 디렉터리를 접근하게 된다. 따라서, 상위 계층에서의 네트워크 오버헤드가 없다고 하더라도 하위 계층에서는 네트워크를 사용하고 있는 상태가 된다. 이에 따라, 불필요하고 과도한 공유 디렉터리의 접근은 전처리 속도를 현저히 떨어뜨리고 전처리 속도의 저하는 전체 컴파일 시간의 저하에 직결되므로 이를 해결해야 할 필요가 있다. That is, when the source files are shared with the shared directory, the first to nth
이러한 속도 저하를 해결하기 위해, 제1 내지 제n 원격 컴퓨터(200a ~ 200n)의 각 지역 하드 디스크에 제1 내지 제n 원격 컴퓨터(200a ~ 200n)가 컴파일을 위해 서버 컴퓨터(100)의 공유 디렉터리로부터 읽어 들였던 헤더 파일들을 복사하여 공유 디렉터리의 접근을 최소화하는 헤더 파일 캐시(H-cache) 구조를 사용한다. 이 구조는 동일한 프로젝트내 다수의 소스 파일을 컴파일하는 과정에서 각 과정은 일반적으로 공통의 헤더 파일을 요구하는 특성을 활용한 것이다. 즉, 컴파일 과정이 진행될수록 원격 컴퓨터가 요구했던 헤더 파일들을 지역 하드 디스크 드라이브에 저장한 후, 저장된 헤더 파일들에 접근함으로써 공유 디렉터리 대신 지역 하드 디스크에 접근하도록 하여, 제1 내지 제n 원격 컴퓨터(200a ~ 200n)은 각 컴파일 작업이 공유 디렉터리에서의 작업이 아닌 마치 지역 하드 디스크에서 이루어지는 것과 같은 효과를 나타내게 한다.In order to solve such a speed reduction, the first to nth
제1 내지 제n 원격 컴퓨터(200a ~ 200n)가 컴파일 과정을 통해 생성된 목적 파일들은 공유 디렉터리에 저장되어, 서버 컴퓨터(100)가 필요로 할 경우 링크 및 기타 작업을 수행할 수 있도록 한다. The object files generated through the compiling process of the first to nth
도 2는 제1 원격 컴퓨터의 구성을 나타낸 도면이다. 나머지 제2 내지 제n 원격 컴퓨터들도 제1 원격 컴퓨터와 동일한 구성을 갖는다. 도 2를 참조하면, 제1 원격 컴퓨터(200a)는 범용 전처리기와는 달리 수정된 전처리기(210a)를 내장하고 있다. 전처리기(210a)는 전처리 작업을 위해 공유 디렉터리로부터 소스 파일(.c)을 제공받으며, 공유 디렉터리에서 전처리 작업을 수행하는 도중에 H-캐시를 사용한다. 제1 원격 컴퓨터(200a)는 H-캐시 활용을 위해 RFHT(Requested header file table)(220a)와 H-cache(221a), 그리고 H-캐시 해시를 구비한다. 도 2에서는 H-캐시 해시가 전처리기(210a) 내에 구비된 것으로 도시하고 있으나, H-캐시 해시는 전처리기(210a)와 별도로 구비될 수도 있다. 2 is a diagram showing a configuration of a first remote computer. The remaining second to nth remote computers also have the same configuration as the first remote computer. Referring to FIG. 2, the first
RFHT(220a)는 전처리기(210a)로부터 요청되었던 헤더 파일의 이름, 그 헤더 파일의 실제 위치에 대한 절대 경로, 및 캐시로 저장될 위치의 절대 경로 등을 저장한다. H-캐시 해시는 RHFT(220a)에 저장된 데이터의 고속 검색이 가능하도록, 헤더 파일이 실제 위치한 절대 경로(파일 이름 포함)를 키(key)로 가지고, 그 헤더 파일이 저장된 캐시 디렉터리의 절대 경로를 데이터로 가진다. The RFHT 220a stores the name of the header file requested from the
이와 같은 구성에 의해, 소스 파일로부터 필요한 헤더 파일들에 대한 정보를 얻어낸 후, 전처리기(210a)가 파일 검색 루틴에 들어오면, RFHT(220a)내에 그 헤더파일이 존재하는지에 대한 여부를 확인하여, H-캐시 디렉터리(221a)에서 헤더 파일을 제공받거나, 그렇지 않을 경우 공유 디렉터리에 직접 접근하여 헤더 파일을 제공받는다. 공유 디렉터리에 접근하여 헤더 파일을 제공받을 경우, 이 헤더 파일의 정보는 RFHT(220a)와 H-캐시 해시에 동시에 갱신되며, 그 헤더 파일은 H-캐시 디렉 터리(221a)에 복사되어 저장되어, 후에 동일한 헤더 파일의 요청이 들어왔을 때 공유 디렉터리가 아닌 H-캐시 디렉터리(221a)로부터 헤더 파일을 제공받게 된다. With such a configuration, after obtaining information on necessary header files from the source file, if the
이러한 과정을 거쳐 전처리 된 파일이 생성되면, 제1 원격 컴퓨터(200a) 내에 탑재된 컴파일러(230a)가 전처리된 파일을 컴파일하여 목적 파일을 생성한다. 이 과정은 모두 공유 디렉터리를 작업 디렉터리로 설정한 상태에서 진행되기 때문에 사용자나 분산 컴파일러가 별다른 설정을 하지 않더라도 생성된 목적 파일은 공유 디렉터리 내에 저장된다. 따라서, 이 위치는 실제 서버 컴퓨터(100)가 컴파일을 진행하여 목적 파일이 생성되는 위치와 같다.When the preprocessed file is generated through the above process, the compiler 230a installed in the first
도 3 내지 도 5는 본 발명의 일실시예에 따른 분산 컴파일 시스템의 동작방법의 설명에 제공되는 흐름도이다. 먼저, 도 3은 서버 컴퓨터(100)에서 수행되는 과정을 나타낸다. 이하, 설명의 편의상, 서버 컴퓨터(100)와 제1 원격 컴퓨터(200a) 간의 동작만을 설명하지만, 나머지 제2 내지 제n 원격 컴퓨터들에 대해서도 동일한 과정이 수행된다.3 to 5 are flowcharts provided in the description of an operation method of a distributed compilation system according to an embodiment of the present invention. First, FIG. 3 shows a process performed by the
도 3을 참조하면, 서버 컴퓨터(100)는 컴파일 작업 시작과 동시에 제1 원격 컴퓨터(200a)와 네트워크로 연결된다(S300). 이 연결을 통해 공유 디렉터리 접근 권한정보, 작업 디렉터리 정보, 및 컴파일 명령어 등을 전송한다(S305). 제1 원격 컴퓨터(200a)는 이러한 정보를 가공하여 공유 디렉터리에 연결하고, 작업 경로를 공유 디렉터리로 변경한 후, 그 성공 여부에 대한 신호를 서버 컴퓨터(100)로 전달한다. 만일, 제1 원격 컴퓨터(200a)로부터 공유 디렉토리 접근 성공신호인 NDRS(Network Drive Request Success) 신호를 수신한 경우(S310), 서버 컴퓨 터(100)는 제1 원격 컴퓨터(200a)로부터 컴파일 종료 신호 수신을 기다린다(S315). 그러나, 공유 디렉토리 연결의 실패를 나타내는 NDRF(Network Drive Request Failed) 신호를 수신한 경우에는 서버 컴퓨터(100)는 자체에서 실패한 컴파일 작업을 수행한다(S325). Referring to FIG. 3, the
제1 원격 컴퓨터(200a)는 전처리 및 컴파일 작업을 거친 후 작업 성공 여부를 다시 한번 서버 컴퓨터(100)에 전송한다. 작업이 성공했을 경우, 서버 컴퓨터(100)는 다음 컴파일 작업을 위해 현재 프로세스를 종료하고(S320), 만약 원격 컴퓨터(200a)에서 컴파일 작업이 실패했을 경우는 서버 컴퓨터(100)에서 실패한 컴파일 작업을 재수행 한 후 프로세스를 종료시킨다(S325).After the first
도 4는 원격 컴퓨터에서 수행되는 분산 컴파일 과정을 나타낸다. 도 4를 참조하면, 제1 원격 컴퓨터(200a)는 서버 컴퓨터(100)와 네트워크로 연결되고(S300), 이 연결을 통해 서버 컴퓨터(100)로부터 공유 디렉터리 접근 권한정보, 작업 디렉터리 정보 그리고 컴파일 명령어를 전송받는다(S405). 제1 원격 컴퓨터(200a)는 전송받은 정보 중에서 공유 디렉터리 접근 권한정보를 이용하여 서버 컴퓨터(100)의 소스 디렉터리를 공유 디렉터리로 하여 네트워크 드라이브로써 연결하고, 작업 경로 변경을 시도한 후(S410), 성공 여부에 대한 신호를 서버 컴퓨터(100)로 전달한다(S415). 즉, 연결이 완료되어 컴파일 디렉터리로 이동하면 NDRS(Network Drive Request Success) 신호를 서버 컴퓨터(100)에 전달하고, 연결이 실패하면 서버 컴퓨터(100)에게 NDRF(Network Drive Request Failed) 신호를 전달한다. 4 shows a distributed compilation process performed on a remote computer. 4, the first
공유 디렉터리에 연결을 완료한 후, 제1 원격 컴퓨터(200a)는 전처리 작업을 수행한다(S425). 전처리 작업 중 H-캐시를 사용되며, 전처리 작업이 완료되면 제1 원격 컴퓨터(200a)는 컴파일 작업을 수행한다(S430). 컴파일 작업을 통해 생성된 목적 파일(object file)은 공유 디렉터리에 그대로 저장이 된다. 그리고, 작업 성공 여부를 다시 한번 서버 컴퓨터(100)에 전송한다(S435). 작업이 성공한 경우, 제1 원격 컴퓨터(200a)는 서버 컴퓨터(100)에게 작업 완료를 뜻하는 DONE 신호를 보내고, 서버 컴퓨터(100)는 DONE 신호를 받은 후 다음 컴파일 작업을 수행한다. After completing the connection to the shared directory, the first
도 5는 원격 컴퓨터에서 H-캐시의 동작방법의 설명에 제공되는 순서도이다. 도 5를 참조하면, 전처리 과정에서 헤더 파일에 대한 읽기 요청이 있는 경우(S500), 전처리기(210a)는 요청한 헤더 파일 이름과 검색해야 할 전체 경로를 결합하여 절대 경로 리스트를 생성한다(S505). 전처리기(210a)는 생성한 절대 경로 리스트의 데이터 모두를 H-캐시 해시의 키와 비교하여, RHFT(220a)내에 해당 헤더 파일 정보가 있는지를 검색한다(S510).5 is a flowchart provided in the description of a method of operating the H-cache in a remote computer. 5, if there is a read request for a header file in the preprocessing step (S500), the
검색 결과, 요청된 헤더 파일에 대한 경로가 RHFT(220a)내에 있으면, 전처리기(210a)는 파일 검색 루틴을 H-캐시 모드로 전환한다(S520). 그리고, 파일 검색 루틴으로 진입한다(S525). 파일 검색루틴으로 진입하여 파일 검색을 수행하는 과정에서, 전처리기(210a)는 헤더 파일을 검색할 절대 경로를 H-캐시 해시의 키 값으로 사용된 절대 경로와 비교한다(S530). 비교 결과 두 경로가 다르면 검색 경로 리스트의 데이터 갱신 과정은 수행하지 않은 채 실제 공유 디렉터리에 대한 검색 과정을 건너뛰게 한다. 따라서, 이러한 경우 검색 루틴 과정에서 공유 디렉터리에는 접근하지 않는다. 그러나 비교 결과 두 경로가 일치하면, 공유 디렉터리가 아 닌 지역 H-캐시 디렉터리(221a)에서 해당 헤더 파일을 읽어오게 한다(S540). If the search result shows that the path to the requested header file is within the
S515 단계에서, 만약 절대 경로 리스트를 H-캐시 해시에 대입한 결과 RFHT(220a)에 해당 파일의 정보가 존재하지 않는다면, 일반 검색모드로 전환하ㅇ여(S545), 일반 파일 검색 루틴으로 진입한다(S550). 일반 파일 검색 루틴으로 진입하여 파일 검색을 수행한 결과, 요구한 파일 검색에 성공한 경우, 전처리기(210a)는 검색한 헤더 파일의 이름, 실제 위치의 절대 경로, 캐시로 저장될 경로 등을 포함하는 검색한 헤더 파일에 대한 정보를 RHFT(220a) 및 H-캐시 디렉터리(221a) 저장한다(S560). In step S515, if the information of the corresponding file does not exist in the
즉, 검색한 헤더 파일을 H-캐시에 복사하여 다음 전처리 작업에서 지역 하드 디스크에서 헤더 파일을 찾아낼 수 있도록 한다. 이때, 동시에 검색한 헤더 파일에 대한 정보가 H-캐시 해시에도 저장하게 되는데, 저장되는 헤더 파일의 키는 전술한 바와 같이 헤더 파일 실제 위치의 절대 경로를 사용한다. 만일, 요구한 파일의 검색에 실패한 경우에는 검색 실패 및 컴파일 에러를 발생시킨다(S565).That is, the retrieved header file is copied to the H-cache so that the next preprocessing operation can find the header file from the local hard disk. At this time, information on the searched header file is also stored in the H-cache hash. The key of the header file to be stored uses the absolute path of the actual location of the header file, as described above. If the search of the requested file fails, a search failure and a compile error are generated (S565).
이와 같은 과정을 통해 전처리기(210a)는 공유 디렉터리에 대한 접근을 최소화하는 대신 지역 H-캐시 디렉터리(221a)로부터 헤더 파일을 읽어 올 수 있게 된다. 이러한 구성을 통해 두 번째 컴파일 작업부터 소스파일을 제외한 헤더 파일들에 대한 접근을 지역 캐시 디렉터리로 전환할 수 있어, 공유 디렉터리를 이용한 분산 컴파일 작업의 단점을 최소화할 수 있다.Through this process, the
전처리 과정이 끝나면 원격 컴퓨터는 전처리된 파일에 대한 컴파일 작업을 수행한다. 이 컴파일 작업은 어떠한 컴파일러를 사용하는 경우에도 동일하게 수행 되므로 H-캐시를 사용하는 전처리기가 컴파일러에 종속적으로 동작하는 경우는 없으며, 따라서 다양한 목적 기계의 컴파일러에 쉽게 적용될 수 있다.At the end of the preprocessing process, the remote computer compiles the preprocessed files. Since this compilation is performed in the same way with any compiler, the preprocessor using the H-cache does not depend on the compiler, so it can be easily applied to the compiler of various purpose machines.
도 6 내지 도 10은 본 발명의 일실시예에 따른 분산 컴파일 방법의 성능을 시뮬레이션한 결과를 나타낸 그래프이다. 먼저, 도 6은 H-캐시를 사용하지 않은 경우 분산 컴파일 성능을 나타낸 것이다. 도 6에서 'Local'로 표시한 항목은 일반 컴파일 시간을 나타내고, 'remote'는 분산 컴파일을 수행을 위해 연결된 컴퓨터를 의미한다.6 to 10 are graphs illustrating simulation results of performance of the distributed compilation method according to an embodiment of the present invention. First, FIG. 6 shows the distributed compilation performance when the H-cache is not used. In FIG. 6, 'Local' denotes a general compile time, and 'remote' denotes a computer connected to perform distributed compilation.
도 7 및 도 8은 H-캐시를 사용한 경우 분산 컴파일 방법의 성능을 나타낸 그래프이다. 도 7 및 도 8에서는, 일반 컴파일 시간을 '1'로 놓고, 각각의 구성에 따른 성능 향상도를 표시하고 있다. 도 7 및 도 8에 도시한 바와 같이, H-캐시를 사용한 경우 분산 컴파일 수행을 위해 연결된 컴퓨터의 수가 증가함에 따라 성능 향상의 폭도 일정하게 증가함을 알 수 있다. 7 and 8 are graphs illustrating performance of the distributed compilation method when the H-cache is used. In FIGS. 7 and 8, the general compile time is set to '1', and the degree of performance improvement according to each configuration is shown. As shown in FIGS. 7 and 8, when the number of computers connected to the distributed compilation is increased, the performance of the H-cache increases.
도 9는 H-캐시 사용시 전처리 시간 속도 향상 그래프이다. 도 9에서 'NDCD'로 표시한 항목이 H-캐시가 없는 경우의 속도로써 '1'로 표준화하여 나타내고 있다. 그리고, 'NDCD with H-cache'로 나타낸 항목이 H-캐시가 있는 경우로, H-캐시가 없는 경우보다 속도가 향상됨을 알 수 있다.FIG. 9 is a graph illustrating a preprocessing time rate improvement when the H-cache is used. In FIG. 9, the item denoted by 'NDCD' is normalized to '1' as the speed when there is no H-cache. In addition, if the item indicated by 'NDCD with H-cache' has H-cache, it can be seen that the speed is improved compared to the case without H-cache.
도 10은 전체 컴파일 시간에서 H-캐시를 처리하는 시간의 비율을 나타낸 그래프이다. 즉, 전체 컴파일 시간에서 전처리 과정, 순수 컴파일 과정, 및 캐싱 과정이 차지하는 비율을 나타내고 있다. 도 10에 도시한 바와 같이, 전체 컴파일 시간에서 H-캐시를 처리하는데 소요되는 캐싱 과정의 소요 시간에 대한 비율은 매 우 작은 것을 알 수 있다. 10 is a graph showing a ratio of time for processing the H-cache at the entire compile time. That is, the ratio of the preprocessing process, the pure compilation process, and the caching process in the total compile time is shown. As shown in FIG. 10, the ratio of the time required for the caching process for processing the H-cache at the entire compile time is very small.
이와 같이, 본 발명에 따른 분산 컴파일 방법은, H-캐시의 사용에 의해 컴파일 성능이 증가한다. 또한, 일반적인 분산 컴파일 방법은 상위 계층에서 소켓을 통해 전처리된 파일을 전송하거나 컴파일에 필요한 소스 및 헤더 파일을 전송함으로써 네트워크 사용에 따른 부하가 크고 서버 컴퓨터에게 작업 부담을 주어 분산 컴파일에 참여하는 컴퓨터의 수가 늘어날 수록 성능 향상의 폭이 적어지나, 본 발명에 따른 분산 컴파일 방법에서는 사용되는 원격 컴퓨터 개수의 증가에 대응하는 성능 향상의 폭도 일정하게 증가하는 결과를 보여준다. As described above, the distributed compilation method according to the present invention increases the compilation performance by using the H-cache. In addition, a general distributed compilation method is a method in which a higher layer transmits a preprocessed file through a socket, or transmits a source and a header file necessary for compilation, thereby causing a heavy load on the network and imposing a burden on the server computer, As the number of remote computers increases, the performance improvement is less. However, in the distributed compiling method according to the present invention, the increase in the performance improvement corresponding to the increase in the number of remote computers used is also constant.
한편, 본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 인터넷을 통한 전송 등과 같은 캐리어 웨이브의 형태로 구현되는 것도 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.The present invention can also be embodied as computer-readable codes on a computer-readable recording medium. A computer-readable recording medium includes all kinds of recording apparatuses in which data that can be read by a computer system is stored. Examples of the computer-readable recording medium include a ROM, a RAM, a CD-ROM, a magnetic tape, a floppy disk, an optical data storage device, and the like, and may be implemented in the form of a carrier wave such as transmission over the Internet. In addition, the computer-readable recording medium may be distributed over network-connected computer systems so that computer readable codes can be stored and executed in a distributed manner.
또한, 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments, but, on the contrary, It will be understood by those skilled in the art that various changes in form and detail may be made therein without departing from the spirit and scope of the present invention.
도 1은 본 발명의 일실시예에 따른 분산 컴파일 시스템의 구성을 나타낸 도면,1 is a block diagram of a distributed compilation system according to an embodiment of the present invention;
도 2는 원격 컴퓨터의 구성을 나타낸 도면.2 shows a configuration of a remote computer.
도 3 내지 도 5는 본 발명의 일실시예에 따른 분산 컴파일 시스템의 동작방법에 대한 설명에 제공되는 흐름도, FIG. 3 is a flowchart illustrating a method of operating a distributed compilation system according to an embodiment of the present invention. FIG.
도 5는 원격 컴퓨터에서 H-캐시의 동작방법에 대한 설명에 제공되는 흐름도, 그리고.5 is a flow chart provided in the description of how the H-cache operates in a remote computer, and Fig.
도 6 내지 도 10은 본 발명의 일실시예에 따른 분산 컴파일 방법의 성능을 시뮬레이션한 결과를 나타낸 그래프이다.6 to 10 are graphs illustrating simulation results of performance of the distributed compilation method according to an embodiment of the present invention.
* 도면의 주요 부분에 대한 부호의 설명 *Description of the Related Art [0002]
100 : 서버 컴퓨터 200a ~ 200n : 원격 컴퓨터 100:
Claims (12)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080055345A KR101522881B1 (en) | 2008-06-12 | 2008-06-12 | System and method for distributed compiling |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080055345A KR101522881B1 (en) | 2008-06-12 | 2008-06-12 | System and method for distributed compiling |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20090129203A KR20090129203A (en) | 2009-12-16 |
KR101522881B1 true KR101522881B1 (en) | 2015-05-26 |
Family
ID=41689323
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020080055345A KR101522881B1 (en) | 2008-06-12 | 2008-06-12 | System and method for distributed compiling |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101522881B1 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110489850A (en) * | 2019-08-13 | 2019-11-22 | 东莞市纮萦服饰有限公司 | A kind of flower pattern Compilation Method |
KR102193822B1 (en) * | 2020-09-24 | 2020-12-22 | 넷마블 주식회사 | Distributed compile system implementing blockchain rewards |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060095091A (en) * | 2005-02-25 | 2006-08-30 | 삼성전자주식회사 | Improved compiling method and apparatus |
KR20060110733A (en) * | 2003-08-21 | 2006-10-25 | 마이크로소프트 코포레이션 | System and methods for synchronizing computer systems through an intermediary file system share or device |
KR20060121074A (en) * | 2005-05-23 | 2006-11-28 | (주)주빅스테크놀러지 | Hybrid peer to peer network intelligent distributed compiler system and method thereof, and computer readable recording medium on which a program therefor is recorded |
KR20070027093A (en) * | 2005-08-29 | 2007-03-09 | 삼성전자주식회사 | Compiling method using the peer to peer file sharing |
-
2008
- 2008-06-12 KR KR1020080055345A patent/KR101522881B1/en not_active IP Right Cessation
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060110733A (en) * | 2003-08-21 | 2006-10-25 | 마이크로소프트 코포레이션 | System and methods for synchronizing computer systems through an intermediary file system share or device |
KR20060095091A (en) * | 2005-02-25 | 2006-08-30 | 삼성전자주식회사 | Improved compiling method and apparatus |
KR20060121074A (en) * | 2005-05-23 | 2006-11-28 | (주)주빅스테크놀러지 | Hybrid peer to peer network intelligent distributed compiler system and method thereof, and computer readable recording medium on which a program therefor is recorded |
KR20070027093A (en) * | 2005-08-29 | 2007-03-09 | 삼성전자주식회사 | Compiling method using the peer to peer file sharing |
Also Published As
Publication number | Publication date |
---|---|
KR20090129203A (en) | 2009-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11388251B2 (en) | Providing access to managed content | |
JP4463661B2 (en) | Computer system, computer, database access method and database system | |
US8458209B2 (en) | Virtual world query response system | |
KR100330576B1 (en) | System and method for locating pages on the world wide web and locating documents from a network of computers | |
US7092971B2 (en) | Prefetch appliance server | |
US20180349430A1 (en) | Client-driven commit of distributed write transactions in a database environment | |
US20060277196A1 (en) | Data management system, data server, data management method and storage medium thereof | |
US7958511B1 (en) | Mechanism for estimating the computing resources needed to execute a job | |
CN103714073A (en) | Method and device for querying data | |
JP2008071035A (en) | Data management system and data management method | |
CN103299299A (en) | Highly adaptable query optimizer search space generation process | |
KR101919771B1 (en) | Optimization technique for database application | |
CN101568919A (en) | Single view of data in a networked computer system with distributed storage | |
US20090198703A1 (en) | Intelligent data storage system | |
WO2007035653A2 (en) | Providing direct access to distributed managed content | |
JP2007025785A (en) | Database processing method, system, and program | |
US20080270594A1 (en) | Method and system of separate file storage locations as unified file storage | |
KR101522881B1 (en) | System and method for distributed compiling | |
US7284014B2 (en) | Pre-fetch computer system | |
CA2470093A1 (en) | Preparing associated files for storage in a server | |
US20230214391A1 (en) | Metadata search via n-gram index | |
CN111488157A (en) | Server installation system and method | |
US20030115172A1 (en) | Electronic file management | |
US6976040B2 (en) | System and method of data-management and data-management program | |
US7412456B2 (en) | System and method for improved exposure of database schema information |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
LAPS | Lapse due to unpaid annual fee |