[go: up one dir, main page]

RU2011117765A - Устройство (варианты) и способ реализации двухпроходного планировщика задач линейной сложности - Google Patents

Устройство (варианты) и способ реализации двухпроходного планировщика задач линейной сложности Download PDF

Info

Publication number
RU2011117765A
RU2011117765A RU2011117765/08A RU2011117765A RU2011117765A RU 2011117765 A RU2011117765 A RU 2011117765A RU 2011117765/08 A RU2011117765/08 A RU 2011117765/08A RU 2011117765 A RU2011117765 A RU 2011117765A RU 2011117765 A RU2011117765 A RU 2011117765A
Authority
RU
Russia
Prior art keywords
named
tasks
aforementioned
processors
passage
Prior art date
Application number
RU2011117765/08A
Other languages
English (en)
Inventor
Юрий Сергеевич Шуткин (RU)
Юрий Сергеевич Шуткин
Павел Александрович Алисейчик (RU)
Павел Александрович Алисейчик
Эльяр Эльдарович Гасанов (RU)
Эльяр Эльдарович Гасанов
Илья Владимирович Незнанов (RU)
Илья Владимирович Незнанов
Андрей Павлович Соколов (RU)
Андрей Павлович Соколов
Павел Анатольевич Пантелеев (RU)
Павел Анатольевич Пантелеев
Original Assignee
ЭлЭсАй Корпорейшн (US)
ЭлЭсАй Корпорейшн
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 ЭлЭсАй Корпорейшн (US), ЭлЭсАй Корпорейшн filed Critical ЭлЭсАй Корпорейшн (US)
Priority to RU2011117765/08A priority Critical patent/RU2011117765A/ru
Priority to US13/290,299 priority patent/US8850437B2/en
Publication of RU2011117765A publication Critical patent/RU2011117765A/ru

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs

Landscapes

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

Abstract

1. Способ реализации двухпроходного планировщика задач линейной сложности, включающий: ! (A) присвоение каждой из названных задач соответствующему одному или нескольким из множества процессоров при первом прохождении названных задач, где названное первое прохождение является неитеративным; ! (B) перераспределение названных задач среди названных процессоров для сокращения соответствующей нагрузки на один или несколько из названных процессоров при втором прохождении названных задач, где названное второе прохождение (i) является неитеративным и (ii) начинается после завершения первого прохождения; и ! (C) генерирование графика в ответ на вышеупомянутое присвоение и вышеупомянутое перераспределение, где названный график закрепляет названные задачи за названными процессорами. ! 2. Способ по п.1, отличающийся тем, что сложность планирования названных задач является линейной в зависимости, как от числа названных задач, так и от числа названных процессоров. ! 3. Способ по п.1, дополнительно включающий генерирование списка вышеупомянутых задач перед вышеупомянутым первым прохождением, где названный список сортируется по множеству соответствующих длин названных задач. ! 4. Способ по п.3, отличающийся тем, что вышеупомянутое присвоение названных задач вышеупомянутым процессорам при названном первом прохождении выполняется в порядке, определенном вышеупомянутым списком. ! 5. Способ по п.4, отличающийся тем, что самая длинная из названных задач назначается первой, а самая короткая из названных задач назначается последней. ! 6. Способ по п.1, отличающийся тем, что во время вышеупомянутого первого прохождения (i) вышеупомян�

Claims (20)

1. Способ реализации двухпроходного планировщика задач линейной сложности, включающий:
(A) присвоение каждой из названных задач соответствующему одному или нескольким из множества процессоров при первом прохождении названных задач, где названное первое прохождение является неитеративным;
(B) перераспределение названных задач среди названных процессоров для сокращения соответствующей нагрузки на один или несколько из названных процессоров при втором прохождении названных задач, где названное второе прохождение (i) является неитеративным и (ii) начинается после завершения первого прохождения; и
(C) генерирование графика в ответ на вышеупомянутое присвоение и вышеупомянутое перераспределение, где названный график закрепляет названные задачи за названными процессорами.
2. Способ по п.1, отличающийся тем, что сложность планирования названных задач является линейной в зависимости, как от числа названных задач, так и от числа названных процессоров.
3. Способ по п.1, дополнительно включающий генерирование списка вышеупомянутых задач перед вышеупомянутым первым прохождением, где названный список сортируется по множеству соответствующих длин названных задач.
4. Способ по п.3, отличающийся тем, что вышеупомянутое присвоение названных задач вышеупомянутым процессорам при названном первом прохождении выполняется в порядке, определенном вышеупомянутым списком.
5. Способ по п.4, отличающийся тем, что самая длинная из названных задач назначается первой, а самая короткая из названных задач назначается последней.
6. Способ по п.1, отличающийся тем, что во время вышеупомянутого первого прохождения (i) вышеупомянутые задачи, имеющие соответствующую длину короче первого предела, назначаются одному из названных процессоров, а (ii) вышеупомянутые задачи, имеющие соответствующую длину больше второго порога, назначаются всем из названных процессоров.
7. Способ по п.1, отличающийся тем, что вышеупомянутое перераспределение названных задач при вышеупомянутом втором прохождении изменяет, по меньшей мере, одну из названных задач от закрепления за одним из названных процессоров к закреплению, по меньшей мере, за двумя из названных процессоров.
8. Способ по п.1, отличающийся тем, что названный график включает множество цепочек, где каждая из названных цепочек (i) соответствует соответствующей из названных задач и (ii) идентифицирует названные один или несколько процессоров, которые обрабатывают названную соответствующую задачу.
9. Способ по п.1, отличающийся тем, что названный график присоединяет названные задачи, закрепленные за вышеупомянутыми процессорами таким образом, чтобы при обработке названных присоединенных задач не существовало промежутков.
10. Устройство для реализации двухпроходного планировщика задач линейной сложности, содержащее:
память, сконфигурированную для буферизации множества задач; и
схему, сконфигурированную для (i) назначения каждой из названных задач соответствующим одному или нескольким из множества процессоров при первом прохождении названных задач, где названное первое прохождение является неитеративным, (ii) перераспределения названных задач среди названных процессоров для сокращения соответствующей нагрузки на один или несколько из названных процессоров при втором прохождении названных задач, где названное второе прохождение (i) является неитеративным и (ii) начинается после завершения первого прохождения и (iii) генерирования графика в ответ на вышеупомянутое присвоение и вышеупомянутое перераспределение, где названный график закрепляет названные задачи за названными процессорами.
11. Устройство по п.10, отличающееся тем, что сложность планирования названных задач является линейной в зависимости, как от числа названных задач, так и от числа названных процессоров.
12. Устройство по п.10, отличающееся тем, что (i) названная схема дополнительно сконфигурирована для генерирования списка вышеупомянутых задач перед вышеупомянутым первым прохождением и (ii) названный список сортируется по множеству соответствующих длин названных задач.
13. Устройство по п.12, отличающееся тем, что вышеупомянутое присвоение названных задач вышеупомянутым процессорам при названном первом прохождении выполняется в порядке, определенном вышеупомянутым списком.
14. Устройство по п.13, отличающееся тем, что самая длинная из названных задач назначается первой, а самая короткая из названных задач назначается последней.
15. Устройство по п.10, отличающееся тем, что во время вышеупомянутого первого прохождения (i) вышеупомянутые задачи, имеющие соответствующую длину короче первого предела, назначаются одному из названных процессоров, а (ii) вышеупомянутые задачи, имеющие соответствующую длину больше второго порога, назначаются всем из названных процессоров.
16. Устройство по п.10, отличающееся тем, что вышеупомянутое перераспределение названных задач при вышеупомянутом втором прохождении изменяет, по меньшей мере, одну из названных задач от закрепления за одним из названных процессоров к закреплению, по меньшей мере, за двумя из названных процессоров.
17. Устройство по п.10, отличающееся тем, что названный график включает множество цепочек, где каждая из названных цепочек (i) соответствует соответствующей из названных задач и (ii) идентифицирует названные один или несколько процессоров, которые обрабатывают названную соответствующую задачу.
18. Устройство по п.10, отличающееся тем, что названная схема и названные процессоры образуют декодер.
19. Устройство по п.11, отличающееся тем, что названное устройство реализовано в виде одной или нескольких интегральных схем.
20. Устройство для реализации двухпроходного планировщика задач линейной сложности, содержащее:
средство для назначения каждой из названных задач соответствующим одному или нескольким из множества процессоров при первом прохождении названных задач, где названное первое прохождение является неитеративным;
средство для перераспределения названных задач среди названных процессоров для сокращения соответствующей нагрузки на один или несколько из названных процессоров при втором прохождении названных задач, где названное второе прохождение (i) является неитеративным и (ii) начинается после завершения первого прохождения; и
средство для генерирования графика в ответ на вышеупомянутое присвоение и вышеупомянутое перераспределение, где названный график закрепляет названные задачи за названными процессорами.
RU2011117765/08A 2011-05-05 2011-05-05 Устройство (варианты) и способ реализации двухпроходного планировщика задач линейной сложности RU2011117765A (ru)

Priority Applications (2)

Application Number Priority Date Filing Date Title
RU2011117765/08A RU2011117765A (ru) 2011-05-05 2011-05-05 Устройство (варианты) и способ реализации двухпроходного планировщика задач линейной сложности
US13/290,299 US8850437B2 (en) 2011-05-05 2011-11-07 Two-pass linear complexity task scheduler

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2011117765/08A RU2011117765A (ru) 2011-05-05 2011-05-05 Устройство (варианты) и способ реализации двухпроходного планировщика задач линейной сложности

Publications (1)

Publication Number Publication Date
RU2011117765A true RU2011117765A (ru) 2012-11-10

Family

ID=47091164

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2011117765/08A RU2011117765A (ru) 2011-05-05 2011-05-05 Устройство (варианты) и способ реализации двухпроходного планировщика задач линейной сложности

Country Status (2)

Country Link
US (1) US8850437B2 (ru)
RU (1) RU2011117765A (ru)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8789065B2 (en) 2012-06-08 2014-07-22 Throughputer, Inc. System and method for input data load adaptive parallel processing
US9448847B2 (en) 2011-07-15 2016-09-20 Throughputer, Inc. Concurrent program execution optimization
US20150178092A1 (en) * 2013-12-20 2015-06-25 Asit K. Mishra Hierarchical and parallel partition networks
US11119813B1 (en) * 2016-09-30 2021-09-14 Amazon Technologies, Inc. Mapreduce implementation using an on-demand network code execution system

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3039953B2 (ja) 1989-04-28 2000-05-08 株式会社日立製作所 並列化装置
US5301324A (en) * 1992-11-19 1994-04-05 International Business Machines Corp. Method and apparatus for dynamic work reassignment among asymmetric, coupled processors
US5822747A (en) 1996-08-23 1998-10-13 Tandem Computers, Inc. System and method for optimizing database queries
US7725897B2 (en) 2004-11-24 2010-05-25 Kabushiki Kaisha Toshiba Systems and methods for performing real-time processing using multiple processors
US7614053B2 (en) 2004-02-20 2009-11-03 Sony Computer Entertainment Inc. Methods and apparatus for task management in a multi-processor system
US7913254B2 (en) * 2004-10-11 2011-03-22 International Business Machines Corporation Method and system for mapping threads or tasks to CPUs in a parallel computer
JP3914230B2 (ja) * 2004-11-04 2007-05-16 株式会社東芝 プロセッサシステム及びその制御方法
JP4606142B2 (ja) * 2004-12-01 2011-01-05 株式会社ソニー・コンピュータエンタテインメント スケジューリング方法、スケジューリング装置およびマルチプロセッサシステム
US7707578B1 (en) * 2004-12-16 2010-04-27 Vmware, Inc. Mechanism for scheduling execution of threads for fair resource allocation in a multi-threaded and/or multi-core processing system
US20070143759A1 (en) 2005-12-15 2007-06-21 Aysel Ozgur Scheduling and partitioning tasks via architecture-aware feedback information
US7461241B2 (en) * 2006-07-31 2008-12-02 International Business Machines Corporation Concurrent physical processor reassignment method
CA2738990A1 (en) * 2008-10-03 2010-04-08 The University Of Sydney Scheduling an application for performance on a heterogeneous computing system
US9384042B2 (en) * 2008-12-16 2016-07-05 International Business Machines Corporation Techniques for dynamically assigning jobs to processors in a cluster based on inter-thread communications
US9396021B2 (en) * 2008-12-16 2016-07-19 International Business Machines Corporation Techniques for dynamically assigning jobs to processors in a cluster using local job tables
US8453156B2 (en) 2009-03-30 2013-05-28 Intel Corporation Method and system to perform load balancing of a task-based multi-threaded application

Also Published As

Publication number Publication date
US20120284731A1 (en) 2012-11-08
US8850437B2 (en) 2014-09-30

Similar Documents

Publication Publication Date Title
US8813073B2 (en) Compiling apparatus and method of a multicore device
US20120066683A1 (en) Balanced thread creation and task allocation
JP2005044326A (ja) 改善されたedfスケジューリング方法
SG11201808548XA (en) Task-resource scheduling method and device
CN111124656A (zh) 用于向专用计算资源分配任务的方法、设备和计算机程序产品
US8707320B2 (en) Dynamic partitioning of data by occasionally doubling data chunk size for data-parallel applications
US20150135186A1 (en) Computer system, method and computer-readable storage medium for tasks scheduling
RU2011117765A (ru) Устройство (варианты) и способ реализации двухпроходного планировщика задач линейной сложности
JP2017514247A5 (ru)
CN106569887B (zh) 一种云环境下细粒度任务调度方法
CN102073547B (zh) 一种多路服务器多缓冲区并行收包的性能优化方法
ATE503223T1 (de) Verfahren zur verteilung von rechenzeit in einem rechnersystem
CN104871153B8 (zh) 用于分布式大规模并行处理数据库的方法和系统
CN106339802A (zh) 任务分配的方法和装置、电子设备
ATE410730T1 (de) Verfahren zum zuweisen von objekten zu verarbeitungseinheiten
KR20130059300A (ko) 멀티코어 시스템에서 실시간 및 서비스 품질 지원을 위한 스케줄링
US20170132030A1 (en) Virtual machine system, control method thereof, and control program recording medium thereof
JPWO2013058396A1 (ja) タスク配置装置及びタスク配置方法
CN109716298A (zh) 用于短周期性任务的有效调度器
EP2395430A4 (en) ASSIGNMENT METHOD FOR VIRTUAL COMPUTERS, ASSIGNMENT PROGRAM AND INFORMATION PROCESSING DEVICE WITH A VIRTUAL COMPUTER ENVIRONMENT
CN104375883B (zh) 一种cfs调度器
JP6530811B2 (ja) 画像処理装置
RU2008149048A (ru) Апппаратно-реализуемый способ выполнения программ
KR102224446B1 (ko) Gpgpu 스레드 블록 스케줄링 확장 방법 및 장치
CN104484160A (zh) 一种优化的分簇vliw处理器上的指令调度和寄存器分配方法