RU2015130911A - Способ обработки для многоядерного процессора и многоядерный процессор - Google Patents

Способ обработки для многоядерного процессора и многоядерный процессор Download PDF

Info

Publication number
RU2015130911A
RU2015130911A RU2015130911A RU2015130911A RU2015130911A RU 2015130911 A RU2015130911 A RU 2015130911A RU 2015130911 A RU2015130911 A RU 2015130911A RU 2015130911 A RU2015130911 A RU 2015130911A RU 2015130911 A RU2015130911 A RU 2015130911A
Authority
RU
Russia
Prior art keywords
core
machine code
execution time
value
subtask
Prior art date
Application number
RU2015130911A
Other languages
English (en)
Other versions
RU2630753C2 (ru
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 Хуавэй Текнолоджиз Ко., Лтд.
Publication of RU2015130911A publication Critical patent/RU2015130911A/ru
Application granted granted Critical
Publication of RU2630753C2 publication Critical patent/RU2630753C2/ru

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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • 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
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)
  • Debugging And Monitoring (AREA)
  • Multi Processors (AREA)

Claims (44)

1. Способ обработки для многоядерного процессора (1), при этом многоядерный процессор содержит по меньшей мере первое ядро (21) и второе ядро (22), при этом способ содержит этапы, на которых:
принимают (100) машинный код для выполнения заранее определенной операции;
предоставляют (120) принятый машинный код первому ядру (21) и второму ядру (22);
обрабатывают (130) машинный код на первом ядре (21) и втором ядре (22);
определяют (140) значение первого времени выполнения для первого ядра (21) и значение второго времени выполнения для второго ядра (22), при этом значение первого времени выполнения определяет время выполнения машинного кода на первом ядре (21), а значение второго времени выполнения определяет время выполнения машинного кода на втором ядре (22);
вычисляют (150) первый коэффициент эффективности на основе определенного значения первого времени выполнения и второй коэффициент эффективности на основе определенного значения второго времени выполнения; и
обрабатывают (160) машинный код на первом ядре (21) или втором ядре (22) на основе вычисленных коэффициентов эффективности.
2. Способ по п. 1, дополнительно содержащий этап (110) для определения рабочей нагрузки первого ядра (21) и второго ядра (22);
причем упомянутый первый коэффициент эффективности вычисляется на основе определенного значения первого времени выполнения и определенной рабочей нагрузки первого ядра (21), а упомянутый второй коэффициент эффективности вычисляется на основе определенного значения второго времени выполнения и определенной рабочей нагрузки второго ядра (22).
3. Способ по п. 1, в котором этап (100) приема принимает машинный код, содержащий первый поднабор, относящийся к заранее определенному набору инструкций первого ядра (21), и второй поднабор, относящийся к заранее определенному набору инструкций второго ядра (22);
причем этап (120) предоставления предоставляет первый поднабор первому ядру (21) и предоставляет второй поднабор второму ядру (22).
4. Способ по п. 1, дополнительно содержащий этап (170) для сохранения определенного значения первого времени выполнения и определенного значения второго времени выполнения в памяти (170) времени выполнения; причем первый коэффициент эффективности и второй коэффициент эффективности вычисляются на основе сохраненных значений времени выполнения.
5. Способ инструктирования для многоядерного процессора (1), при этом многоядерный процессор (1) содержит по меньшей мере первое ядро (21) и второе ядро (22), при этом способ содержит этапы, на которых:
считывают (200) предварительно сохраненный программный код;
идентифицируют (210) подзадачу в считанном программном коде, при этом идентифицированная подзадача выполняется множество раз, когда выполняется операция в соответствии со считанным программным кодом, и множество выполнений идентифицированной подзадачи могут выполняться одновременно;
генерируют (220) машинный код упомянутой идентифицированной подзадачи, при этом упомянутый машинный код содержит машинно-выполняемые инструкции для выполнения упомянутой идентифицированной подзадачи на первом ядре (21) и втором ядре (22).
6. Способ по п. 5, в дополнительно содержащий этап (230) для определения количества итераций упомянутой подзадачи, когда выполняется операция в соответствии со считанным программным кодом, причем упомянутый этап (220) генерирования только генерирует машинный код для первого ядра (21) и второго ядра (22), если определенное количество итераций больше, чем заранее определенное пороговое значение.
7. Способ по п. 5, в котором идентифицированная подзадача представляет собой цикл.
8. Компьютерный программный продукт, адаптированный для выполнения способа по п. 1.
9. Компьютерный программный продукт, адаптированный для выполнения способа по п. 5.
10. Машинно-читаемый запоминающий носитель, содержащий программный продукт по п. 8.
11. Машинно-читаемый запоминающий носитель, содержащий программный продукт по п. 9.
12. Многоядерный процессор, содержащий
первое ядро (21), адаптированное для обработки машинного кода в соответствии с первым набором инструкций;
второе ядро (22), адаптированное для обработки машинного кода в соответствии со вторым набором инструкций; и
планировщик (10), включающий в себя
средство (11) приема, адаптированное для приема машинного кода для выполнения заранее определенной операции;
средство (12) передачи, адаптированное для предоставления принятого машинного кода первому ядру (21) и второму ядру (22);
средство (13) обработки, адаптированное для начала обработки машинного кода на первом ядре (21) и втором ядре (22);
средство (14) определения, адаптированное для определения значения первого времени выполнения, задающего время выполнения машинного кода на первом ядре (21), и для определения значения второго времени выполнения, задающего время выполнения машинного кода на втором ядре (22); и
средство (15) вычисления, адаптированное для вычисления первого коэффициента эффективности на основе определенного значения первого времени выполнения и для вычисления второго коэффициента эффективности на основе определенного значения второго времени выполнения;
причем упомянутое средство (13) обработки начинает дополнительную обработку машинного кода на первом ядре (21) или на втором ядре (22) на основе вычисленного первого коэффициента эффективности и вычисленного второго коэффициента эффективности.
13. Процессор по п. 12, в котором планировщик (10) дополнительно содержит средство (16) определения рабочей нагрузки, адаптированное для определения первой рабочей нагрузки на первом ядре (21) и второй рабочей нагрузки на втором ядре (22);
причем упомянутое средство (15) вычисления вычисляет первый коэффициент эффективности на основе определенного значения первого времени выполнения и определенной первой рабочей нагрузки, и вычисляет второй коэффициент эффективности на основе определенного значения второго времени выполнения и определенной второй рабочей нагрузки.
14. Процессор по п. 12, в котором принятый машинный код содержит первый поднабор, относящийся к заранее определенному первому набору инструкций, и второй поднабор, относящийся к заранее определенному второму набору инструкций; и
причем средство (12) передачи предоставляет только первый поднабор первому ядру (21), и предоставляет только второй поднабор второму ядру (22).
15. Процессор по п. 12, дополнительно содержащий память (17) времени выполнения для хранения определенного значения первого времени выполнения и определенного значения второго времени выполнения.
16. Процессор по п. 12, причем процессор (1) содержит первый блок (31) обработки и второй блок (32) обработки, и причем первое ядро (21) расположено в первом блоке (31) обработки, а второе ядро (22) расположено во втором блоке (32) обработки.
17. Генератор инструкций для многоядерного процессора (1), при этом многоядерный процессор (1) содержит по меньшей мере первое ядро (21) и второе ядро (22), содержащие
средство (51) приема кода, адаптированное для приема предварительно сохраненного программного кода;
средство (52) анализа, адаптированное для идентификации подзадачи в считанном программном коде, при этом идентифицированная подзадача выполняется множество раз, когда выполняется операция в соответствии со считанным программным кодом, и множество выполнений идентифицированной подзадачи могут выполняться одновременно;
средство (53) компиляции, адаптированное для генерирования машинного кода идентифицированной подзадачи, при этом упомянутый машинный код содержит машинно-выполняемые инструкции для выполнения упомянутой идентифицированной подзадачи на первом ядре (21), имеющем первый набор инструкций, и упомянутый машинный код содержит машинно-выполняемые инструкции для выполнения упомянутой идентифицированной подзадачи на втором ядре (22), имеющем второй набор инструкций.
18. Генератор по п. 17, дополнительно содержащий средство (54) оценки выполнения, адаптированное для определения количества итераций упомянутой подзадачи, когда выполняется операция в соответствии со считанным программным кодом,
причем упомянутое средство (53) компиляции только генерирует машинный код для первого ядра (21) и машинный код для второго ядра (22), если определенное количество итераций больше, чем заранее определенное пороговое значение.
RU2015130911A 2012-12-26 2012-12-26 Способ обработки для многоядерного процессора и многоядерный процессор RU2630753C2 (ru)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/RU2012/001117 WO2014104912A1 (en) 2012-12-26 2012-12-26 Processing method for a multicore processor and milticore processor

Publications (2)

Publication Number Publication Date
RU2015130911A true RU2015130911A (ru) 2017-01-31
RU2630753C2 RU2630753C2 (ru) 2017-09-12

Family

ID=48877504

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2015130911A RU2630753C2 (ru) 2012-12-26 2012-12-26 Способ обработки для многоядерного процессора и многоядерный процессор

Country Status (4)

Country Link
US (2) US10565019B2 (ru)
EP (1) EP2939114A1 (ru)
RU (1) RU2630753C2 (ru)
WO (1) WO2014104912A1 (ru)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110874212B (zh) * 2015-06-30 2021-08-20 华为技术有限公司 一种硬件加速方法、编译器以及设备
EP3374862A1 (en) * 2015-11-13 2018-09-19 Telefonaktiebolaget LM Ericsson (PUBL) Trainer of many core systems for adaptive resource control
US10949260B2 (en) 2015-12-04 2021-03-16 Cornell University Execution time prediction for energy-efficient computer systems
EP3394747A1 (en) 2015-12-21 2018-10-31 Telefonaktiebolaget LM Ericsson (publ) Priority trainer for many core processing system
US10884761B2 (en) * 2016-03-22 2021-01-05 Lenovo Enterprise Solutions (Singapore) Pte. Ltd Best performance delivery in heterogeneous computing unit environment
US10860499B2 (en) 2016-03-22 2020-12-08 Lenovo Enterprise Solutions (Singapore) Pte. Ltd Dynamic memory management in workload acceleration
US10203747B2 (en) 2016-03-22 2019-02-12 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Workload placement based on heterogeneous compute performance per watt
US10503524B2 (en) 2016-03-22 2019-12-10 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Interception of a function call, selecting a function from available functions and rerouting the function call
US10185593B2 (en) 2016-06-03 2019-01-22 International Business Machines Corporation Balancing categorized task queues in a plurality of processing entities of a computational device
US10691502B2 (en) 2016-06-03 2020-06-23 International Business Machines Corporation Task queuing and dispatching mechanisms in a computational device
US11029998B2 (en) 2016-06-03 2021-06-08 International Business Machines Corporation Grouping of tasks for distribution among processing entities
US10929177B2 (en) * 2016-10-28 2021-02-23 Synopsys, Inc. Managing resources for multiple trial distributed processing tasks
US10871988B1 (en) * 2016-12-07 2020-12-22 Jpmorgan Chase Bank, N.A. Methods for feedback-based optimal workload scheduling and devices thereof
US11150944B2 (en) 2017-08-18 2021-10-19 International Business Machines Corporation Balancing mechanisms in ordered lists of dispatch queues in a computational device
JP7323478B2 (ja) 2020-02-26 2023-08-08 日立Astemo株式会社 プログラム並列化方法、プログラム並列化装置、電子制御装置
US11669491B2 (en) 2020-04-09 2023-06-06 Samsung Electronics Co., Ltd. Processor, system on chip including heterogeneous core, and operating methods thereof for optimizing hot functions for execution on each core of a heterogeneous processor
RU2751441C1 (ru) * 2020-09-11 2021-07-13 Федеральное государственное бюджетное образовательное учреждение высшего образования «Московский государственный университет имени М.В.Ломоносова» (МГУ) Способ формирования вычислительного комплекса
US11640395B2 (en) * 2020-10-21 2023-05-02 Western Digital Technologies, Inc. Query compiler for record filtering

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004171234A (ja) * 2002-11-19 2004-06-17 Toshiba Corp マルチプロセッサシステムにおけるタスク割り付け方法、タスク割り付けプログラム及びマルチプロセッサシステム
US7996839B2 (en) * 2003-07-16 2011-08-09 Hewlett-Packard Development Company, L.P. Heterogeneous processor core systems for improved throughput
US20060123401A1 (en) 2004-12-02 2006-06-08 International Business Machines Corporation Method and system for exploiting parallelism on a heterogeneous multiprocessor computer system
US20060206902A1 (en) 2005-03-14 2006-09-14 Sujat Jamil Variable interleaved multithreaded processor method and system
US7647476B2 (en) * 2006-03-14 2010-01-12 Intel Corporation Common analog interface for multiple processor cores
JP4784827B2 (ja) 2006-06-06 2011-10-05 学校法人早稲田大学 ヘテロジニアスマルチプロセッサ向けグローバルコンパイラ
JP4936517B2 (ja) * 2006-06-06 2012-05-23 学校法人早稲田大学 ヘテロジニアス・マルチプロセッサシステムの制御方法及びマルチグレイン並列化コンパイラ
JP2008084009A (ja) * 2006-09-27 2008-04-10 Toshiba Corp マルチプロセッサシステム
CA2631255A1 (en) 2008-05-09 2009-11-09 Ibm Canada Limited - Ibm Canada Limitee Scalable scheduling of tasks in heterogeneous systems
US8434085B2 (en) 2008-05-09 2013-04-30 International Business Machines Corporation Scalable scheduling of tasks in heterogeneous systems
US20100156888A1 (en) * 2008-12-23 2010-06-24 Intel Corporation Adaptive mapping for heterogeneous processing systems
US8881157B2 (en) * 2009-09-11 2014-11-04 Empire Technology Development Llc Allocating threads to cores based on threads falling behind thread completion target deadline
WO2013010159A1 (en) * 2011-07-14 2013-01-17 Siemens Corporation Reducing the scan cycle time of control applications through multi-core execution of user programs
US8918770B2 (en) * 2011-08-25 2014-12-23 Nec Laboratories America, Inc. Compiler for X86-based many-core coprocessors

Also Published As

Publication number Publication date
RU2630753C2 (ru) 2017-09-12
US20150293794A1 (en) 2015-10-15
US11449364B2 (en) 2022-09-20
WO2014104912A1 (en) 2014-07-03
US10565019B2 (en) 2020-02-18
US20200159590A1 (en) 2020-05-21
EP2939114A1 (en) 2015-11-04
WO2014104912A8 (en) 2014-08-21

Similar Documents

Publication Publication Date Title
RU2015130911A (ru) Способ обработки для многоядерного процессора и многоядерный процессор
JP2014513373A5 (ru)
Wägemann et al. Worst-case energy consumption analysis for energy-constrained embedded systems
EP2629197B1 (en) Simulation device, method, and program
Cui et al. An accurate GPU performance model for effective control flow divergence optimization
JP5961971B2 (ja) シミュレーション装置,方法,およびプログラム
Lim et al. Autotuning GPU kernels via static and predictive analysis
Southern et al. Analysis of PARSEC workload scalability
RU2012127578A (ru) Анализатор применимости программного модуля для разработки и тестирования программного обеспечения для многопроцессорных сред
JP2014513853A5 (ru)
JP2010529559A5 (ru)
Koukos et al. Multiversioned decoupled access-execute: The key to energy-efficient compilation of general-purpose programs
US10564992B2 (en) Simulation apparatus and storage medium
Schoeberl Is time predictability quantifiable?
Nguyen et al. Cache-conscious offline real-time task scheduling for multi-core processors
Hasan et al. Performance prediction model and analysis for compute-intensive tasks on GPUs
Southern et al. Deconstructing PARSEC scalability
Fang et al. An auto-tuning solution to data streams clustering in opencl
EP2418582A3 (en) Apparatus and method for thread progress tracking using deterministic progress index
Sandran et al. An optimized tuning of genetic algorithm parameters in compiler flag selection based on compilation and execution duration
Helmstetter et al. Fast instruction set simulation using LLVM-based dynamic translation
Maggio et al. {ARPE}: A Tool To Build Equation Models of Computing Systems
Yang et al. Performance evaluation of openmp and cuda on multicore systems
Eder et al. Whole Systems Energy Transparency
Han et al. Work-in-Progress: Response Time Bounds for Typed DAG Parallel Tasks on Heterogeneous Multi-cores