KR20050057834A - Method for mass data processing through scheduler in multi processor system - Google Patents

Method for mass data processing through scheduler in multi processor system Download PDF

Info

Publication number
KR20050057834A
KR20050057834A KR1020030090038A KR20030090038A KR20050057834A KR 20050057834 A KR20050057834 A KR 20050057834A KR 1020030090038 A KR1020030090038 A KR 1020030090038A KR 20030090038 A KR20030090038 A KR 20030090038A KR 20050057834 A KR20050057834 A KR 20050057834A
Authority
KR
South Korea
Prior art keywords
work
processor
scheduler
processors
data
Prior art date
Application number
KR1020030090038A
Other languages
Korean (ko)
Other versions
KR100590764B1 (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 KR1020030090038A priority Critical patent/KR100590764B1/en
Publication of KR20050057834A publication Critical patent/KR20050057834A/en
Application granted granted Critical
Publication of KR100590764B1 publication Critical patent/KR100590764B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/543User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Abstract

멀티프로세서 시스템에서 스케줄러를 이용한 대규모 데이터 처리 방법을 제시한다. 본 발명의 일 관점에 의한 데이터 처리 방법은, 데이터베이스 군에 저장된 대규모의 처리 데이터 및 데이터를 처리하는데 필요한 정보들로부터 데이터 처리를 위해 사용될 일련의 작업 명령들의 작업리스트를 작성하고, 스케줄러에 의해서 프로세서 군을 구성하는 개별 프로세서들 각각에 작업리스트의 일련의 작업 명령들을 할당하여 작업 명령들을 개별 프로세서들이 병렬 또는 순차적으로 처리한다. A large data processing method using a scheduler in a multiprocessor system is presented. According to an aspect of the present invention, a data processing method includes creating a work list of a plurality of work instructions to be used for data processing from a large amount of processing data stored in a database group and information required to process the data, and setting the processor group by a scheduler. By assigning a series of work instructions of a work list to each of the individual processors constituting the work instructions are processed by the individual processors in parallel or sequentially.

Description

멀티프로세서 시스템에서 스케줄러를 이용한 대규모 데이터 처리 방법{Method for mass data processing through scheduler in multi processor system} Method for mass data processing through scheduler in multi processor system}

본 발명은 멀티프로세서 시스템(multi-processor system)에서 대규모 데이터(data)를 처리하는 방법에 관한 것으로, 특히, 다수 개의 프로세서를 갖는 멀티프로세서 시스템에서 대규모 데이터를 여러 단계에 걸쳐서 순차적으로 처리할 때 지능형 스케줄러(scheduler)를 이용해서 효율적으로 데이터를 처리하는 방법에 관한 것이다. BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a method for processing large data in a multi-processor system. In particular, the present invention relates to a method for processing large data sequentially in multiple steps in a multiprocessor system having a plurality of processors. The present invention relates to a method for efficiently processing data using a scheduler.

반도체 기술과 연산 처리 프로세서 시스템의 집적도가 높아짐에 따라, 컴퓨터 시스템에도 많은 변화가 일어나고 있다. 종래에는 하나의 컴퓨터 시스템에 하나의 프로세서만 장착되어 사용되는 것이 일반적이었으나, 다양한 분야에서 처리해야할 데이터가 대규모화하는 추세에 따라, 최근에는 하나의 컴퓨터 시스템에 다수개의 프로세서를 장착하는 멀티프로세서 시스템이 점차 늘고 있다. As the integration of semiconductor technology and computational processor systems increases, many changes occur in computer systems. In the past, only one processor was used in one computer system. However, as the data to be processed in various fields has become larger, recently, a multiprocessor system having a plurality of processors in one computer system has recently been used. It is increasing.

이론적으로, 다수 개의 프로세서(즉, 멀티 프로세서)를 채용할 경우, 작업 속도가 프로세서의 수에 비례해서 향상되어야 하지만, 현실적으로 작업을 여러 개의 프로세서에 효율적으로 분배하는 과정이 주로 수동으로 이루어져 효율적으로 분배하는 일이 쉽지가 않기 때문에, 프로세서들을 효과적으로 제대로 활용을 못해서 원하는 성능을 얻기가 어려운 경우가 많이 생긴다. In theory, when employing multiple processors (i.e. multiprocessors), the speed of work should be increased in proportion to the number of processors, but in reality, the process of efficiently distributing work among multiple processors is primarily manual and efficient. Because it's not easy to do, it's often difficult to get the right performance from processors because they don't get the most out of it.

도 1은 종래의 멀티프로세서 시스템에서의 데이터 처리 방식을 설명하기 위해서 개략적으로 도시한 모식도이다. 1 is a schematic diagram schematically illustrating a data processing scheme in a conventional multiprocessor system.

도 1을 참조하면, 종래에는 멀티프로세서 시스템을 잘 활용하기 위해서 사용자(10)가 직접 작업을 여러 단계로 나누고(14), 나누어진 작업을 개별 프로세서(16)에 고정적으로 할당해서 작업을 수행시키고 있다(15). 즉, 멀티프로세서를 이용해서 처리할 데이터의 데이터베이스(11)와 데이터를 처리하는 데 필요한 다양한 정보를 담고 있는 정보의 데이터베이스(12)를 이용하여, 데이터 처리를 위해 사용될 일련의 작업 명령들의 리스트인 작업 리스트(14) 상의 단위 명령(13)들을, 멀티프로세서 시스템(18)의 프로세서 그룹(17)을 구성하는 개별 단위 프로세서(16)에 할당하는 과정(15)이 사용자(10)의 수작업에 의해서 이루어지고 있다. Referring to FIG. 1, in order to make good use of a multiprocessor system, a user 10 directly divides a task into several stages 14, and assigns divided tasks to individual processors 16 to perform tasks. (15). That is, a job that is a list of a series of work instructions to be used for data processing, using a database 11 of data to be processed using a multiprocessor and a database 12 of information containing various information required to process the data. The process of allocating the unit instructions 13 on the list 14 to the individual unit processors 16 constituting the processor group 17 of the multiprocessor system 18 is performed manually by the user 10. ought.

이때, 사용자(10)의 수작업에 의한 할당 과정(15)은 사용자(10)의 판단에 의존하게 되는 데, 사용자(10)의 주관적 판단에 의한 프로세서 사용은 효율적이지 못한 경우가 대부분이며, 이에 따라, 일부 단위 프로세서(16)는 작업이 과다하게 책정되고 일부 단위 프로세서(16)에는 상대적으로 적게 배분되어, 모든 프로세서를 최대로 활용할 수 없는 취약점이 생기게 된다. At this time, the manual assignment process 15 of the user 10 depends on the judgment of the user 10. In most cases, the use of the processor by the subjective judgment of the user 10 is not efficient. For example, some of the unit processors 16 are over-determined, and some of the unit processors 16 are allocated relatively little, resulting in a vulnerability that cannot utilize all the processors to the maximum.

그리고, 일반적으로 데이터를 처리해서 최종 결과를 얻기 위해서는, 여러 단계의 변환 과정을 거쳐야 되는데, 종래의 방법은 각 단계 별로 사용자가 작업을 마친 것을 확인한 다음에 다음 단계의 작업의 수행을 개별 단위 프로세서(16)에 할당하는(15) 방식으로 진행되고 있다. 따라서, 작업의 한 단계에서 다음 단계로 넘어갈 때, 상당한 시간의 손실이 발생하게 된다. 따라서, 전체 데이터 처리 작업 시간이 많이 늘어나는 결과를 초래고 있다. In general, in order to process the data and obtain a final result, a conversion process of several steps is required. In the conventional method, after confirming that the user has completed the work in each step, the next step of the work is performed in a separate unit processor ( 16). Thus, when moving from one step of work to the next, significant time loss occurs. As a result, the overall data processing work time is greatly increased.

즉, 일반적으로 데이터를 처리하는 작업은 순차적으로 여러 단계를 거치게 된다. 최초의 데이터를 처리해서 새로운 데이터를 생성하고, 생성된 데이터를 다른 정보를 이용해서 다시 가공해서 또 다른 데이터를 생성하게 된다. 최종 결과를 얻기 위해서는, 이와 같이 여러 단계를 순차적으로 처리하는 과정을 거치게 되며, 다음 단계를 처리하기 위해서는 바로 전 단계가 완전히 완료되어야만 수행될 수 있다. 대부분의 데이터 처리 과정이 이러한 처리 조건을 요구하고 있기 때문에, 사용자(10)가 개입해서 작업을 할당할 경우, 단계별 처리 과정들 사이에 시간의 낭비가 필연적으로 생기게 된다. In other words, processing data generally goes through several steps sequentially. The first data is processed to generate new data, and the generated data is processed again using other information to generate another data. In order to obtain the final result, the steps are processed sequentially, and in order to process the next step, the previous step can be performed only when the previous step is completely completed. Since most data processing processes require such processing conditions, a waste of time is inevitably generated between step by step processes when the user 10 intervenes in assigning work.

본 발명이 이루고자 하는 기술적 과제는, 멀티프로세서 시스템에서 프로세서에 작업을 할당하는 과정을 보다 효율적으로 수행하여, 전체 프로세서의 활용도를 높이고 작업량의 처리 시간을 획기적으로 줄일 수 있는 멀티프로세서 시스템에서 대규모 데이터 처리 방법을 제공하는 데 있다. The technical problem to be achieved by the present invention is to perform a process of allocating a task to a processor in a multiprocessor system more efficiently, to process a large amount of data in a multiprocessor system that can increase the utilization of the entire processor and significantly reduce the processing time of the workload To provide a way.

상기의 기술적 과제들을 달성하기 위한 본 발명의 일 관점은, 데이터베이스군, 작업리스트, 스케줄러 및 프로세서 군을 포함하는 멀티프로세서 시스템에서 대규모 데이터 처리 방법을 제시한다. One aspect of the present invention for achieving the above technical problem, proposes a large-scale data processing method in a multiprocessor system including a database group, a work list, a scheduler and a processor group.

상기 데이터 처리 방법은, 상기 데이터베이스군에 저장된 대규모의 처리 데이터 및 상기 데이터를 처리하는데 필요한 정보들로부터 상기 데이터 처리를 위해 사용될 일련의 작업 명령들의 리스트로서의 상기 작업리스트를 작성하는 단계, 및 상기 스케줄러에 의해서 상기 프로세서 군을 구성하는 개별 프로세서들 각각에 상기 작업리스트의 일련의 작업 명령들을 할당하여 상기 작업 명령들을 상기 개별 프로세서들이 병렬 또는 순차적으로 처리하는 단계를 포함하여 수행된다. The data processing method comprises the steps of: creating the worklist as a list of a series of work instructions to be used for the data processing from a large amount of processing data stored in the database group and information needed to process the data, and to the scheduler. And assigning a series of work instructions of the work list to each of the individual processors constituting the processor group, thereby processing the work instructions by the individual processors in parallel or sequentially.

상기 작업 명령들을 처리하는 단계에서 상기 스케줄러는 상기 작업리스트 중 어느 하나의 단위 작업 명령을 상기 프로세서군의 어느 하나의 개별 프로세서에 할당하는 제1단계, 상기 프로세서군의 프로세서들의 사용 여부를 검사하는 제2단계, 상기 제2단계의 검사에 의해 어느 하나의 상기 프로세서가 사용되고 있지 않을 경우 사용되고 있지 않은 상기 프로세서에 상기 작업리스트 중 다른 하나의 단위 작업 명령을 할당하고 상기 검사에 의해 상기 모든 프로세서들이 사용 중일 경우 사용중인 상기 프로세서의 반환을 대기하는 제3단계, 상기 프로세서의 반환 여부를 검사하는 제4단계, 상기 프로세서의 반환이 검출될 경우 상기 작업리스트의 상기 단위 작업 명령들 중 수행할 작업 명령의 존재 여부를 검사하는 제5단계, 상기 수행할 작업 명령이 존재할 경우 상기 제1단계로서 상기 반환된 프로세서에 상기 작업 명령을 할당하고 상기 제2단계 내지 상기 제5단계를 수행하는 제6단계, 및 상기 제5단계의 검사에서 수행할 작업 명령이 존재하지 않을 경우 프로세서들이 종료하기를 대기하고 상기 종료의 완료 여부를 검사하는 제7단계를 포함하여 순차적으로 수행할 수 있다. In the processing of the work instructions, the scheduler assigns one unit work instruction of the work list to any one individual processor of the processor group, and checks whether the processors of the processor group are in use. In step 2, if any one of the processors is not in use by the inspection in the second step, the other unit work instruction of the work list is allocated to the processor that is not in use and all the processors are in use by the inspection. A third step of waiting for the return of the processor in use; a fourth step of checking whether the processor is returned; and a presence of a work command to be performed among the unit work commands of the work list when the return of the processor is detected Step 5 for checking whether there is a work instruction to be performed The sixth step of allocating the work command to the returned processor as the first step and performing the second to fifth steps, and if there is no work command to be performed in the inspection of the fifth step. The process may be sequentially performed, including a seventh step of waiting for the processors to terminate and checking whether the termination is completed.

본 발명에 따르면, 멀티프로세서 시스템에서 프로세서에 작업을 할당하는 과정을 보다 효율적으로 수행하여, 전체 프로세서의 활용도를 높이고 작업량의 처리 시간을 획기적으로 줄일 수 있는 멀티프로세서 시스템에서 대규모 데이터 처리 방법을 제공할 수 있다. According to the present invention, a process of allocating a task to a processor in a multiprocessor system can be performed more efficiently, thereby providing a large data processing method in a multiprocessor system that can increase the utilization of the entire processor and significantly reduce the processing time of the workload. Can be.

이하, 첨부 도면을 참조하여 본 발명의 실시예를 상세히 설명한다. 그러나, 본 발명의 실시예들은 여러 가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 아래에서 상술하는 실시예들로 인해 한정되어지는 것으로 해석되어져서는 안된다. 본 발명의 실시예들은 당업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되어지는 것이다. Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. However, embodiments of the present invention may be modified in many different forms, and the scope of the present invention should not be construed as being limited by the embodiments described below. Embodiments of the present invention are provided to more completely explain the present invention to those skilled in the art.

본 발명의 실시예에서는 멀티프로세서 시스템에서 프로세서에 작업을 할당하는 것을 사람이 아닌 지능형 스케줄러(scheduler)로서의 잡 스케줄러에 맡김으로써 프로세서의 활용도를 높이고, 작업 시간 및 작업량을 획기적으로 줄이는 바를 제시한다. 그리고, 종래의 방법처럼 작업자가 개입해서 작업을 하면 사람의 손이 많이 필요하고, 프로세서에 작업을 할당하는 일도 효율적이지 못하게 되므로, 이를 개선하기 위해서, 본 발명에서 제안한 바와 같이 작업 내용을 정의하고 수행하는 일을 모두 지능형 스케줄러 프로그램을 이용해서 자동으로 최적화해서 수행하게 함으로써 작업의 능률을 높이는 바를 제시한다. In an embodiment of the present invention, by allocating a task to a processor in a multiprocessor system, the task scheduler as an intelligent scheduler, rather than a human, is used to increase the utilization of the processor and significantly reduce the work time and the amount of work. In addition, since the worker's intervention and work as in the conventional method requires a lot of human hands and it is not efficient to assign a task to the processor, in order to improve this, the work content is defined and performed as proposed in the present invention. Everything you do is automatically optimized and performed using an intelligent scheduler program.

일반적으로, 데이터를 처리하는 작업은 순차적으로 여러 단계를 거치게 된다. 따라서, 작업을 단계 별로 구분해서 정의한 다음에, 각 단계에서는 단위 작업들을 프로세서가 허용하는 범위에서 계속적으로 할당한 다음에 다음 단계로 넘어가는 표시가 있으면, 현 단계에서 할당된 프로세서에의 작업이 모두 끝나기를 기다린 다음에 모두 완료가 되면 자동으로 다음 단계로 넘어가도록 스케줄러가 만들어지기 때문에, 다음 단계로 넘어가는 과정도 연속적으로 수행될 수 있어서 처리 시간을 많이 줄일 수 있고, 한번의 명령으로 이 모든 작업을 수행할 수가 있다.In general, the processing of data goes through several steps sequentially. Therefore, if tasks are defined by stages and then each stage continues to allocate unit tasks to the extent allowed by the processor and then proceeds to the next stage, all tasks to the processor allocated at this stage are The scheduler is created to wait for the end and then automatically complete the next step, so that the next step can be performed continuously, saving much processing time and all of this in one command. You can do

도 2는 본 발명의 실시예에 따른 멀티프로세서 시스템에서 스케줄러를 이용한 대규모 데이터 처리 방법을 설명하기 위해서 개략적으로 도시한 모식도이다. 2 is a schematic diagram schematically illustrating a large-scale data processing method using a scheduler in a multiprocessor system according to an exemplary embodiment of the present invention.

도 3은 본 발명의 실시예에 따른 멀티프로세서 시스템에서 스케줄러를 이용한 대규모 데이터 처리 방법에 도입된 스케줄러의 단위 작업 처리 방식을 설명하기 위해서 개략적으로 도시한 흐름도(flow chart)이다. FIG. 3 is a flowchart schematically illustrating a unit task processing method of a scheduler introduced in a large data processing method using a scheduler in a multiprocessor system according to an exemplary embodiment of the present invention.

도 2를 참조하면, 본 발명의 실시예에 따른 대규모 데이터 처리 방법은 스케줄러를 이용하는 멀티프로세서 시스템(180)을 이용한다. 본 발명의 실시예에 따른 멀티프로세서 시스템(180)은 처리한 데이터의 데이터베이스(110)와 데이터를 처리하는 데 필요한 다양한 정보를 담고 있는 정보의 데이터베이스(120)를 포함하는 데이터베이스군(110, 120)과 이들 데이터베이스군(110, 120)을 읽어서 작업을 수행하는 일련의 명령어들, 즉, 단위 명령(130)들로 구성된 작업 리스트(140), 이들 작업 리스트(140)를 읽어서 프로세서에 자동으로 작업을 할당시키도록 프로그램(program)된 스케줄러(200), 및 할당된 작업을 수행하는 개별 프로세서(160)들이 다수 개 구성된 프로세서 그룹(170)을 포함하여 구성될 수 있다. 2, a large data processing method according to an embodiment of the present invention uses a multiprocessor system 180 using a scheduler. The multiprocessor system 180 according to an embodiment of the present invention includes a database group 110 and 120 that includes a database 110 of processed data and a database 120 of various information necessary for processing the data. A task list 140 composed of a series of instructions that perform a task by reading the database group 110 and 120, that is, a unit instruction 130, and reads the task list 140 automatically to the processor. The scheduler 200 programmed to be assigned and the individual processors 160 performing the assigned tasks may be configured to include a plurality of configured processor groups 170.

도 2 및 도 3을 참조하여, 본 발명의 실시예에 따른 멀티프로세서 시스템에서의 스케줄러 프로그램을 이용한 데이터 처리 방식을 설명하면, 먼저, 처리하고자하는 대규모의 처리 데이터와 이들 데이터를 처리하는 데 필요한 다양한 정보가 스케줄러(200) 또는 별도의 프로그램 등에 의해서 단위 작업을 의미하는 단위 명령(130)들로 해석되어 이들 단위 명령(130)들이 일련되게 나열되는 작업리스트(140)를 만들게 된다. Referring to FIGS. 2 and 3, a data processing method using a scheduler program in a multiprocessor system according to an embodiment of the present invention will first be described. First, a large amount of processing data to be processed and various data required to process the data are described. The information is interpreted into unit commands 130 meaning unit work by the scheduler 200 or a separate program, thereby creating a work list 140 in which the unit commands 130 are serially listed.

데이터베이스군(110, 120)에는 처리하고자 하는 대규모의 처리 데이터를 저장하고 있는 데이터의 데이터베이스(110)가 도입되고, 이들 데이터를 처리하는데 필요한 다양한 정보를 저장하고 있는 정보의 데이터베이스(120)가 도입되게 된다. 이들 데이터 정보는 스케줄러(200) 또는 별도의 프로그램에 의해서 해석되어 단위 작업, 즉, 단위 명령(130)들로 구성된 작업리스트(140)를 만들게 된다. The database group 110, 120 introduces a database 110 of data that stores a large amount of processing data to be processed, and introduces a database 120 of information that stores various information necessary for processing these data. do. These data information is interpreted by the scheduler 200 or a separate program to create a unit task, that is, a work list 140 composed of unit instructions 130.

단위 작업은 데이터베이스군(110, 120)으로부터 데이터를 읽어서 처리하는 단위 명령(130)으로 일반적으로 특정 프로그램을 수행하는 명령으로 해석될 수 있다. 작업리스트(140)는 단위 명령(130)들의 집합으로 이들 단위 작업, 즉, 단위 명령(130)들은 처리 단계에 따라서 여러 단계의 단계별 작업 군으로 그룹화되서 표현될 수 있으며, 이럴 경우 각 단계별 작업은 도 3에 도시된 바와 같은 절차에 의해서, 스케줄러(200)에 의해서 할당되어 단위 작업들이 처리된다. 이때, 반드시 다음 단계로 넘어가기 전에 현재 단계에 있는 모든 단위 작업을 성공적으로 종료해야만 하는 순차적 구조를 갖는다. The unit job is a unit command 130 that reads and processes data from the database group 110 and 120 and may generally be interpreted as a command for executing a specific program. The work list 140 is a set of unit instructions 130, and these unit tasks, that is, the unit instructions 130 may be represented by grouping the task steps of the various stages according to the processing stage, in which case each stage task By the procedure as shown in FIG. 3, the scheduler 200 is assigned to process the unit tasks. At this time, it has a sequential structure in which all unit tasks in the current stage must be successfully completed before proceeding to the next stage.

스케줄러(200)는 단계별 작업군 간에 연결에 직접적으로 간여해서 조정하는 작용과 단위 명령(130)들을 사용이 가능한 개별 프로세서(160)에 할당하는 역할을 수행한다. The scheduler 200 directly acts to adjust the connection between the step-by-step task group and assigns unit instructions 130 to the available individual processors 160.

멀티 프로세서그룹(170)은 다수개의 개별 프로세서(160)들로 구성된 프로세서 군으로서, 스케줄러(200)가 책임을 지고 프로세서 군에 있는 개별 프로세서(160)에 작업을 할당한다. 이와 같은 스케줄러(200)에 의한 작업 할당 및 순차적인 작업 처리, 즉, 단계별 작업은, 도 3에 도시된 바와 같은 순서에 의해 순차적으로 처리된다. The multiprocessor group 170 is a processor group composed of a plurality of individual processors 160, and the scheduler 200 is responsible for assigning tasks to individual processors 160 in the processor group. Such job assignment and sequential job processing by the scheduler 200, that is, step-by-step jobs, are sequentially processed in the order shown in FIG. 3.

도 3을 참조하면, 먼저 작업이 시작되면 작업리스트(140) 상의 단위 작업, 즉, 단위 명령(130) 하나를 하나의 프로세서(160)에 스케줄러(200)가 할당하게 된다(210). 그리고, 스케줄러(200)는 모든 개별 프로세서(160)가 현재 사용중인지 아니면 사용되고 있지 않는 지를 검사한다(220). Referring to FIG. 3, when a task is started, the scheduler 200 allocates one unit task on the task list 140, that is, one unit instruction 130 to one processor 160 (210). The scheduler 200 then checks 220 whether all individual processors 160 are currently being used or are not being used.

만일, 검사에 의해서 사용하지 않고 있는 개별 프로세서(160)가 있으면, 스케줄러(200)는 다시 작업리스트(140)에 있는 다른 또는 다음 단위작업 또는 단위명령(130)을 사용되고 있지 않은 개별 프로세서(160)에 할당한다(210). 만일, 프로세서(160)들 모두가 사용중이면, 프로세서 군(170)에 있는 어느 한 프로세서(160)가 작업을 진행할 수 있는, 즉, 완료할 수 있는 짧은 시간을 대기하도록 한다(230). 즉, 프로세서 반환을 대기한다(230). If there is an individual processor 160 that is not in use by inspection, the scheduler 200 again uses the individual processor 160 that is not using another or next unit task or unit instruction 130 in the task list 140. (210). If all of the processors 160 are in use, then one processor 160 in the processor family 170 waits for a short time to proceed, ie, complete (230). That is, the processor waits for the return of the processor 230.

다음에, 사용 가능한 프로세서(160)가 있는지를 검사한다(240). 즉, 반환되는 프로세서(160)가 있는 지의 여부를 판단한다(240). 반환되는 프로세서(160)가 없으면 프로세서 반환대기(230)를 수행하고 다시 검사한다(240). 만일, 프로세서 반환이 있으면 추가로 수행할 단위 작업(130)이 존재하는 지 여부를 검사한 후(250), 작업리스트(140)에 수행할 단위 작업 또는 단위 명령(130)이 있으면, 그 작업 또는 명령(130)을 반환된 프로세서(160)에 할당하는 한다(210). Next, it is checked if there is an available processor 160 (240). That is, it is determined whether there is a processor 160 returned (240). If there is no processor 160 to be returned, the processor returns to wait 230 and checks again (240). If there is a processor return, it is checked whether there is an additional unit task 130 to be performed (250), and if there is a unit task or a unit instruction 130 to be performed in the work list 140, the task or The instruction 130 is allocated to the returned processor 160 (210).

이러한 처리 과정, 즉, 도 3의 210단계 내지 250 단계를 되풀이하고, 작업리스트(140)에 더 이상의 수행할 단위 작업 또는 단위 명령(130)이 없으면, 사용중인 모든 프로세서(160)가 종료하기를 기다린다(260). 모든 프로세서(160)가 종료되었는지를 검사(270)해서 종료가 안되었으면, 종료대기 상태(260)로 돌아가고, 종료가 되었으면, 단계별 작업 중에서 하나의 작업군을 종료하게 된다. 연후, 다음 작업군으로 처리 단계가 넘어가게 된다. This process, that is, steps 210 to 250 of FIG. 3 are repeated, and if there are no unit tasks or unit instructions 130 to be performed in the work list 140, all the processor 160 in use is terminated. Wait (260). If it is not terminated by checking whether all processors 160 are terminated (270), the process returns to the end standby state 260, and if the termination is completed, one task group is terminated among the step-by-step tasks. After that, the processing step is passed to the next working group.

이와 같이, 스케줄러(200)를 이용한 데이터처리 방식에서는 사용할 프로세서(160) 수를 임의로 정할 수 있기 때문에, 멀티프로세서 시스템(180)이 공동 서버(server)로 사용되어서 여러 사람에게 공유되는 환경에서도, 모든 프로세서(160)를 독점하지 않고 배정된 수의 프로세서(160)만 사용하면서 효율적으로 작업을 진행할 수 있다.As described above, in the data processing method using the scheduler 200, since the number of processors 160 to be used can be arbitrarily determined, even in an environment in which the multiprocessor system 180 is used as a common server and is shared with multiple people, Instead of monopolizing the processor 160, only a predetermined number of processors 160 may be used and the work may be efficiently performed.

이상, 본 발명을 구체적인 실시예를 통하여 상세히 설명하였으나, 본 발명은 이에 한정되지 않고, 본 발명의 기술적 사상 내에서 당 분야의 통상의 지식을 가진 자에 의해 그 변형이나 개량이 가능함이 명백하다. As mentioned above, although this invention was demonstrated in detail through the specific Example, this invention is not limited to this, It is clear that the deformation | transformation and improvement are possible by the person of ordinary skill in the art within the technical idea of this invention.

상술한 본 발명에 따르면, 본 발명에서 제안한 스케줄러 프로그램을 이용해서 기계적으로 프로세서들의 사용 현황을 모니터링(monitoring)하면서 모든 프로세서를 고르게 이용할 수 있는 수단을 제공할 수 있다. According to the present invention described above, by using the scheduler program proposed in the present invention can provide a means that can uniformly use all the processors while monitoring the use status of the processors mechanically.

현재, 컴퓨터 시스템의 성능이 점차 좋아짐에 따라, 예전에는 고성능 중/대형 컴퓨터에서만 작업이 가능했던 대규모 데이터 처리 작업을, 점차 워크스테이션(workstation) 이나 퍼스널 컴퓨터(PC)와 같은 중소형 컴퓨터에서 수행하는 일이 많아졌다. 그리고, 워크스테이션 같은 서버급의 컴퓨터에서는 동시 여러 가지 작업이 많이 요구되기 때문에, 프로세서를 한 개가 아닌 여러 개로 구성하는 멀티프로세서 시스템으로 구성하는 것이 일반화되고 있다. 멀티프로세서 시스템에서 가장 중요한 것은 작업을 모든 프로세서에 고르게 할당해서 성능을 최대한 발휘하게 하는 것인데, 이런 작업을 사람에게 의지하면 원하는 목적을 달성할 수 없다. Today, as computer systems become more and more powerful, the task of performing large-scale data processing tasks that were previously only available on high-performance medium- and large-sized computers, increasingly on smaller computers, such as workstations or personal computers (PCs). There are a lot. In addition, since a server-class computer such as a workstation requires a lot of simultaneous tasks, it is common to configure a multiprocessor system in which several processors are configured instead of one. The most important thing in a multiprocessor system is to allocate tasks evenly across all processors to get the most out of their performance.

이에 비해, 본 발명에 따른 스케줄러 프로그램을 이용해서 기계적으로 프로세서들의 사용 현황을 모니터링하면서 모든 프로세서를 고르게 이용할 수 있는 방법은 생산성 향상에 크게 도움이 된다. 특히, 다수 개의 프로세서를 공유하는 환경에서 작업 별로 프로세서 수를 할당함으로써, 서버 시스템이 특정 작업에만 얽매이지 않도록 할 수 있어서, 시스템을 효과적으로 운영할 수 있다. In contrast, the method of using all the processors evenly while monitoring the usage status of the processors mechanically using the scheduler program according to the present invention greatly improves productivity. In particular, by allocating the number of processors for each task in an environment in which a plurality of processors are shared, the server system can be prevented from being bound only to specific tasks, thereby effectively operating the system.

특히, 본 발명에 따르면, 대규모 데이터를 처리하는데 있어서, 멀티프로세서를 효율적으로 이용하게 함으로써, 프로세싱 자원의 낭비 없이 생산성을 최대로 올릴 수 있다.In particular, according to the present invention, by efficiently using a multiprocessor in processing large-scale data, it is possible to maximize productivity without wasting processing resources.

도 1은 종래의 멀티프로세서 시스템에서의 데이터 처리 방식을 설명하기 위해서 개략적으로 도시한 모식도이다. 1 is a schematic diagram schematically illustrating a data processing scheme in a conventional multiprocessor system.

도 2는 본 발명의 실시예에 따른 멀티프로세서 시스템에서 스케줄러를 이용한 대규모 데이터 처리 방법을 설명하기 위해서 개략적으로 도시한 모식도이다. 2 is a schematic diagram schematically illustrating a large-scale data processing method using a scheduler in a multiprocessor system according to an exemplary embodiment of the present invention.

도 3은 본 발명의 실시예에 따른 멀티프로세서 시스템에서 스케줄러를 이용한 대규모 데이터 처리 방법에 도입된 스케줄러의 단위 작업 처리 방식을 설명하기 위해서 개략적으로 도시한 흐름도(flow chart)이다. FIG. 3 is a flowchart schematically illustrating a unit task processing method of a scheduler introduced in a large data processing method using a scheduler in a multiprocessor system according to an exemplary embodiment of the present invention.

Claims (2)

데이터베이스군, 작업리스트, 스케줄러 및 프로세서 군을 포함하는 멀티프로세서 시스템에서 대규모 데이터 처리 방법에 있어서,A large data processing method in a multiprocessor system including a database group, a work list, a scheduler, and a processor group, 상기 데이터베이스군에 저장된 대규모의 처리 데이터 및 상기 데이터를 처리하는데 필요한 정보들로부터 상기 데이터 처리를 위해 사용될 일련의 작업 명령들의 리스트로서의 상기 작업리스트를 작성하는 단계; 및Creating the worklist as a list of work instructions to be used for the data processing from a large amount of processing data stored in the database group and information needed to process the data; And 상기 스케줄러에 의해서 상기 프로세서 군을 구성하는 개별 프로세서들 각각에 상기 작업리스트의 일련의 작업 명령들을 할당하여 상기 작업 명령들을 상기 개별 프로세서들이 병렬 또는 순차적으로 처리하는 단계를 포함하는 것을 특징으로 하는 멀티프로세서 시스템에서 대규모 데이터 처리 방법.And assigning a series of work instructions of the work list to each of the individual processors constituting the processor group by the scheduler to process the work instructions by the individual processors in parallel or sequentially. How large data is processed in the system. 제1항에 있어서, 상기 작업 명령들을 처리하는 단계에서 상기 스케줄러는 The method of claim 1, wherein the scheduler is further configured to process the work instructions. 상기 작업리스트 중 어느 하나의 단위 작업 명령을 상기 프로세서군의 어느 하나의 개별 프로세서에 할당하는 제1단계;Allocating one unit work instruction of the work list to any one individual processor of the processor group; 상기 프로세서군의 프로세서들의 사용 여부를 검사하는 제2단계;A second step of checking whether the processors of the processor group are used; 상기 제2단계의 검사에 의해 어느 하나의 상기 프로세서가 사용되고 있지 않을 경우 사용되고 있지 않은 상기 프로세서에 상기 작업리스트 중 다른 하나의 단위 작업 명령을 할당하고 상기 검사에 의해 상기 모든 프로세서들이 사용 중일 경우 사용중인 상기 프로세서의 반환을 대기하는 제3단계;If any one of the processors is not in use by the second step of inspection, the other unit work instruction of the work list is allocated to the processor that is not in use, and all of the processors are in use by the inspection. A third step of waiting for the return of the processor; 상기 프로세서의 반환 여부를 검사하는 제4단계;A fourth step of checking whether the processor is returned; 상기 프로세서의 반환이 검출될 경우 상기 작업리스트의 상기 단위 작업 명령들 중 수행할 작업 명령의 존재 여부를 검사하는 제5단계;A fifth step of checking whether there is a work command to be performed among the unit work commands of the work list when the return of the processor is detected; 상기 수행할 작업 명령이 존재할 경우 상기 제1단계로서 상기 반환된 프로세서에 상기 작업 명령을 할당하고 상기 제2단계 내지 상기 제5단계를 수행하는 제6단계; 및  A sixth step of allocating the work command to the returned processor as the first step if the work command to be performed exists and performing the second to fifth steps; And 상기 제5단계의 검사에서 수행할 작업 명령이 존재하지 않을 경우 프로세서들이 종료하기를 대기하고 상기 종료의 완료 여부를 검사하는 제7단계를 순차적으로 수행하는 것을 특징으로 하는 멀티프로세서 시스템에서 대규모 데이터 처리 방법. If there is no work instruction to be performed in the fifth step, the processor waits for the processors to terminate and sequentially performs a seventh step of checking whether the termination is completed. Way.
KR1020030090038A 2003-12-11 2003-12-11 Method for mass data processing through scheduler in multi processor system KR100590764B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020030090038A KR100590764B1 (en) 2003-12-11 2003-12-11 Method for mass data processing through scheduler in multi processor system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030090038A KR100590764B1 (en) 2003-12-11 2003-12-11 Method for mass data processing through scheduler in multi processor system

Publications (2)

Publication Number Publication Date
KR20050057834A true KR20050057834A (en) 2005-06-16
KR100590764B1 KR100590764B1 (en) 2006-06-15

Family

ID=37251544

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030090038A KR100590764B1 (en) 2003-12-11 2003-12-11 Method for mass data processing through scheduler in multi processor system

Country Status (1)

Country Link
KR (1) KR100590764B1 (en)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009102765A2 (en) * 2008-02-11 2009-08-20 Nuix North America Inc. Parallelization of electronic discovery document indexing
KR100957060B1 (en) * 2007-12-12 2010-05-13 엠텍비젼 주식회사 Scheduler and method for scheduling instruction and the record medium recoded the program realizing the same
WO2012005728A1 (en) * 2010-07-08 2012-01-12 Hewlett-Packard Development Company, L.P. Resource assignment for jobs in a system having a processing pipeline
US8311982B2 (en) 2010-02-11 2012-11-13 Hewlett-Packard Development Company, L. P. Storing update data using a processing pipeline
US9323717B2 (en) 2011-09-19 2016-04-26 Samsung Electronics Co., Ltd. Processor and system for processing stream data at high speed
US9785700B2 (en) 2008-02-11 2017-10-10 Nuix Pty Ltd Systems and methods for load-balancing by secondary processors in parallelized indexing
US9928260B2 (en) 2008-02-11 2018-03-27 Nuix Pty Ltd Systems and methods for scalable delocalized information governance
US10826930B2 (en) 2014-07-22 2020-11-03 Nuix Pty Ltd Systems and methods for parallelized custom data-processing and search
US11200249B2 (en) 2015-04-16 2021-12-14 Nuix Limited Systems and methods for data indexing with user-side scripting

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100957060B1 (en) * 2007-12-12 2010-05-13 엠텍비젼 주식회사 Scheduler and method for scheduling instruction and the record medium recoded the program realizing the same
US11030170B2 (en) 2008-02-11 2021-06-08 Nuix Pty Ltd Systems and methods for scalable delocalized information governance
WO2009102765A2 (en) * 2008-02-11 2009-08-20 Nuix North America Inc. Parallelization of electronic discovery document indexing
US10185717B2 (en) 2008-02-11 2019-01-22 Nuix Pty Ltd Data processing system for parallelizing electronic document indexing
US9928260B2 (en) 2008-02-11 2018-03-27 Nuix Pty Ltd Systems and methods for scalable delocalized information governance
US8359365B2 (en) 2008-02-11 2013-01-22 Nuix Pty Ltd Systems and methods for load-balancing by secondary processors in parallel document indexing
WO2009102765A3 (en) * 2008-02-11 2009-11-19 Nuix North America Inc. Parallelization of electronic discovery document indexing
US9665573B2 (en) 2008-02-11 2017-05-30 Nuix Pty Ltd Parallelization of electronic discovery document indexing
US9785700B2 (en) 2008-02-11 2017-10-10 Nuix Pty Ltd Systems and methods for load-balancing by secondary processors in parallelized indexing
US11886406B2 (en) 2008-02-11 2024-01-30 Nuix Limited Systems and methods for scalable delocalized information governance
US8311982B2 (en) 2010-02-11 2012-11-13 Hewlett-Packard Development Company, L. P. Storing update data using a processing pipeline
WO2012005728A1 (en) * 2010-07-08 2012-01-12 Hewlett-Packard Development Company, L.P. Resource assignment for jobs in a system having a processing pipeline
US9323717B2 (en) 2011-09-19 2016-04-26 Samsung Electronics Co., Ltd. Processor and system for processing stream data at high speed
US11516245B2 (en) 2014-07-22 2022-11-29 Nuix Limited Systems and methods for parallelized custom data-processing and search
US11757927B2 (en) 2014-07-22 2023-09-12 Nuix Limited Systems and methods for parallelized custom data-processing and search
US12034763B2 (en) 2014-07-22 2024-07-09 Nuix Limited Systems and methods for parallelized custom data-processing and search
US10826930B2 (en) 2014-07-22 2020-11-03 Nuix Pty Ltd Systems and methods for parallelized custom data-processing and search
US11200249B2 (en) 2015-04-16 2021-12-14 Nuix Limited Systems and methods for data indexing with user-side scripting
US11727029B2 (en) 2015-04-16 2023-08-15 Nuix Limited Systems and methods for data indexing with user-side scripting

Also Published As

Publication number Publication date
KR100590764B1 (en) 2006-06-15

Similar Documents

Publication Publication Date Title
CN112465129B (en) On-chip heterogeneous artificial intelligent processor
US7650601B2 (en) Operating system kernel-assisted, self-balanced, access-protected library framework in a run-to-completion multi-processor environment
CN112463709A (en) Configurable heterogeneous artificial intelligence processor
US11620510B2 (en) Platform for concurrent execution of GPU operations
US20050081208A1 (en) Framework for pluggable schedulers
US20140373020A1 (en) Methods for managing threads within an application and devices thereof
CN106569887B (en) Fine-grained task scheduling method in cloud environment
KR100590764B1 (en) Method for mass data processing through scheduler in multi processor system
CN112882828A (en) Upgrade processor management and scheduling method based on SLURM job scheduling system
CN111158875B (en) Multi-module-based multi-task processing method, device and system
JP3541212B2 (en) Processor assignment device
CN113010286A (en) Parallel task scheduling method and device, computer equipment and storage medium
CN114816694A (en) Multi-process cooperative RPA task scheduling method and device
US8881163B2 (en) Kernel processor grouping
EP3343370A1 (en) Method of processing opencl kernel and computing device therefor
TWI594131B (en) Cloud batch scheduling system and batch management server computer program products
KR20130067100A (en) Core allocation apparatus in different multi-core
CN113608854A (en) Task scheduling method and device for layout verification, server and storage medium
CN113034048A (en) Task processing method, device, server and storage medium
JPH0460843A (en) Task scheduling system for multiprocessor system
JPH05324430A (en) Data processor
JPH11249917A (en) Parallel computers, their batch processing method, and storage medium
EP1630671A1 (en) Framework for pluggable schedulers
CN111813453B (en) Computing board card with OODA multiprocessor
JPH05204875A (en) Scheduling system for thread

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
FPAY Annual fee payment

Payment date: 20110531

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee