RU2010140853A - Система и способ распределенных вычислений - Google Patents

Система и способ распределенных вычислений Download PDF

Info

Publication number
RU2010140853A
RU2010140853A RU2010140853/08A RU2010140853A RU2010140853A RU 2010140853 A RU2010140853 A RU 2010140853A RU 2010140853/08 A RU2010140853/08 A RU 2010140853/08A RU 2010140853 A RU2010140853 A RU 2010140853A RU 2010140853 A RU2010140853 A RU 2010140853A
Authority
RU
Russia
Prior art keywords
executive
program
module
memory
execution
Prior art date
Application number
RU2010140853/08A
Other languages
English (en)
Other versions
RU2554509C2 (ru
Inventor
Александр Яковлевич Богданов (RU)
Александр Яковлевич Богданов
Original Assignee
Александр Яковлевич Богданов (RU)
Александр Яковлевич Богданов
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 Александр Яковлевич Богданов (RU), Александр Яковлевич Богданов filed Critical Александр Яковлевич Богданов (RU)
Priority to RU2010140853/08A priority Critical patent/RU2554509C2/ru
Priority to US13/877,912 priority patent/US9361266B2/en
Priority to PCT/RU2011/000776 priority patent/WO2012047134A1/ru
Publication of RU2010140853A publication Critical patent/RU2010140853A/ru
Application granted granted Critical
Publication of RU2554509C2 publication Critical patent/RU2554509C2/ru

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • 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/547Remote procedure calls [RPC]; Web services

Landscapes

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

Abstract

1. Способ распределенных вычислений в распределенной системе, состоящей из одного или более исполнительных модулей, взаимодействующих друг с другом, одного или более модулей памяти, связанных с указанными исполнительными модулями и содержащими инструкции исполнительного модуля, в которой указанные исполнительные модули поддерживают инструкции удаленной передачи управления с возвратом, отличающийся тем, что для адресации памяти используют распределенную память с базовой адресацией, для которой: ! при получении управления по указанной инструкции передачи управления или при выполнении первой инструкции в модуле памяти исполнительного модуля выделяют блок памяти, ! указанный блок памяти освобождают при возврате управления в распределенном стеке вызовов, ! при удаленной передаче управления от одного исполнительного модуля к другому размер указанного блока памяти фиксируют и передают текущий размер указанной распределенной памяти, являющийся суммой размеров всех выделенных блоков в распределенном стеке вызовов, ! относительный адрес в указанной распределенной памяти рассчитывают от начала первого блока, при этом совокупность блоков в стеке распределенных вызовов рассматривают как непрерывную память, ! при выполнении инструкций с распределенной базовой адресацией исполнительный модуль контролирует выход за границы своего блока памяти, ! если исполнительный модуль обнаруживает выход за границы своего блока памяти, он обращается за данными к предыдущему в стеке вызовов исполнительному модулю, ! предыдущий исполнительный модуль либо возвращает данные, если они расположены в его блоке памяти, либ

Claims (52)

1. Способ распределенных вычислений в распределенной системе, состоящей из одного или более исполнительных модулей, взаимодействующих друг с другом, одного или более модулей памяти, связанных с указанными исполнительными модулями и содержащими инструкции исполнительного модуля, в которой указанные исполнительные модули поддерживают инструкции удаленной передачи управления с возвратом, отличающийся тем, что для адресации памяти используют распределенную память с базовой адресацией, для которой:
при получении управления по указанной инструкции передачи управления или при выполнении первой инструкции в модуле памяти исполнительного модуля выделяют блок памяти,
указанный блок памяти освобождают при возврате управления в распределенном стеке вызовов,
при удаленной передаче управления от одного исполнительного модуля к другому размер указанного блока памяти фиксируют и передают текущий размер указанной распределенной памяти, являющийся суммой размеров всех выделенных блоков в распределенном стеке вызовов,
относительный адрес в указанной распределенной памяти рассчитывают от начала первого блока, при этом совокупность блоков в стеке распределенных вызовов рассматривают как непрерывную память,
при выполнении инструкций с распределенной базовой адресацией исполнительный модуль контролирует выход за границы своего блока памяти,
если исполнительный модуль обнаруживает выход за границы своего блока памяти, он обращается за данными к предыдущему в стеке вызовов исполнительному модулю,
предыдущий исполнительный модуль либо возвращает данные, если они расположены в его блоке памяти, либо передает запрос своему предыдущему в стеке вызовов исполнительному модулю и впоследствии возвращает данные, которые получены от предыдущего модуля.
2. Способ по п.1, отличающийся тем, что указанная инструкция удаленной передачи управления с возвратом является инструкцией удаленного вызова процедуры.
3. Способ по п.1, отличающийся тем, что в качестве блока, выделяемого для памяти с распределенной базовой адресацией, используют кадр стека текущего распределенного вызова.
4. Способ распределенных вычислений в распределенной системе, состоящей из одного или более исполнительных модулей, взаимодействующих друг с другом, одного или более модулей памяти, связанных с указанными исполнительными модулями и содержащих последовательности инструкций исполнительного модуля, отличающийся тем, что
1) программу исполняют на одном или более исполнительном модуле и копию программы загружают в модули памяти всех исполнительных модулей, участвующих в данный момент в исполнении программы,
2) программа включает одну или более инструкцию передачи управления, которая содержит, как минимум, один параметр, значение которого прямо или косвенно определяет инструкцию программы, которая должна быть выполнена следующей, и при исполнении указанной инструкции передачи управления выполняют следующие действия:
a) вычисляют исполнительный модуль, на котором следует выполнить указанную следующую инструкцию,
b) управление программой передают на указанный вычисленный исполнительный модуль, и выполнение программы продолжают на этом исполнительном модуле, начиная с инструкции, которая задана в указанной инструкции передачи управления.
5. Способ по п.4, отличающийся тем, что исполнительный модуль, на котором необходимо выполнить указанную следующую инструкцию, вычисляют на основании текущего состояния системы.
6. Способ по п.4, отличающийся тем, что исполнительный модуль, на котором необходимо выполнить указанную следующую инструкцию, вычисляют на основании дополнительных параметров указанной инструкции передачи управления.
7. Способ по п.4, отличающийся тем, что в указанной инструкции передачи управления для идентификации исполнительного модуля, выполняющего следующую инструкцию, используют дополнительный параметр, который прямо или косвенно определяет номер, или адрес, или идентификатор этого исполнительного модуля.
8. Способ по п.4, отличающийся тем, что в указанной инструкции передачи управления для идентификации исполнительного модуля, выполняющего следующую инструкцию, используют дополнительный параметр, который прямо или косвенно определяет функциональное назначение этого исполнительного модуля.
9. Способ по п.4, отличающийся тем, что в указанной инструкции передачи управления для идентификации инструкции, которая должна быть выполнена следующей, используют ее ассоциативный адрес.
10. Способ по п.4, отличающийся тем, что указанную следующую инструкцию выполняют без передачи управления на другой исполнительный модуль.
11. Способ по п.4, отличающийся тем, что
исполнительный модуль непосредственно не поддерживает указанную инструкцию передачи управления,
для исполнения указанной инструкции передачи управления создают код, адаптирующий эту инструкцию к выполнению на указанном исполнительном модуле,
указанный адаптирующий код включают в программу, как ее составную часть.
12. Способ по п.11, отличающийся тем, что программу создают на компилируемом языке программирования и указанный адаптирующий код включают в исполняемый файл программы.
13. Способ по п.4, отличающийся тем, что указанную программу загружают в модули памяти любого подмножества исполнительных модулей до начала ее исполнения на этих модулях.
14. Способ по п.4, отличающийся тем, что указанные исполнительные модули обмениваются между собой копией программы, которую они выполняют.
15. Способ по п.4, отличающийся тем, что указанные исполнительные модули загружают копию программы из внешнего источника и для этого обмениваются информацией о местонахождении этого источника.
16. Способ по п.4, отличающийся тем, что указанную программу загружают в результате исполнения указанной инструкции передачи управления в модуль памяти исполнительного модуля, который получает управление, если указанная программа еще не загружена на этом исполнительном модуле.
17. Способ по п.4, отличающийся тем, что для определения того, что в каждый модуль памяти загружена одна и та же копия программы, используют контрольное цифровое значение, вычисленное для этой программы способом, известным указанным исполнительным модулям.
18. Способ по п.4, отличающийся тем, что исполнение программы начинают на одном исполнительном модуле-инициаторе, и, при завершении исполнения программы на этом исполнительном модуле, завершают распределенное исполнение программы на остальных исполнительных модулях.
19. Способ по п.4, отличающийся тем, что исполнение программы начинают на более чем одном исполнительном модуле, и распределенное исполнение программы завершают после завершения исполнения на всех указанных исполнительных модулях.
20. Способ по п.4, отличающийся тем, что распределенное исполнение программы завершают после завершения исполнения всех распределенных потоков управления этой программы.
21. Способ по п.4, отличающийся тем, что программу оставляют в модуле памяти, пока не завершено распределенное исполнение программы.
22. Способ по п.4, отличающийся тем, что программу динамически загружают и выгружают из модуля памяти, и при этом соответствующий исполнительный модуль соответственно подключают и отключают от распределенного исполнения программы.
23. Способ по п.4, отличающийся тем, что программа и/или исполнительный модуль ведут учет ресурсов, которые использует программа на этом исполнительном модуле.
24. Способ по п.23, отличающийся тем, что исполнение программы на определенном исполнительном модуле завершают, когда освобождаются все ресурсы, выделенные для этой программы на этом исполнительном модуле.
25. Способ по п.23, отличающийся тем, что учет ресурсов ведут в целях ограничения использования и/или взимания оплаты за использование этих ресурсов.
26. Способ по п.4, отличающийся тем, что при загрузке программы в модуль памяти каждого исполнительного модуля, каждый исполнительный модуль выполняет инструкции инициализации программы.
27. Способ по п.4, отличающийся тем, что в исполняемой программе определяют области памяти, изменение которых в одном модуле памяти реплицируют на остальные модули памяти.
28. Способ по п.27, отличающийся тем, что репликацию изменений выполняют как одну транзакцию.
29. Способ по п.4, отличающийся тем, что указанную инструкцию передачи управления выполняют синхронно.
30. Способ по п.4, отличающийся тем, что указанную инструкцию передачи управления выполняют асинхронно.
31. Способ по п.4, отличающийся тем, что при выполнении указанной инструкции удаленной передачи управления инициируют выполнение указанной следующей инструкции сразу на более чем одном исполнительном модуле.
32. Способ по п.31, отличающийся тем, что указанная инструкция удаленной передачи управления является инструкцией вызова процедуры, и на каждый указанный исполнительный модуль посылают одну и ту же копию параметров вызова.
33. Способ по п.31, отличающийся тем, что указанная инструкция удаленной передачи управления является инструкцией вызова процедуры и на любое подмножество указанных исполнительных модулей посылают различные подмножества параметров вызова.
34. Система распределенных вычислений, состоящая из
одного или более исполнительных модулей, взаимодействующих друг с другом,
одного или более модулей памяти, связанных с указанными исполнительными модулями и содержащих последовательности инструкций исполнительного модуля,
отличающаяся тем, что
в исполнении программы участвует один или более исполнительный модуль и каждый из этих исполнительных модулей имеет в своем модуле памяти копию этой исполняемой программы;
исполнительные модули поддерживают инструкцию передачи управления, которая содержит, как минимум, один параметр, значение которого прямо или косвенно определяет инструкцию программы, которая должна быть выполнена следующей,
исполнительный модуль имеет возможность для указанной инструкции передачи управления вычислить исполнительный модуль, на котором следует выполнить указанную следующую инструкцию, и
один исполнительный модуль имеет возможность инициировать выполнение программы на другом исполнительном модуле, начиная с указанной следующей инструкции.
35. Система по п.34, отличающаяся тем, что отдельные исполнительные модули являются ядрами в многоядерном процессоре, или процессорами в многопроцессорной системе, или процессорами компьютеров, связанными через сеть, или реализованными программно виртуальными системами, или отдельными процессами исполнительной системы, выполняющими программу в своем адресном пространстве.
36. Система по п.34, отличающаяся тем, что один исполнительный модуль при выполнении указанной инструкции передачи управления имеет возможность передать другому исполнительному модулю контекст исполнения программы.
37. Система по п.34, отличающаяся тем, что указанная инструкция передачи управления содержит дополнительный параметр, значение которого прямо или косвенно определяет исполнительный модуль, на котором указанная следующая инструкция должна быть выполнена.
38. Система по п.34, отличающаяся тем, что каждый указанный исполнительный модуль имеет свой модуль памяти.
39. Система по п.34, отличающаяся тем, что система содержит одно или более подмножество исполнительных модулей, состоящих из одного или более исполнительных модулей, и каждое из этих подмножеств имеет общий модуль памяти.
40. Система по п.34, отличающаяся тем, что указанную память реализуют как виртуальную с возможностью загрузки только тех сегментов программы, которые необходимы для исполнения программы на заданном исполнительном модуле.
41. Система по п.34, отличающаяся тем, что в модулях памяти, кроме последовательностей инструкций содержатся данные.
42. Система по п.34, отличающаяся тем, что все исполнительные модули имеют отдельную общую память, предназначенную для динамического распределения во время исполнения программы.
43. Система по п.34, отличающаяся тем, что исполнительные модули поддерживают инструкции с распределенными указателями, эти указатели включают информацию:
a) адрес ячейки в модуле памяти;
b) идентификатор или адрес исполнительного модуля, в модуле памяти которого расположена указываемая ячейка.
44. Система по п.43, отличающаяся тем, что один исполнительный модуль может запросить данные из модуля памяти другого исполнительного модуля, используя указанные распределенные указатели.
45. Система по п.34, отличающаяся тем, что указанная инструкция передачи управления является инструкцией безусловного перехода.
46. Система по п.34, отличающаяся тем, что указанная инструкция передачи управления является инструкцией условного перехода.
47. Система по п.34, отличающаяся тем, что указанная инструкция передачи управления является инструкцией перехода с возвратом.
48. Система по п.34, отличающаяся тем, что указанная инструкция передачи управления является инструкцией вызова процедуры, и исполнительный модуль, выполняющий эту инструкцию, имеет возможность передавать другому исполнительному модулю параметры вызова процедур и получать возвращаемые значения.
49. Система по п.34, отличающаяся тем, что указанная инструкция передачи управления определяет, что исполнение указанной следующей инструкции должно быть продолжено сразу на более чем одном исполнительном модуле.
50. Система по п.34, отличающаяся тем, что
исполняемое приложение состоит из нескольких программ,
распределенное исполнение поддерживает только определенное подмножество, состоящее из одной или более указанных программ,
указанная инструкция передачи управления должна указывать на следующие инструкции только в границах указанного подмножества программ, и при выполнении удаленной передачи управления модуль памяти исполнительного модуля, получающего управление, должен содержать копию программы, инструкция которой получает управление.
51. Система по п.50, отличающаяся тем, что копия указанного подмножества программ, поддерживающих распределенное исполнение, входит в состав разных приложений, и эти приложения одновременно загружены в память указанных исполнительных модулей в произвольном сочетании.
52. Система по п.34, отличающаяся тем, что указанная инструкция передачи управления содержит дополнительный параметр - указатель на объект, и этот указатель позволяет определить местоположение исполнительного модуля, в модуле памяти которого расположен объект, и указанная следующая инструкция является методом этого объекта.
RU2010140853/08A 2010-10-06 2010-10-06 Система и способ распределенных вычислений RU2554509C2 (ru)

Priority Applications (3)

Application Number Priority Date Filing Date Title
RU2010140853/08A RU2554509C2 (ru) 2010-10-06 2010-10-06 Система и способ распределенных вычислений
US13/877,912 US9361266B2 (en) 2010-10-06 2011-10-04 System and method for distributed computing
PCT/RU2011/000776 WO2012047134A1 (ru) 2010-10-06 2011-10-04 Система и способ распределенных вычислений

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2010140853/08A RU2554509C2 (ru) 2010-10-06 2010-10-06 Система и способ распределенных вычислений

Publications (2)

Publication Number Publication Date
RU2010140853A true RU2010140853A (ru) 2012-04-20
RU2554509C2 RU2554509C2 (ru) 2015-06-27

Family

ID=45927951

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2010140853/08A RU2554509C2 (ru) 2010-10-06 2010-10-06 Система и способ распределенных вычислений

Country Status (3)

Country Link
US (1) US9361266B2 (ru)
RU (1) RU2554509C2 (ru)
WO (1) WO2012047134A1 (ru)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10152450B2 (en) * 2012-08-09 2018-12-11 International Business Machines Corporation Remote processing and memory utilization
CN106980649B (zh) * 2017-02-28 2020-07-10 创新先进技术有限公司 写入区块链业务数据的方法和装置及业务子集合确定方法
US10572666B2 (en) 2017-04-20 2020-02-25 Microsoft Technology Licensing, Llc Return-oriented programming mitigation

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5522070A (en) * 1992-03-19 1996-05-28 Fujitsu Limited Computer resource distributing method and system for distributing a multiplicity of processes to a plurality of computers connected in a network
US5603031A (en) 1993-07-08 1997-02-11 General Magic, Inc. System and method for distributed computation based upon the movement, execution, and interaction of processes in a network
US5896524A (en) * 1997-02-06 1999-04-20 Digital Equipment Corporation Off-line clock synchronization for multiprocessor event traces
JP2000020490A (ja) * 1998-07-01 2000-01-21 Fujitsu Ltd 遠隔手続き呼出し機構またはオブジェクトリクエストブローカ機構を有する計算機、データ転送方法、および転送方法記憶媒体
AU4793999A (en) 1998-08-01 2000-02-28 International Business Machines Corporation Computerized method and system for implementing distributed applications
US20030084098A1 (en) * 2000-04-13 2003-05-01 Daniel Lavin Navigation server for use with, for example, a wireless web access device having a navigation control unit
US7412581B2 (en) * 2003-10-28 2008-08-12 Renesas Technology America, Inc. Processor for virtual machines and method therefor
US7849452B2 (en) * 2004-04-23 2010-12-07 Waratek Pty Ltd. Modification of computer applications at load time for distributed execution
EP1875350B1 (en) * 2005-04-20 2011-03-16 Axxana (Israel) Ltd. Remote data mirroring system
WO2006110937A1 (en) * 2005-04-21 2006-10-26 Waratek Pty Limited Modified computer architecture with coordinated objects
US7904602B2 (en) * 2008-02-05 2011-03-08 Raptor Networks Technology, Inc. Distributed computing bus
RU72339U8 (ru) * 2007-12-27 2008-06-10 Общество с ограниченной ответственностью "НТЦ "Фактор" Модуль многопроцессорной вычислительной системы (варианты)

Also Published As

Publication number Publication date
RU2554509C2 (ru) 2015-06-27
WO2012047134A1 (ru) 2012-04-12
US9361266B2 (en) 2016-06-07
US20130326191A1 (en) 2013-12-05

Similar Documents

Publication Publication Date Title
US10242420B2 (en) Preemptive context switching of processes on an accelerated processing device (APD) based on time quanta
US8963933B2 (en) Method for urgency-based preemption of a process
US10031773B2 (en) Method to communicate task context information and device therefor
CN102460377A (zh) 数据处理设备及方法
US9043806B2 (en) Information processing device and task switching method
WO2019028682A1 (zh) 一种多***共享内存的管理方法及装置
CN104025185A (zh) 用于使用gpu控制器来预加载缓存的机制
US20240160474A1 (en) Multi-core processor task scheduling method, and device and storage medium
CN110990154B (zh) 一种大数据应用优化方法、装置及存储介质
US7565659B2 (en) Light weight context switching
US20130024870A1 (en) Multicore system and activating method
US9122522B2 (en) Software mechanisms for managing task scheduling on an accelerated processing device (APD)
US20200264941A1 (en) Dynamically loadable unikernel binaries
CN107180010A (zh) 异构计算***和方法
US8803891B2 (en) Method for preempting graphics tasks to accommodate compute tasks in an accelerated processing device (APD)
CN110991619A (zh) 神经网络处理器、芯片和电子设备
CN114637536A (zh) 任务处理方法、计算协处理器、芯片及计算机设备
RU2010140853A (ru) Система и способ распределенных вычислений
JP2014503898A (ja) 処理装置の同期動作のための方法およびシステム
CN115775199B (zh) 数据处理方法和装置、电子设备和计算机可读存储介质
CN109408118B (zh) Mhp异构多流水线处理器
CN109840137B (zh) 一种跨核调度方法和装置
US20130135327A1 (en) Saving and Restoring Non-Shader State Using a Command Processor
US20220129327A1 (en) Latency sensitive workload balancing
US20130141446A1 (en) Method and Apparatus for Servicing Page Fault Exceptions

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20161007

NF4A Reinstatement of patent

Effective date: 20171108