RU2012127578A - Анализатор применимости программного модуля для разработки и тестирования программного обеспечения для многопроцессорных сред - Google Patents

Анализатор применимости программного модуля для разработки и тестирования программного обеспечения для многопроцессорных сред Download PDF

Info

Publication number
RU2012127578A
RU2012127578A RU2012127578/08A RU2012127578A RU2012127578A RU 2012127578 A RU2012127578 A RU 2012127578A RU 2012127578/08 A RU2012127578/08 A RU 2012127578/08A RU 2012127578 A RU2012127578 A RU 2012127578A RU 2012127578 A RU2012127578 A RU 2012127578A
Authority
RU
Russia
Prior art keywords
pmaa
processor
software
software module
data transfer
Prior art date
Application number
RU2012127578/08A
Other languages
English (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 RU2012127578/08A priority Critical patent/RU2012127578A/ru
Priority to US13/747,602 priority patent/US9043770B2/en
Publication of RU2012127578A publication Critical patent/RU2012127578A/ru

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/3698Environments for analysis, debugging or testing of software
    • 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/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 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/3604Analysis of software for verifying properties of programs
    • G06F11/3612Analysis of software for verifying properties of programs by runtime analysis
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/483Multiproc
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/314Parallel programming languages
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/45Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
    • G06F8/456Parallelism detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

1. Машинно-реализуемый способ программирования неоднородной многопроцессорной вычислительной системы для выполнения множества программных модулей, причем каждый программный модуль подлежит выполнению на одном из процессоров, система содержит множество процессоров двух или большего числа различных типов процессоров, при этом способ содержит:(a) выполнение машинно-реализуемой офлайновой обработки с использованием анализатора применимости программного модуля (PMAA) и множества инструментальных средств SBT из инструментального набора построения плана (SBT), причем:PMAA определяет, какие типы процессора какие программные модули способны выполнять; имножество инструментальных средств SBT содержит:(i) средство построения плана, которое выбирает подмножество из одного или нескольких различных решений плана на основании первого набора сценариев использования; и(ii) формирователь исходного кода, который формирует программное обеспечение планирования для выбранного решения плана, причем программное обеспечение планирования подлежит выполнению на одном или нескольких из упомянутых процессоров; и(b) выполнение машинно-реализуемой онлайновой обработки с использованием данных реального времени для тестирования программного обеспечения планирования и выбранного решения плана, при этом:PMAA определяет, способен ли первый процессор первого типа процессора выполнять первый программный модуль, не компилируя первый программный модуль.2. Способ по п.1, в котором:PMAA принимает информацию, соответствующую распределению памяти для первого процессора;PMAA принимает требования к размеру данных для первого программного модуля;PMAA

Claims (10)

1. Машинно-реализуемый способ программирования неоднородной многопроцессорной вычислительной системы для выполнения множества программных модулей, причем каждый программный модуль подлежит выполнению на одном из процессоров, система содержит множество процессоров двух или большего числа различных типов процессоров, при этом способ содержит:
(a) выполнение машинно-реализуемой офлайновой обработки с использованием анализатора применимости программного модуля (PMAA) и множества инструментальных средств SBT из инструментального набора построения плана (SBT), причем:
PMAA определяет, какие типы процессора какие программные модули способны выполнять; и
множество инструментальных средств SBT содержит:
(i) средство построения плана, которое выбирает подмножество из одного или нескольких различных решений плана на основании первого набора сценариев использования; и
(ii) формирователь исходного кода, который формирует программное обеспечение планирования для выбранного решения плана, причем программное обеспечение планирования подлежит выполнению на одном или нескольких из упомянутых процессоров; и
(b) выполнение машинно-реализуемой онлайновой обработки с использованием данных реального времени для тестирования программного обеспечения планирования и выбранного решения плана, при этом:
PMAA определяет, способен ли первый процессор первого типа процессора выполнять первый программный модуль, не компилируя первый программный модуль.
2. Способ по п.1, в котором:
PMAA принимает информацию, соответствующую распределению памяти для первого процессора;
PMAA принимает требования к размеру данных для первого программного модуля;
PMAA вычисляет общее требование к памяти для первого программного модуля на основании требований к размеру данных;
PMAA сравнивает общее требование к памяти для первого программного модуля с распределением памяти для первого процессора; и
PMAA определяет, что первый процессор не может выполнять первый программный модуль, если общее требование к памяти больше распределения памяти.
3. Способ по п.2, в котором:
PMAA принимает информацию, соответствующую характеристикам передачи данных для первого процессора;
PMAA принимает требования к передаче данных для первого программного модуля;
PMAA вычисляет среднее использование передачи данных для первого программного модуля на основании требований к передаче данных;
PMAA сравнивает среднее использование передачи данных для первого программного модуля с характеристиками передачи данных для первого процессора; и
PMAA определяет, что первый процессор не может выполнять первый программный модуль, если среднее использование передачи данных выше характеристик передачи данных.
4. Способ по п.1, в котором:
PMAA принимает информацию, соответствующую характеристикам передачи данных для первого процессора;
PMAA принимает требования к передаче данных для первого программного модуля;
PMAA вычисляет среднее использование передачи данных для первого программного модуля на основании требований к передаче данных;
PMAA сравнивает среднее использование передачи данных для первого программного модуля с характеристиками передачи данных первого процессора; и
PMAA определяет, что первый процессор не может выполнять первый программный модуль, если среднее использование передачи данных выше характеристик передачи данных.
5. Способ по п.1, дополнительно содержащий после этапа (a) и перед этапом (b) этап выполнения моделирования методом «черного ящика», чтобы тестировать программное обеспечение планирования и выбранное решение для плана на втором наборе вариантов использования, более большом, чем первый набор, причем множество инструментальных средств SBT дополнительно содержит формирователь кода профилирования и моделирования, который генерирует программное обеспечение для моделирования методом «черного ящика».
6. Способ по п.1, в котором множество процессоров содержит, по меньшей мере, N1 процессоров первого типа процессора и N2 процессоров второго типа процессора, отличающегося от первого типа процессора, причем по меньшей мере одно значение из N1 и N2 больше 1.
7. Способ по п.6, в котором и N1, и N2 больше 1.
8. Способ по п.1, в котором, по меньшей мере, часть офлайновой обработки по этапу (a) повторяется после выполнения онлайновой обработки по этапу (b), чтобы модифицировать одно или оба из программного обеспечения планирования и выбранного решения для плана.
9. Способ по п.1, в котором PMAA является одним из множества инструментальных средств SIET из инструментального набора средств извлечения информации планирования (SIET), причем:
множество инструментальных средств SIET дополнительно содержит одно или несколько из:
(i) анализатора циклов, который определяет требования к временной диаграмме для каждого программного модуля, исполняющегося на каждом допустимом типе процессора;
(ii) анализатор зависимостей, который определяет зависимости по вводу и выводу данных между различными программными модулями, выполняющимися на допустимых типах процессора; и
(iii) анализатор обмена данными, который определяет требования к передаче данных между различными программными модулями, выполняющимися на допустимых типах процессора.
10. Способ по п.1, в котором инструментальные средства SBT дополнительно содержат одно средство или несколько из:
(i) оптимизатора соединений, который сравнивает различные решения для плана, соответствующие различным возможным назначениям программных модулей на процессоры; и
(ii) оптимизатор синхронизации, который разрабатывает схему синхронизации для подмножества решений плана.
RU2012127578/08A 2012-07-02 2012-07-02 Анализатор применимости программного модуля для разработки и тестирования программного обеспечения для многопроцессорных сред RU2012127578A (ru)

Priority Applications (2)

Application Number Priority Date Filing Date Title
RU2012127578/08A RU2012127578A (ru) 2012-07-02 2012-07-02 Анализатор применимости программного модуля для разработки и тестирования программного обеспечения для многопроцессорных сред
US13/747,602 US9043770B2 (en) 2012-07-02 2013-01-23 Program module applicability analyzer for software development and testing for multi-processor environments

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2012127578/08A RU2012127578A (ru) 2012-07-02 2012-07-02 Анализатор применимости программного модуля для разработки и тестирования программного обеспечения для многопроцессорных сред

Publications (1)

Publication Number Publication Date
RU2012127578A true RU2012127578A (ru) 2014-01-10

Family

ID=49779662

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2012127578/08A RU2012127578A (ru) 2012-07-02 2012-07-02 Анализатор применимости программного модуля для разработки и тестирования программного обеспечения для многопроцессорных сред

Country Status (2)

Country Link
US (1) US9043770B2 (ru)
RU (1) RU2012127578A (ru)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9280442B1 (en) 2011-01-27 2016-03-08 Trimble Navigation Limited System and method for generating coverage reports for software unit tests
US9043759B1 (en) * 2011-01-27 2015-05-26 Trimble Navigation Limited System and method for generating software unit tests simultaneously with API documentation
US9268665B2 (en) 2011-07-26 2016-02-23 Trimble Navigation Limited System and method for identifying fault prone computer code files
RU2012127578A (ru) * 2012-07-02 2014-01-10 ЭлЭсАй Корпорейшн Анализатор применимости программного модуля для разработки и тестирования программного обеспечения для многопроцессорных сред
GB2506596A (en) * 2012-10-02 2014-04-09 Ibm Managing a set of software modules in a runtime environment
KR101438979B1 (ko) * 2012-12-31 2014-09-11 현대자동차주식회사 소프트웨어 검사 방법 및 시스템
CN104010356B (zh) * 2014-05-29 2017-06-16 东南大学 一种用于异构网络的集中式动态关闭小小区方法
JP6500626B2 (ja) * 2015-06-16 2019-04-17 富士通株式会社 計算機、コンパイラプログラム、リンクプログラムおよびコンパイル方法
US11099965B2 (en) * 2016-02-24 2021-08-24 Nec Corporation Management system, test method and recording medium
US10540098B2 (en) 2016-07-19 2020-01-21 Sap Se Workload-aware page management for in-memory databases in hybrid main memory systems
US10452539B2 (en) 2016-07-19 2019-10-22 Sap Se Simulator for enterprise-scale simulations on hybrid main memory systems
US10387127B2 (en) 2016-07-19 2019-08-20 Sap Se Detecting sequential access data and random access data for placement on hybrid main memory for in-memory databases
US10474557B2 (en) * 2016-07-19 2019-11-12 Sap Se Source code profiling for line-level latency and energy consumption estimation
US10437798B2 (en) 2016-07-19 2019-10-08 Sap Se Full system simulator and memory-aware splay tree for in-memory databases in hybrid memory systems
US11977484B2 (en) 2016-07-19 2024-05-07 Sap Se Adapting in-memory database in hybrid memory systems and operating system interface
US10783146B2 (en) 2016-07-19 2020-09-22 Sap Se Join operations in hybrid main memory systems
US10698732B2 (en) 2016-07-19 2020-06-30 Sap Se Page ranking in operating system virtual pages in hybrid memory systems
US10152243B2 (en) 2016-09-15 2018-12-11 Qualcomm Incorporated Managing data flow in heterogeneous computing
US10216615B2 (en) * 2017-06-30 2019-02-26 Sap Se Debuggable instance code in a cloud-based instance platform environment
US11010379B2 (en) 2017-08-15 2021-05-18 Sap Se Increasing performance of in-memory databases using re-ordered query execution plans
US12260316B2 (en) * 2017-09-20 2025-03-25 International Business Machines Corporation Automatic timing resolution among neural network components
CN111480150B (zh) * 2017-11-02 2024-07-16 芯力能简易股份公司 用于控制引擎调试、测试、校准和调节的软件环境
CN109960647A (zh) * 2017-12-26 2019-07-02 腾讯科技(深圳)有限公司 一种软件测试方法及装置、计算设备和存储介质
CN111770722B (zh) * 2018-02-27 2024-01-02 罗伯特·博世有限公司 具有心脏振动描记信号的自动参考的可穿戴健康设备系统
US11075954B2 (en) 2018-09-28 2021-07-27 International Business Machines Corporation Identifying systems where a policy as a code is applicable
US20200387802A1 (en) * 2019-06-08 2020-12-10 Trustarc Inc Dynamically adaptable rules and communication system for managing process controls
US12373257B2 (en) * 2019-12-18 2025-07-29 Deep Vision Inc. Method for static scheduling of artificial neural networks for a processor
CN111881634B (zh) * 2020-06-19 2023-09-08 成都天奥测控技术有限公司 一种电子系统行为级仿真验证方法
JP2023084609A (ja) * 2021-12-07 2023-06-19 富士通株式会社 変換プログラムおよび変換方法
US12449987B2 (en) 2022-01-04 2025-10-21 Bank Of America Corporation System and method for improving memory resource allocations in database blocks using blockchain
US11934255B2 (en) 2022-01-04 2024-03-19 Bank Of America Corporation System and method for improving memory resource allocations in database blocks for executing tasks
US12561122B2 (en) * 2022-03-24 2026-02-24 International Business Machines Corporation Software package update handling
US11960436B2 (en) 2022-04-29 2024-04-16 Microsoft Technology Licensing, Llc Multi-processor synchronization
US12505007B2 (en) 2024-05-10 2025-12-23 International Business Machines Corporation Updating computing error analysis windows
CN120806199B (zh) * 2025-09-12 2025-11-21 上海壁仞科技股份有限公司 模型性能预估方法、装置和计算机设备

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06266683A (ja) * 1993-03-12 1994-09-22 Toshiba Corp 並列処理装置
US7367023B2 (en) * 2003-07-10 2008-04-29 International Business Machines Corporation Method and apparatus for generating computer programming code selectively optimized for execution performance and not optimized for serviceability
JP4592367B2 (ja) * 2004-09-09 2010-12-01 富士通セミコンダクター株式会社 プログラムセクションレイアウト方法およびレイアウト処理プログラム
US7984445B2 (en) * 2005-02-25 2011-07-19 International Business Machines Corporation Method and system for scheduling jobs based on predefined, re-usable profiles
JP4082706B2 (ja) 2005-04-12 2008-04-30 学校法人早稲田大学 マルチプロセッサシステム及びマルチグレイン並列化コンパイラ
US8028299B2 (en) * 2005-04-21 2011-09-27 Waratek Pty, Ltd. Computer architecture and method of operation for multi-computer distributed processing with finalization of objects
US7930565B2 (en) * 2006-09-11 2011-04-19 Texas Instruments Incorporated Power-optimizing memory analyzer, method of operating the analyzer and system employing the same
US20080140762A1 (en) * 2006-10-05 2008-06-12 Holt John M Job scheduling amongst multiple computers
GB2443277B (en) 2006-10-24 2011-05-18 Advanced Risc Mach Ltd Performing diagnostics operations upon an asymmetric multiprocessor apparatus
WO2008060948A2 (en) * 2006-11-10 2008-05-22 Sandbridge Technologies, Inc. Method and system for parallelization of pipelined computations
US7984431B2 (en) * 2007-03-31 2011-07-19 Intel Corporation Method and apparatus for exploiting thread-level parallelism
FI20070344A0 (fi) 2007-05-02 2007-05-02 Codenomicon Oy Testitapausten suorittamisen optimointimenetelmä ja -järjestelmä
ES2399683T3 (es) 2008-11-24 2013-04-02 Barcelona Supercomputing Center - Centro Nacional De Supercomputacion Procedimiento, mecanismo y producto de programa informático para ejecutar varias tareas en un procesador multihilo y para proporcionar estimaciones del peor tiempo de ejecución
JP2013025403A (ja) * 2011-07-15 2013-02-04 Toshiba Corp プログラム生成装置
US9201690B2 (en) * 2011-10-21 2015-12-01 International Business Machines Corporation Resource aware scheduling in a distributed computing environment
RU2012127578A (ru) * 2012-07-02 2014-01-10 ЭлЭсАй Корпорейшн Анализатор применимости программного модуля для разработки и тестирования программного обеспечения для многопроцессорных сред

Also Published As

Publication number Publication date
US9043770B2 (en) 2015-05-26
US20140007043A1 (en) 2014-01-02

Similar Documents

Publication Publication Date Title
RU2012127578A (ru) Анализатор применимости программного модуля для разработки и тестирования программного обеспечения для многопроцессорных сред
RU2012127581A (ru) Генератор исходного кода для разработки и тестирования программного обеспечения для многопроцессорных сред
Hamadi et al. Seven challenges in parallel SAT solving
US9239734B2 (en) Scheduling method and system, computing grid, and corresponding computer-program product
US11205134B2 (en) Numerical quantum experimentation
US20130339972A1 (en) Determining an allocation of resources to a program having concurrent jobs
RU2012127580A (ru) Подход многоэтапного планирования на уровне исходных кодов для разработки и тестирования программного обеспечения для многопроцессорных сред
Ma et al. HW/SW partitioning for region-based dynamic partial reconfigurable FPGAs
Chen et al. Variation-aware evaluation of MPSoC task allocation and scheduling strategies using statistical model checking
TWI776212B (zh) 用於積體電路加速器之系統、方法及電腦儲存媒體
Emeretlis et al. A logic-based benders decomposition approach for mapping applications on heterogeneous multicore platforms
CN106155799B (zh) 基于遗传算法的Codelet调度方法
Adefemi What every computer scientist needs to know about parallelization
Herrmann et al. Memory-aware list scheduling for hybrid platforms
Eggenberger et al. Scalable parallel simulation of networks on chip
CN119512712A (zh) 计算设备调度方法、计算机可读存储介质及电子设备
Deniziak et al. Synthesis of self-adaptable energy aware software for heterogeneous multicore embedded systems
Scanniello et al. Using the gpu to green an intensive and massive computation system
Wajid et al. Optimizing energy efficiency in the cloud using service composition and runtime adaptation techniques
Janjic et al. Granularity-aware work-stealing for computationally-uniform Grids
Fonseca et al. Overcoming the no free lunch theorem in cut-off algorithms for fork-join programs
Frid et al. Memory-aware multiobjective design space exploration of heteregeneous MPSoC
Ramírez et al. Differences of energetic consumption between Java and JNI Android apps
Meade et al. Data decomposition for code parallelization in practice: what do the experts need?
Choudhury et al. Balancing thread-level and task-level parallelism for data-intensive workloads on clusters and clouds

Legal Events

Date Code Title Description
FA93 Acknowledgement of application withdrawn (no request for examination)

Effective date: 20150703