KR20130099351A - 디스크 캐쉬 효과를 극대화하는 워크플로우 작업 스케줄링 장치 및 방법 - Google Patents

디스크 캐쉬 효과를 극대화하는 워크플로우 작업 스케줄링 장치 및 방법 Download PDF

Info

Publication number
KR20130099351A
KR20130099351A KR1020120020792A KR20120020792A KR20130099351A KR 20130099351 A KR20130099351 A KR 20130099351A KR 1020120020792 A KR1020120020792 A KR 1020120020792A KR 20120020792 A KR20120020792 A KR 20120020792A KR 20130099351 A KR20130099351 A KR 20130099351A
Authority
KR
South Korea
Prior art keywords
resource
workflow
tasks
unit
task
Prior art date
Application number
KR1020120020792A
Other languages
English (en)
Other versions
KR101694307B1 (ko
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 KR1020120020792A priority Critical patent/KR101694307B1/ko
Priority to CN2012105166911A priority patent/CN103294535A/zh
Publication of KR20130099351A publication Critical patent/KR20130099351A/ko
Application granted granted Critical
Publication of KR101694307B1 publication Critical patent/KR101694307B1/ko

Links

Images

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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30079Pipeline control instructions, e.g. multicycle NOP
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
    • 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/468Specific access rights for resources, e.g. using capability register

Abstract

본 발명은 고성능 근거리 네트워크로 연결되는 고성능컴퓨팅시스템(또는 슈퍼컴퓨터)에 파이프라인 형태의 대규모 데이터 병렬 분산 작업을 자동 실행하여 결과를 얻는 자원 관리 및 작업 스케줄링 방법에 관한 것으로, 자원사용 프로파일을 로드(load)하고, 계산 노드들 중 어느 하나의 계산 노드를 선택하여 상기 선택된 계산 노드에서 동시 수행 가능한 작업 수와 상기 선택된 계산 노드에서 디스크 캐쉬 프리가 발생하지 않고 사용 가능한 가용 디스크 캐쉬 사이즈를 결정하고, 동시 작업으로 디스크 캐쉬되는 파일들의 총합이 상기 가용 디스크 캐쉬 사이즈보다 작게 되도록 입력 파일 수와 파일 크기를 결정하고, 상기 결정된 입력 파일 수와 파일 크기에 기초하여 작업들을 그룹핑 또는 분할하여 작업이 수행될 계산 노드를 결정함으로써, 디스크 캐쉬 효과를 극대화하도록 작업을 분할할 수 있도록 하는 발명이다.

Description

디스크 캐쉬 효과를 극대화하는 워크플로우 작업 스케줄링 장치 및 방법{APPARATUS AND METHOD FOR MAXIMIZING DISK CACHE EFFECT FOR WORKFLOW JOB SCHEDULING}
본 발명은 고성능 근거리 네트워크로 연결되는 고성능컴퓨팅시스템(또는 슈퍼컴퓨터)에 파이프라인 형태의 대규모 데이터 병렬 분산 작업을 자동 실행하여 결과를 얻는 자원 관리 및 작업 스케줄링 방법에 관한 것이다.
기존의 슈퍼 컴퓨터, 고성능 클러스터 등 다양한 형태의 컴퓨팅 자원 환경하에서, 사람을 대신하여 대규모 데이터를 처리하는 과학 연산 작업, 또는 여러 단계의 작업 간 종속성이 존재하는 복잡한 작업들을 일괄 실행하기 위해서, 워크플로우(workflow) 관리 시스템, 자원 관리 시스템, 및 작업 스케줄러 등을 활용하여 왔다.
워크플로우 관리 시스템은, 대체로 사용자 친화적인 사용자 인터페이스(User Interface)를 통해 일련의 작업들이 연관성을 가지고 연결되는 워크플로우를 작성하고, 작성된 워크플로우를, 고성능 컴퓨터, 그리드, 및 웹 서비스 등 다양한 컴퓨팅 자원을 연동하여 실행하고 결과를 보고하는 소프트웨어 시스템이다. 종래 워크플로우 관리 시스템으로는 타베르나(Taverna), 갤럭시(Galaxy), 및 케플러(Kepler) 등이 있다.
자원 관리 시스템은, 고성능컴퓨터 또는 클러스터에 대한 컴퓨팅 자원의 관리 및 작업의 일괄 실행 등을 처리하는 소프트웨어 시스템으로, PBS(Portable Batch System) 계열의 OpenPBS, TORQEU, PBS pro가 있고 그 외에도 SLURM, Oracle Grid Engine 등이 있다. 대체로 FCFS(First-Come First-Served) 방식의 작업 스케줄링을 사용한다.
작업 스케줄러는 주로 자원관리 시스템과 연동하여 사용되는데, 작업 큐(Queue) 상의 작업들의 우선순위, 요구 자원량을 가용 자원의 종류 및 수량과 비교하여, 동적으로 실행순서를 바꾸어가면서 작업들을 실행하는 소프트웨어 시스템이다. 종래 기술로는 Maui, ALPS, LSF, Moab 등이 있다.
또한, 워크플로우와 관련된 종래 기술은, 리소스의 현재 정보를 획득하여 작업의 분배를 수행하는 기술(한국공개특허 2010-0133418)을 통하여 전체적인 리소스 측면에서 작업 분배를 고려하는 방법에 관하여는 기술이 제시된 바 있지만, 디바이스에 존재하는 디스크 캐쉬와 관련하여는 이를 효율적으로 활용하는 방법은 고안되지 않았었고, 따라서 디바이스의 성능의 활용에 한계가 존재하는 문제점이 있었다.
예를 들어, 유전체 서열분석을 포함하는 대부분의 과학응용 분야의 기술은, 기 개발된 응용 프로그램들을 조합하여 원하는 결과를 얻는 경우가 많으므로, 워크플로우(또는 파이프라인)을 통하여 시간적인 선후관계에 의한 종속성과 데이터 종속성을 가지는 응용 프로그램(작업)들을 이 종속성에 근거하여 순서 흐름을 구성하여 작업을 수행한다. 또한, 이와 같은 워크플로우는 한두 개의 응용으로 구성되는 간단한 형태부터 수십~수백 개의 응용들이 묶이는 형태까지 매우 다양한 크기를 가질 수 있다.
따라서, 이와 같은 워크플로우를 적당한 계산 자원에 맵핑(mapping)하여 효과적으로 결과를 도출하기 위해서는, 워크플로우를 구성하는 작업들이 필요로 하는 계산자원에 대한 정확한 정보가 요구된다. 그러나, 작업을 실제 실행하는 응용 프로그램의 자원 사용에 대한 정보(응용 프로그램은 CPU는 몇 개, 메모리 얼마, 디스크 얼마, 네트워크 대역폭 얼마가 필요하다)는 그 응용의 개발자가 아니면 알아내기 매우 어려우며, 소스 코드로부터 자원 사용 프로파일을 얻어내는 분석 도구들의 개발도 부진한 편이다.
따라서 기존의 워크플로우 관리시스템, 자원관리 시스템, 작업 스케줄러를 사용하려고 할 경우 워크플로우의 작업들과 계산 자원간의 효율적인 매칭(matching)이 매우 어렵다. 따라서, 일반적인 유전체 분석 응용 사용자들은 유전체 서열 분석 작업들이 요구하는 계산 자원량을 잘 모르기 때문에 충분히 많은 자원을 요청하여 워크플로우를 실행함으로 인해 고성능 계산 자원의 낭비를 초래하는 문제점이 존재한다.
이에 따라서, 본 발명은 상기와 같은 문제점을 해결하기 위하여 제안된 것으로, 워크플로우 관리시스템, 자원관리 시스템, 작업 스케줄러 등에서 제공하는 기능들을 연동하여 파일 입출력으로 상호 연결되는 다단계의 작업으로 구성되는 워크플로우를 수행하고자 할 때, 디스크 캐쉬 효과를 극대화 함으로써 물리적 계산 자원의 이용률을 높일 수 있는 워크플로우 스케줄링 방법 및 장치를 제시하는 것을 그 목적으로 한다.
즉, 고성능 컴퓨터(또는 클러스터) 환경에서 대규모 데이터를 처리해야 하는 다단계 작업으로 구성되는 워크플로우의 실행 시간을 앞당기고 비용을 줄이기 위해서는 효과적인 계산 자원 사용과 사용률 제고가 필요하므로, 이를 위해서는 종래기술에서 제공하는 계산 자원에 대한 정적 정보 및 작업 실행 결과보다 더 상세한 자원 정보와, 작업 실행 시 적극적인 계산 자원 사용 모니터링을 통해, 그 워크플로우의 자원 사용 결과를 다음 워크플로우 실행 시 참조 되도록 자원 사용 프로파일로 업데이트함으로써, 워크플로우의 성능을 개선할 수 있는 워크플로우 스케줄링 방법 및 장치를 제시하는 것을 그 목적으로 한다.
본 발명의 목적을 달성하기 위한 워크플로우 스케줄링 장치는, 계산 노드들의 실제 사용 자원량에 대한 사용 정보를 포함하는 워크플로우의 자원사용 프로파일을 저장하는 자원프로파일링 관리부, 소정의 작업들이 단위 계산 자원에서 실행 중인 경우, 상기 단위 계산 자원의 작업이 실제 사용하는 계산 자원의 사용 정보를 측정하고, 상기 측정 결과를 상기 자원프로파일링 관리부로 보고하여 상기 자원사용 프로파일이 업데이트되도록 하는 단위계산 자원 감지부, 및 상기 자원프로파일링 관리부의 자원사용 프로파일을 로드(load)하고, 상기 계산 노드들 중 어느 하나의 계산 노드를 선택하여 상기 선택된 계산 노드에서 동시 수행 가능한 작업 수 및 상기 선택된 계산 노드에서 디스크 캐쉬 프리가 발생하지 않고 사용 가능한 가용 디스크 캐쉬 사이즈를 결정하고, 동시 작업으로 디스크 캐쉬되는 파일들의 총합이 상기 가용 디스크 캐쉬 사이즈보다 작게 되도록 입력 파일 수와 파일 크기를 결정하고, 상기 결정된 입력 파일 수와 파일 크기에 기초하여 작업들을 그룹핑 또는 분할하여 작업이 수행될 계산 노드를 결정하는 작업분할부를 포함하는 것을 특징으로 한다.
또한, 본 발명의 목적을 달성하기 위한 워크플로우 스케줄링 방법은, 자원프로파일링 관리부에서 자원사용 프로파일을 로드(load)하는 단계, 계산 노드들 중 어느 하나의 계산 노드를 선택하는 단계, 상기 선택된 계산 노드에서 동시 수행 가능한 작업 수, 및 상기 선택된 계산 노드에서 디스크 캐쉬 프리가 발생하지 않고 사용 가능한 가용 디스크 캐쉬 사이즈를 결정하는 단계, 동시 작업으로 디스크 캐쉬되는 파일들의 총합이 상기 가용 디스크 캐쉬 사이즈보다 작게 되도록 입력 파일 수와 크기를 결정하는 단계, 및 상기 결정된 입력 파일 수와 크기에 기초하여 작업들을 그룹핑 또는 분할하여 작업이 수행될 계산 노드를 결정하는 단계를 포함하는 것을 특징으로 한다.
다단계 작업들의 파이프라인 형태로 구성되는 워크플로우를 고성능컴퓨터 또는 클러스터에서 실행할 때 작업이 계산자원에서 실행될 때의 정보를 피드백 받아 다음 작업 스케줄링에 활용함으로써, 작업이 수행되는 계산 자원들의 이용을 극대화할 수 있는 효과가 있다.
또한, 디스크 캐쉬 효과를 극대화하도록 작업을 분할하여 스케줄링 함으로써, 워크플로우를 실행하는 시간을 줄여 더 빠르게 결과를 얻을 수 있고, 계산 자원에 대한 깊은 지식 및 시스템 사용법을 알지 못하는 일반 사용자도 자신이 만든 워크플로우를 쉽게 최적화할 수 있게 되는 효과가 있다.
도 1은 워크플로우의 기본적인 진행 과정을 도시한 도면이다.
도 2는 유전체 서열 분석 워크플로우의 진행 순서를 도시한 도면이다.
도 3은 본 발명의 실시 예에 따른 워크플로우 스케줄링 장치의 구성을 도시한 도면이다.
도 4는 본 발명의 실시 예에 따른 워크플로우 스케줄링 방법을 도시한 순서도이다.
도 5는 도 4에 도시된 작업 분할 단계를 상세히 도시한 도면이다.
도 6은 도 5의 계산 노드에서 동시 수행될 수 있는 작업 수를 계산하는 방법을 도시한 순서도이다.
이하에서는 첨부된 도면을 참조하여 본 발명의 여러 가지 실시 예들을 보다 상세히 설명하도록 하겠다. 나아가, 이하의 설명에서 사용되는 구성요소에 대한 접미사 "부", “기” 및 "장치"는 단순히 본 명세서 작성의 용이함을 고려하여 부여되는 것으로서, 상기 "부", “기” 및 "장치"는 서로 혼용되어 사용될 수 있으며, 하드웨어 또는 소프트웨어로 설계 가능하다.
나아가, 이하 첨부 도면들 및 첨부 도면들에 기재된 내용들을 참조하여 본 발명의 실시 예를 상세하게 설명하지만, 본 발명이 실시 예들에 의해 제한되거나 한정되는 것은 아니다.
본 발명에서는 각 단계의 출력 파일이 다음 단계의 입력으로 들어가는 파이프라인 형태로 구성되는 워크플로우의 작업 스케줄링 방법을 제안한다. 본 발명에서 제안하는 스케줄링 방법은 워크플로우 실행 시 실제 계산 자원에서 사용되는 계산 자원량을 감시하여 그 결과가 다음 워크플로우 실행 시에 지속적으로 반영되도록 하는 방식으로 구성된다.
도 1은 워크플로우의 기본적인 진행 과정을 도시한 도면이다.
실시 예에 따라, 워크플로우는, 최초 입력 파일(101) 데이터가 저장되고, 중간 파일 1(102), 중간 파일 2(103)의 단계를 거쳐, 결과 파일(104) 데이터가 생성된다. 즉, 워크플로우(또는 파이프라인)은, 한 작업의 결과로 저장된 파일을 다시 입력으로 받아 다음작업을 수행하는 형태로 진행된다.
또한, 워크플로우의 입력 파일(101) 데이터는 파일형태로 저장된다. 입력 데이터의 분할 또는 병합은 전체 워크플로우 결과에 영향을 미치지 않으며, 따라서 계산 성능을 높이기 위해 입력 데이터는 여러 파일로 단순 분할되거나 합쳐질 수 있다.
도 2는 유전체 서열 분석 워크플로우의 진행 순서를 도시한 도면이다.
유전체 서열 분석 워크플로우 또는 파이프라인은, 입출력 파일로 연결되는 워크플로우의 일 실시 예에 해당한다.
또한, 이 유전체 서열분석 파이프라인은 유전체 단편들이 저장된 입력 파일을 읽어 참조 유전체와 비교하여 그 단편들의 순서를 맞추면서 전체 유전체 순서를 완성하는 작업을 수행한다(re-sequencing 방법). 특히, 도 2은 유전체 서열분석 도구 중, bwa, samtools를 이용한 유전체 서열분석 워크플로우의 일 실시 예에 해당한다.
실시 예에 따라, 워크플로우의 첫 번째 작업인 레퍼런스 인덱싱(Reference Indexing) 작업은 서열분석이 이미 완료된 참조 유전체로부터 검색을 빠르게 하기 위한 인덱스를 생성한다(S201). 이 작업은 사전단계로 이후 반복되지는 않는다.
다음으로, 유전체 단편 맵핑(READ mapping, S202) 작업은, 일루미나 시퀀서(Illumina sequencer)와 같이 염기서열 분석기로부터 나오는 유전체 단편(본 도면에서는 싱글엔디드 리즈(single-ended reads)를 가정한다)들이 텍스트 형태로 저장된 시퀀스 리즈(sequence reads) 파일(FASTQ 파일 포맷)을 로드하여, 각 유전체 단편이 참조 유전체의 어느 부분과 유사한지를 검색하고, sai라는 확장자로 된 파일을 출력한다.
다음으로, SAM 변환(convert, S203) 작업은, sai라는 확장자로 저장된 파일과 참조 인덱스 파일, 처음 입력된 유전체 서열 단편(sequence reads)파일을 읽어 SAM(Sequence Alignment/Map)포맷의 결과파일을 출력한다.
다음으로, BAM 변환(convert, S204) 작업은, SAM파일을 바이너리(binary) 버전으로 변환한다.
다음으로, BAM 분류(sorting, S205) 작업은 BAM 포맷의 파일을 추후 작업의 속도 향상을 위해 분류한다.
또한, 상기 단계(S202) 내지 단계(S205) 작업은 입력 파일 별로 각각 수행된다.
다음으로, BAM 병합(merging, S206) 작업은, 상기 단계(S205)의 BAM 분류(sorting) 작업들의 결과들을 모두 묶어 하나의 파일로 저장하고, 다음으로, SNP 호출(calling, S207)) 작업은 단편(read)들을 참조하여, 각 유전체의 위치에 맞게 쌓는 작업을 수행한다.
상기 단계들에 따른 유전체 서열 분석 파이프라인은, 다양한 유전체 서열분석 파이프라인의 일 예이다. 유전체 서열분석 파이프라인은 입력데이터는 수백GB(Gigabyte)에 이르며, 중간 생성 파일과 최종 결과 파일을 총 데이터 크기는 수TB(Terabyte)에 이른다. 따라서, 이 유전체 단편(read)를 편의상 수십~수백 개(또는 수천 개)의 파일로 나누어 저장하고, 이 파일들을 서열분석 파이프라인의 입력파일로 지정하여 분석 작업을 수행한다. 이 유전체 단편들의 디팩토(de-facto) 표준 데이터 포맷으로 FASTQ 포맷이 많이 사용되며, 이 파일은 단순 분할 및 병합이 가능하다. 이하에서는 도 2에 도시된 유전체 워크플로우 실시 예에 대하여 워크플로우 스케줄링을 설명한다.
특히, 디스크 캐쉬 효과와 관련하여, 유전체 워크플로우를 진행함에 있어서, 레퍼런스 인덱스 입력 파일, 유전체 단편 시퀀스 입력 파일(예: 1.fastq), 유전체 단편 맵핑(Read Mapping) 작업의 출력 파일(예: 1.sai), SAM 변환 작업의 출력 파일(예: 1.sam), BAM 변환 작업의 출력 파일(예: 1.bam), BAM 분류 작업의 출력파일(예: 1.sorted.bam)을 고려할 수 있다.
따라서, 본 도면에 도시된 바와 같이, 유전체 단편 맵핑(S602) 작업부터 BAM 분류 작업의 파이프라인을 수행했을 때, 6개의 파일을 디스크로 읽기(read) 또는 쓰기(write)한다.
즉, 유전체 단편 맵핑(S202) 작업 후에는 레퍼런스 인덱스(Reference Index) 파일, 유전체 단편 시퀀스 (Sequence Reads) 입력 파일, 그리고 유전체 단편 맵핑(S202)의 출력파일(sai)이 디스크 캐쉬에 존재한다.
또한, SAM 변환(S203) 작업에서는, 상기 유전체 단편 맵핑 작업(S202)의 결과파일을 디스크에서 읽어 작업을 수행하는데, 상기 유전체 단편 맵핑 작업(S202)의 입력 파일과 결과 파일은 이미 디스크 캐쉬에 있으므로 디스크에 액세스할 필요 없이, 메모리에서 읽어오게 되어 빠르게 작업이 수행될 수 있다. 이와 같이, 이전 단계에서 디스크에 기록(write)한 파일은 디스크 캐쉬에 존재하므로 다음 단계에서는 이전 단계의 파일이 디스크 캐쉬에 존재하도록 하면 작업 효율을 높일 수 있다.
따라서, 본 발명은 상기 경우와 같이, 디스크 캐쉬를 효율적으로 관리하여 작업 효율을 향상시킬 수 있도록 하는 발명을 개시한다.
도 3은 본 발명의 실시 예에 따른 워크플로우 스케줄링 장치의 구성을 도시한 도면이다.
워크플로우 스케줄링 장치는, 워크플로우 실행 시 작업들의 자원 사용 정보를 피드백 받아서 다음 워크플로우 수행 시 이 자원사용정보를 스케줄링에 활용 가능하다.
워크플로우 스케줄링 장치는, 워크플로우 작성부, 워크플로우 엔진부, 총괄자원 자원관리부, 총괄작업 스케줄러부, 및 단위계산자원 작업관리부를 기존 워크플로우 관리시스템, 자원 관리 시스템, 및 작업 스케줄러의 기본 핵심 기능으로 모두 포함하고, 본 발명에서 신규로 제안하는 수단을 구현하는 구성으로, 자원 프로파일링 관리부, 작업분할부, 및 단위계산 자원감시부를 포함한다.
실시 예에 따라, 계산 자원의 운영체제에 대해 잘 모르는 사용자도 쉽게 계산 자원을 이용할 수 있도록 하기 위해서는 사용자 친화적인 인터페이스가 필요하다. 이를 위하여 워크플로우 스케줄링 장치의 각 구성은 이하 동작들을 수행한다.
워크플로우 작성부(301)는, 사용자가 필요한 워크플로우를 GUI(Graphic User Interface)를 통해 쉽게 정의하고 실행할 수 있는 인터페이스를 제공한다.
워크플로우 엔진부(304)는 작성된 워크플로우를 다양한 계산자원을 통해 실행하고 그 결과를 사용자에게 GUI 형태로 제공한다.
총괄자원관리부(305)는 서비스(또는 로그인) 노드에 위치하며 사용자에게 계산 서비스를 제공하는 고성능 (슈퍼) 컴퓨터 전체 계산 자원에 대한 형상 정보(전체 계산 노드들의 연결 아키텍처)와 개별 노드들의 자원 상태 및 할당 여부 등을 관리한다.
총괄작업스케줄러부(306)는 고성능 컴퓨터의 서비스 노드에 위치하며, 현재 작업큐에서 자원 할당을 대기중인 작업들을 우선순위 및 가용 자원의 유무에 따라 계산 자원에 할당하고 실행한다.
단위계산자원작업관리부(308)는 단위 계산 노드에서 위치하며, 총괄작업스케줄러부(306)에서 실행하는 세부 계산작업을 실행하고, 그 결과를 보고한다.
상기 5개의 구성은, 기존 발명에서 이미 제공하는 기능에 해당한다.
실시 예에 따라, 본 발명은, 기존 기술이 제공하지 않는, 워크플로우의 자원 프로파일을 자동적으로 업데이트하는 기능, 이 자원 프로파일에서 제공하는 정보를 바탕으로 워크플로우 작업을 분할하는 기능, 및 단위 계산자원에서 작업 실행 중 자원 사용량을 감시하는 기능을 추가로 수행할 수 있다. 추가 기능 수행하기 위한 각 구성의 동작은 이하와 같다.
단위계산자원감시부(307)는 작업들이 단위 계산 자원에서 실행 중일 때 단위 자원의 CPU활용률, 메모리 사용률, 디스크 캐쉬 사용량, 디스크 사용률, 네트워크 사용량 및 사용률 등의 작업이 실제 사용하는 계산 자원의 사용 정보를 감시하여 주기적 또는 작업 종료 후에 자원프로파일링관리부(303)로 보고한다.
자원프로파일링관리부(303)는, 워크플로우의 자원사용프로파일을 업데이트하는 기능을 수행한다. 워크플로우의 자원사용프로파일의 초기값은 사용자로부터 입력 받을 수 있다. 실시 예에 따라, 사용자는 오류를 방지하기 위하여 자원사용프로파일의 초기값을 예상되는 수치보다 약간 높게 입력할 수 있다.
사용자는 워크플로우를 실행함으로써 계산노드에서 작업들이 실행되었을 때의 실제 자원사용량 정보가 자동으로 자원프로파일링관리부(303)로 보고되고, 자원프로파일링관리부(303)에서는, 실제 사용 자원량을 바탕으로 기존 자원사용프로파일을 업데이트한다. 이렇게 자원사용프로파일은 워크플로우가 실행됨에 따라 지속적으로 업데이트되어 같은 유형의 작업을 최적으로 처리할 수 있게 된다.
자원프로파일링관리부(303)에서 관리하는 워크플로우 자원사용프로파일은 워크플로우를 구성하는 단위 작업 별로 관리되는 정보와 단위 작업을 동시 다중 수행 시 각 계산 자원의 사용량 정보, 그리고 여러 단위 작업을 혼합하여 수행 시 각 계산 자원의 자원 사용량 정보 등을 포함할 수 있다.
각 작업수행 시 단위계산자원감시부(307)에서 감시하는 자원 사용 메트릭과 자원프로파일링관리부(303)에서 관리하는 성능 메트릭으로는, CPU 이용률(peak, avg), Memory 사용량(peak, avg), 메모리상의 디스크 캐쉬 사용량, Disk I/O rate(peak, avg), Disk Utilization(peak, avg)/node, Network 사용량(peak, avg), 작업의 I/O대기 시간/비율 정보 등이 포함될 수 있다.
작업분할부(302)는 자원사용프로파일을 참조하여 워크플로우에 입력된 데이터를 처리하는 작업들을 계산노드별로 분할한다. 이러한 작업 분할은 종래 기술에서는 총괄작업스케줄러부(305)에서 담당했던 역할이나, 본 발명에서는 작업분할부(202)에서 총괄자원관리부(305)의 계산 자원에 대한 정보를 얻어와서, 이 상세 계산 자원 정보를 바탕으로 작업을 분할하여 워크플로우엔진부(304)를 통하여 총괄작업스케줄러부(306)로 실행할 작업을 전달한다.
따라서, 본 제안발명은, 상기 구성을 통하여, 워크플로우를 작성하고, 획득된 상세 자원정보를 통하여 디스크 캐쉬 효과를 극대화시킬 수 있도록 워크플로우 작업을 분할하고, 작업 수행 후 프로파일을 업데이트하여 다음 작업 분할에 이용할 수 있도록 한다.
도 4는 본 발명의 실시 예에 따른 워크플로우 스케줄링 방법을 도시한 순서도이다.
실시 예에 따라, 먼저, 워크플로우 스케줄링 장치는, 워크 플로우를 작성(또는 기 작성된 워크플로우를 오픈)하고, 입력 파일의 위치 및 목록을 지정하여 워크플로우를 실행한다(S401). 다음으로, 워크플로우 스케줄링 장치의 작업분할부는, 입력파일들의 목록 및 크기와 기타 특징을 확인하고, 가용 계산자원들의 CPU개수, 메모리 크기, 디스크 I/O(Input/output)속도, 및 네트워크 대역폭 속도 등 상세 정보를 획득하고(S302), 가용 계산자원 별로 워크플로우의 작업을 분할한다(S303). 작업분할 알고리즘에 관하여는 이하 도 5에서 상세히 설명한다.
다음으로, 가용 계산 노드 별로 맞춤 작업들을 실행하고, 정상 실행 여부를 체크하고(S404), 각 계산 노드에서 실행되는 작업이 종료되면, 작업 수행 시 모니터링된 자원 사용량 정보를 이용하여 워크플로우 자원 사용 프로파일을 업데이트한다(S405).
따라서, 본 제안발명은, 상기와 같은 단계들을 통하여, 워크플로우를 작성하고, 획득된 상세 자원정보를 통하여 디스크 캐쉬 효과를 극대화시킬 수 있도록 워크플로우 작업을 분할하고, 작업 수행 후 프로파일을 업데이트하여 다음 작업 분할에 이용할 수 있도록 한다.
도 5는 도 4에 도시된 작업 분할 단계를 상세히 도시한 도면이다.
실시 예에 따라, 워크플로우 스케줄링 장치는, 워크플로우를 구성하는 작업들이 사용하는 자원 프로파일 정보와 단위 계산 자원 간의 매칭(matching)을 통해 단위 계산 자원이 최적으로 단위 작업들을 수행할 수 있는 입력 데이터 그룹핑 통한 작업 분할 스케줄링을 수행한다.
따라서, 워크플로우 스케줄링 장치는, 가용 계산 노드의 상세 자원정보가 획득되면, 먼저 가용 계산 노드 리스트에서 하나의 계산 노드를 선택한다(S501).
이하에서는, 상기 선택된 하나의 계산 노드의 인덱스를 'i'라 한다.
또한, 상기 하나의 계산 노드 선택은, 라운드 로빈 방식으로 선택될 수 있다.
다음으로, 상기 선택된 하나의 계산 노드에 대해 동시 수행할 수 있는 작업의 수를 계산한다(S502).
실시 예에 따라, 초기값은 실제 작업이 사용하는 계측된 자원량이 없으므로 사용자 설정한 값으로 지정된다(디폴트(default) 값은 '1').
또한, 워크플로우가 실행되고 각 작업들의 CPU 이용률, Disk 이용률 또는 디스크 I/O속도, 메모리 이용률 또는 메모리 사용량, 네트워크 이용률 또는 이용량 등이 계측이 되면 동시 수행할 수 있는 작업의 수를 계산한다. 상기 작업 수 계산의 순서에 관하여는, 이하 도 6에서 상세히 설명한다.
다음으로, 상기 선택된 하나의 계산 노드에 대해서 디스크 캐쉬 프리(물리 메모리 사용률이 일정비율 이상일 때, 메모리상의 가장 오래된 디스크 캐쉬를 해제 하는 것)가 발생하지 않고 사용 가능한 디스크 캐쉬 사이즈(노드 i의 usable Disk Cache Size: 이하 'uDCSi')를 하기 수학식 1을 이용하여 계산한다(S503).
Figure pat00001
상기 수학식 1에서, PhyMemi는 계산 노드 i의 물리적 메모리 크기를 의미하며, DCFSUi는 계산 노드 i의 디스크 캐쉬 프리가 시작되는 메모리 사용률을 의미한다.
실시 예에 따라, 시스템 구현에 따른 디스크 캐쉬 프리 정책이 다르지만, 대부분의 최근 사용되고 있는 리눅스 시스템의 경우, 80% 메모리가 사용되면 메모리가 부족하다고 판단하고, 응용 프로그램들이 신규 메모리를 요청하면, 디스크 캐쉬 프리가 시작된다.
또한, sysMemi는 계산 노드 i의 부트(boot) 직후, 시스템이 사용하는 메모리 사용량을 의미한다. 실시 예에 따라, 상기 메모리 사용량은, 시스템 부팅 직후, 워크플로우 스케줄링 장치의 단위계산자원감시부에서 체크해 둔다.
또한 jobsMem은 작업들이 사용하는 물리 메모리량을 의미한다. 실시 예에 따라, 초기값은 사용자가 입력한 값이며, 작업 실행 중 워크플로우 스케줄링 장치의 단위계산자원감시부에서 감시한 값이 저장된다. 만약 작업들을 동시에 수행할 경우 단위 작업의 메모리 사용량에 동시 수행 작업 수를 곱하여 얻을 수 있다.
디스크 캐쉬 효과란 메모리가 낭비되지 않도록 메모리의 일부를 디스크 캐쉬로 사용함으로 인해서 동일한 파일에 대한 입출력 시 디스크로부터 읽어오는 대신 메모리에서 읽어옴으로써 빠른 응답 시간을 얻는 것이다.
다음으로, 디스크 캐쉬 프리가 시작되지 않도록 하려면 워크플로우 실행 중 디스크 캐쉬가 될 입출력 파일들의 총합이 uDCSi 보다 커지면 안되므로, 동시 작업을 진행할 경우에는 작업 수와 동일한 수의 입력 파일들과 그 파일로부터 생성되는 중간 파일들의 총합을 계산하여 uDCSi보다 작게 되도록 입력 파일 수와 크기를 결정하고, 이에 기초하여 그룹핑 또는 분할을 수행하여 해당 노드 i에 전송하여 실행되도록 한다(S504).
실시 예에 따라, 디스크 캐쉬가 될 총 파일 크기를 알려면 생성되는 중간 결과 파일 크기를 알아야 되는데 이 파일들의 크기는 실행해보기 전에는 알 수 없다.
따라서 초기에는 입력파일대비총파일크기비율을 사용자가 입력해준다. 입력파일대비총파일크기비율값은 워크플로우 실행을 거치면서 해당 자원사용프로파일에 지속적으로 업데이트되어 최적화된다.
디스크캐쉬되는 파일들의 총합 크기는 하기 수학식 2를 이용하여 계산할 수 있다.
Figure pat00002
따라서, 상기 수학식 2를 통하여, 예상전체파일크기가 uDCSi 보다 작도록 작업을 그룹핑한다. 이와 같은 조건을 만족하는 입력파일들이 그룹핑되면 이 입력파일들을 분석하는 작업을 해당 노드 i에 전송하여 실행되도록 한다.
다음으로, 미할당 입력 데이터가 존재하는지 여부를 판단하고(S505), 작업 분할이 진행되지 않은 입력 파일들이 아직 남아 있으면 단계(S501)로 다시 진행하고, 모든 입력데이터에 대해 작업이 할당되면 입력데이터 분할을 종료한다.
따라서, 상기와 같은 단계를 통하여 분할된 작업 그룹들이 워크플로우 스케줄링 장치의 워크플로우엔진부를 통해 각 해당 노드로 전송되어, 계산 노드 별 작업이 실행될 수 있다.
도 6은 도 5의 계산 노드에서 동시 수행될 수 있는 작업 수를 계산하는 방법을 도시한 순서도이다.
실시 예에 따라, 먼저 각 계산 자원 별 동시 작업 수를 계산한다.
따라서, CPU 개수와 이용률 기준 최대 동시 작업 수를 계산하고(S601), 다음으로, 디스크 이용률 기준 최대 동시 작업 수를 계산한다(S602). 다음으로, 메모리 사용량 기준 최대 동시 작업 수를 계산하고(S603), 네크워크 이용률 기준 최대 동시작업 수를 계산한다(S604).
다음으로, 상기 단계들을 통하여 각 계산 자원 별 동시 작업수가 계산되면, 각 계산자원 별 동시 작업 수 중에 가장 작은 값을 해당 노드에 대한 <동시작업 수i>로 결정한다(S605). 이는, 각 계산자원 별 동시 작업 수 중 가장 작은 값이 성능을 결정하는 병목 자원에 해당하기 때문이다.
또한, 이상에서는 본 발명의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해돼서는 안 될 것이다.
301: 워크플로우 작성부
302: 작업분할부
303: 자원프로파일링관리부
304: 워크플로우 엔진부
305: 총괄자원 자원관리부
306: 총괄작업 스케줄러부
307: 단위계산 자원감시부
308: 단위계산 자원작업관리부

Claims (11)

  1. 계산 노드들의 실제 사용 자원량에 대한 사용 정보를 포함하는 워크플로우의 자원사용 프로파일을 저장하는 자원프로파일링 관리부;
    소정의 작업들이 단위 계산 자원에서 실행 중인 경우, 상기 단위 계산 자원의 작업이 실제 사용하는 계산 자원의 사용 정보를 측정하고, 상기 측정 결과를 상기 자원프로파일링 관리부로 보고하여 상기 자원사용 프로파일이 업데이트되도록 하는 단위계산 자원 감지부; 및
    상기 자원프로파일링 관리부의 자원사용 프로파일을 로드(load)하고, 상기 계산 노드들 중 어느 하나의 계산 노드를 선택하여 상기 선택된 계산 노드에서 동시 수행 가능한 작업 수 및 상기 선택된 계산 노드에서 디스크 캐쉬 프리가 발생하지 않고 사용 가능한 가용 디스크 캐쉬 사이즈를 결정하고, 동시 작업으로 디스크 캐쉬되는 파일들의 총합이 상기 가용 디스크 캐쉬 사이즈보다 작게 되도록 입력 파일 수와 파일 크기를 결정하고, 상기 결정된 입력 파일 수와 파일 크기에 기초하여 작업들을 그룹핑 또는 분할하여 작업이 수행될 계산 노드를 결정하는 작업분할부를 포함하는 것을 특징으로 하는 워크플로우 스케줄링 장치.
  2. 청구항 1에 있어서,
    상기 단위계산 자원 감지부는,
    상기 측정 결과를 주기적 또는 작업 종료 후에 자원프로파일링 관리부로 보고하는 것을 특징으로 하는 워크플로우 스케줄링 장치.
  3. 청구항 1에 있어서,
    상기 자원프로파일링 관리부는,
    워크플로우를 구성하는 단위 작업 별로 관리되는 정보, 단위 작업을 동시 다중 수행 시 각 계산 자원의 사용량 정보, 및 여러 단위 작업을 혼합하여 수행 시 각 계산 자원의 자원 사용량 정보 중 어느 하나 이상을 포함하는 상기 워크플로우의 자원사용 프로파일을 저장하는 것을 특징으로 하는 워크플로우 스케줄링 장치.
  4. 스케줄링 장치의 워크플로우 작업 스케줄링 방법에 있어서,
    자원프로파일링 관리부에서 자원사용 프로파일을 로드(load)하는 단계;
    계산 노드들 중 어느 하나의 계산 노드를 선택하는 단계;
    상기 선택된 계산 노드에서 동시 수행 가능한 작업 수, 및 상기 선택된 계산 노드에서 디스크 캐쉬 프리가 발생하지 않고 사용 가능한 가용 디스크 캐쉬 사이즈를 결정하는 단계;
    동시 작업으로 디스크 캐쉬되는 파일들의 총합이 상기 가용 디스크 캐쉬 사이즈보다 작게 되도록 입력 파일 수와 크기를 결정하는 단계; 및
    상기 결정된 입력 파일 수와 크기에 기초하여 작업들을 그룹핑 또는 분할하여 작업이 수행될 계산 노드를 결정하는 단계를 포함하는 것을 특징으로 하는 워크플로우 작업 스케줄링 방법.
  5. 청구항 4에 있어서,
    상기 가용 디스크 캐쉬 사이즈를 결정하는 단계는,
    수학식 1에 의해 상기 가용 디스크 캐쉬 사이즈(uDCSi)를 결정하고,
    상기 수학식 1은
    Figure pat00003

    이고, 여기서 PhyMemi는 상기 선택된 계산 노드의 물리적 메모리 크기이고, DCFSUi는 상기 선택된 계산 노드의 디스크 캐쉬 프리가 시작되는 메모리 사용률이고, sysMemi는 상기 선택된 계산 노드의 부트(boot) 직후, 시스템이 사용하는 메모리 사용량이고, jobsMem은 임의의 작업들이 사용하는 물리 메모리 크기인 것을 특징으로 하는 워크플로우 스케줄링 방법.
  6. 청구항 4에 있어서,
    상기 입력 파일 수와 크기를 결정하는 단계는,
    수학식 2에 의해 상기 동시 작업으로 디스크 캐쉬되는 파일들의 총합을 계산하고,
    상기 수학식 2는
    Figure pat00004

    인 것을 특징으로 하는 워크플로우 스케줄링 방법.
  7. 청구항 6에 있어서,
    상기 입력 파일 수와 크기를 결정하는 단계는,
    상기 자원사용 프로파일에 입력파일대비 총 파일크기비율 정보가 존재하지 않는 경우, 사용자로부터 입력파일대비 총 파일크기비율을 입력 받는 것을 특징으로 하는 워크플로우 스케줄링 방법.
  8. 청구항 4에 있어서,
    상기 어느 하나의 계산 노드를 선택하는 단계는,
    라운드 로빈(Round Robin) 방식으로 상기 계산 노드들 중 어느 하나의 계산 노드를 선택하는 단계를 포함하는 것을 특징으로 하는 워크플로우 스케줄링 방법.
  9. 청구항 4에 있어서,
    상기 동시 수행 가능한 작업 수를 결정하는 단계는,
    상기 선택된 계산 노드의 CPU 개수와 CPU 이용률 정보에 기초하여 최대 동시 작업 수를 계산하는 단계;
    상기 선택된 계산 노드의 디스크 이용률 정보에 기초하여 최대 동시 작업 수를 계산하는 단계;
    상기 선택된 계산 노드의 메모리 사용량 정보에 기초하여 최대 동시 작업 수를 계산하는 단계;
    상기 선택된 계산 노드의 네트워크 이용률 정보에 기초하여 최대 동시 작업 수를 계산하는 단계; 및
    상기 계산된 최대 동시 작업 수들 중, 가장 작은 값을 상기 선택된 계산 노드의 동시 수행 가능한 작업 수로 결정하는 단계
    를 포함하는 것을 특징으로 하는 워크플로우 스케줄링 방법.
  10. 청구항 4에 있어서,
    소정의 작업들이 단위 계산 자원에서 실행 중인 경우, 상기 단위 계산 자원의 작업이 실제 사용하는 계산 자원의 사용 정보를 측정하는 단계; 및
    상기 측정 결과를 워크플로우의 자원사용프로파일로 저장하거나 업데이트 하는 단계를 더 포함하는 것을 특징으로 하는 워크플로우 스케줄링 방법.
  11. 청구항 10에 있어서,
    상기 워크플로우의 자원사용 프로파일로 저장하거나 업데이트하는 단계는,
    워크플로우를 구성하는 단위 작업 별로 관리되는 정보, 단위 작업을 동시 다중 수행 시 각 계산 자원의 사용량 정보, 및 여러 단위 작업을 혼합하여 수행 시 각 계산 자원의 자원 사용량 정보 중 어느 하나 이상을 포함하는 상기 워크플로우의 자원사용 프로파일을 저장하거나 업데이트하는 단계를 포함하는 것을 특징으로 하는 워크플로우 스케줄링 방법.
KR1020120020792A 2012-02-29 2012-02-29 디스크 캐쉬 효과를 극대화하는 워크플로우 작업 스케줄링 장치 및 방법 KR101694307B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020120020792A KR101694307B1 (ko) 2012-02-29 2012-02-29 디스크 캐쉬 효과를 극대화하는 워크플로우 작업 스케줄링 장치 및 방법
CN2012105166911A CN103294535A (zh) 2012-02-29 2012-09-28 最大化磁盘缓存效果的工作流作业调度装置及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120020792A KR101694307B1 (ko) 2012-02-29 2012-02-29 디스크 캐쉬 효과를 극대화하는 워크플로우 작업 스케줄링 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20130099351A true KR20130099351A (ko) 2013-09-06
KR101694307B1 KR101694307B1 (ko) 2017-01-09

Family

ID=49095468

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120020792A KR101694307B1 (ko) 2012-02-29 2012-02-29 디스크 캐쉬 효과를 극대화하는 워크플로우 작업 스케줄링 장치 및 방법

Country Status (2)

Country Link
KR (1) KR101694307B1 (ko)
CN (1) CN103294535A (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104636397B (zh) * 2013-11-15 2018-04-20 阿里巴巴集团控股有限公司 用于分布式计算的资源分配方法、计算加速方法以及装置
CN105260243B (zh) * 2015-10-30 2018-10-12 浪潮(北京)电子信息产业有限公司 一种集群作业调度方法与系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009541851A (ja) * 2006-06-19 2009-11-26 ディスキーパー・コーポレイション リソースに基づいたスケジューラ
JP2010002942A (ja) * 2008-06-18 2010-01-07 Fujitsu Ltd 分散ディスクキャッシュシステム及び分散ディスクキャッシュ方法
JP2011118899A (ja) * 2009-11-30 2011-06-16 Internatl Business Mach Corp <Ibm> 高性能計算クラスタにおいてデータを分配するための方法及びシステム
JP5343523B2 (ja) * 2008-11-17 2013-11-13 富士通株式会社 ジョブ管理装置、ジョブ管理方法およびジョブ管理プログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100573528C (zh) * 2007-10-30 2009-12-23 北京航空航天大学 数字博物馆网格及其构造方法
EP2269136B1 (en) * 2008-04-15 2016-11-02 International Business Machines Corporation Method, system and computer program for workload scheduling
CN101957800A (zh) * 2010-06-12 2011-01-26 福建星网锐捷网络有限公司 多通道缓存分配方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009541851A (ja) * 2006-06-19 2009-11-26 ディスキーパー・コーポレイション リソースに基づいたスケジューラ
JP2010002942A (ja) * 2008-06-18 2010-01-07 Fujitsu Ltd 分散ディスクキャッシュシステム及び分散ディスクキャッシュ方法
JP5343523B2 (ja) * 2008-11-17 2013-11-13 富士通株式会社 ジョブ管理装置、ジョブ管理方法およびジョブ管理プログラム
JP2011118899A (ja) * 2009-11-30 2011-06-16 Internatl Business Mach Corp <Ibm> 高性能計算クラスタにおいてデータを分配するための方法及びシステム

Also Published As

Publication number Publication date
KR101694307B1 (ko) 2017-01-09
CN103294535A (zh) 2013-09-11

Similar Documents

Publication Publication Date Title
US9870270B2 (en) Realizing graph processing based on the mapreduce architecture
US9875135B2 (en) Utility-optimized scheduling of time-sensitive tasks in a resource-constrained environment
US9417926B2 (en) Optimized multi-component co-allocation scheduling with advanced reservations for data transfers and distributed jobs
Liu et al. Multi-objective scheduling of scientific workflows in multisite clouds
US10108458B2 (en) System and method for scheduling jobs in distributed datacenters
US8438570B2 (en) Resource allocator with knowledge-based optimization
Nghiem et al. Towards efficient resource provisioning in MapReduce
Yang et al. Design adaptive task allocation scheduler to improve MapReduce performance in heterogeneous clouds
US10601690B2 (en) Assessing performance of networked computing environments
CN103995735A (zh) 用于调度工作流作业的设备和方法
US10353745B1 (en) Assessing performance of disparate computing environments
US10191779B2 (en) Application execution controller and application execution method
WO2011009652A2 (en) A method and system for job scheduling in distributed data processing system with identification of optimal network topology
CN108205469B (zh) 一种基于MapReduce的资源分配方法及服务器
JP2012118669A (ja) 負荷分散処理システム及び負荷分散処理方法
KR20140117905A (ko) 클라우드 서비스의 가상자원 할당을 위한 퍼지 로직 기반의 자원평가 장치 및 방법
US10083066B2 (en) Processing data by using simultaneous multithreading
Yokoyama et al. Affinity aware scheduling model of cluster nodes in private clouds
CN112000460A (zh) 一种基于改进贝叶斯算法的服务扩缩容的方法及相关设备
CN108139929B (zh) 用于调度多个任务的任务调度装置和方法
US20200293372A1 (en) Efficient resource allocation for concurrent graph workloads
Rajan et al. Designing self-tuning split-map-merge applications for high cost-efficiency in the cloud
Liu et al. Funcpipe: A pipelined serverless framework for fast and cost-efficient training of deep learning models
Simmhan et al. Comparison of resource platform selection approaches for scientific workflows
KR101694307B1 (ko) 디스크 캐쉬 효과를 극대화하는 워크플로우 작업 스케줄링 장치 및 방법

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
GRNT Written decision to grant