ПАРАЛЛЕЛИЗАЦИЯ И ИНСТРУМЕНТАЛЬНЫЕ СРЕДСТВА В ИНФРАСТРУКТУРЕ ГРАФООРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ НА ОСНОВЕ ПРОИЗВОДИТЕЛЕЙ

1. Компьютерно-реализуемый способ выполнения прикладной программы, написанной в объектно-ориентированном коде, при этом способ содержит этапы, на которых:
создают экземпляр производителя с выводом, который является в настоящий момент интересующим, при этом объектно-ориентированный код включает в себя методы и объявления зависимостей производителя, при этом объявление зависимостей производителя для данного метода идентифицирует набор из нуля или более производителей, причем производитель является конструкцией с возможностью создания экземпляра во время выполнения, которая включает в себя, по меньшей мере, экземпляр и метод, ассоциативно связанный с этим экземпляром;
в ответ на упомянутое создание экземпляра добавляют интересующего производителя в качестве части графа производителей;
пытаются автоматически формировать оставшуюся часть графа производителей через связывание и создание экземпляров по мере необходимости других производителей на основе объявлений зависимостей производителя методов производителей уже на графе производителей; и
выполняют производителей на графе производителей, чтобы определять текущий вывод для интересующего производителя, причем упомянутое выполнение содержит этап, на котором:
параллелизуют выполнение, по меньшей мере, двух из производителей на графе производителей с помощью среды выполнения на основе зависимости между производителями на графе производителей.
2. Способ по п.1, в котором параллелизация выполнения, по меньшей мере, двух из производителей на графе производителей содержит этапы, на которых:
идентифицируют набор готовых производителей среди производителей на графе производителей;
определяют режим выполнения каждого производителя из набора готовых производителей;
инструктируют выполнение каждого производителя из набора готовых производителей в соответствующем режиме выполнения.
3. Способ по п.2, в котором режим выполнения является одним из режима локального выполнения, режима многопроцессорной обработки и режима многопоточной обработки.
4. Способ по п.2, дополнительно содержащий этапы, на которых:
создают задачу для каждого производителя в наборе готовых производителей; и
инструктируют выполнение задачи в режиме выполнения соответствующего производителя.
5. Способ по п.4, в котором задача каждого производителя из набора готовых производителей содержит ссылку на соответствующего производителя и ссылку на вывод соответствующего производителя.
6. Способ по п.2, в котором определение режима выполнения каждого производителя набора готовых производителей содержит этапы, на которых:
проверяют настройку режима выполнения метода соответствующего производителя;
подменяют настройку режима выполнения соответствующего производителя, если конечный пользователь выбирает другой режим выполнения, по меньшей мере, на основе одного из класса, метода и экземпляра;
подменяют настройку режима выполнения соответствующего производителя по принципу "производитель-за-производителем", если соответствующая настройка режима выполнения соответствующего производителя изменена на графе производителей; и
подменяют соответствующую настройку режима выполнения на графе производителей предварительно определенным режимом выполнения, если среда выполнения задана так, чтобы глобально подменять соответствующий режим выполнения предварительно определенным режимом выполнения.
7. Способ по п.1, дополнительно содержащий этапы, на которых:
получают показатели, связанные с выполнением производителей на графе производителей, с помощью среды выполнения по принципу "производитель-за-производителем" в ответ на контрольный запрос, содержащий этап, на котором:
измеряют время выполнения производителей на графе производителей по принципу "производитель-за-производителем".
8. Способ по п.7, в котором получение показателей дополнительно содержит этап, на котором:
измеряют время выполнения производителей на графе производителей на основе задания, при этом задание содержит множество производителей, которые должны быть подвергнуты многопроцессорной обработке.
9. Способ по п.8, в котором получение показателей дополнительно содержит этап, на котором:
выполняют сравнительное тестирование локального выполнения в сравнении с удаленным выполнением задания в ответ на запрос на сравнительное тестирование, содержащее этапы, на которых:
выполняют множество производителей локально;
измеряют время локального выполнения множества производителей;
отправляют задание в решетку процессоров, при этом решетка процессоров выполняет множество производителей, по существу, параллельно;
измеряют полное время выполнения задания;
сравнивают время локального выполнения с полным временем удаленного выполнения; и
измеряют размер входных потоков и размер выходных потоков по принципу "производитель-за-производителем".
10. Компьютерно-реализуемый способ выполнения прикладной программы, написанной в объектно-ориентированном коде, при этом способ содержит этапы, на которых:
создают экземпляр производителя с выводом, который является в настоящий момент интересующим, при этом объектно-ориентированный код включает в себя методы и объявления зависимостей производителя, при этом объявление зависимостей производителя для данного метода идентифицирует набор из нуля или более производителей, причем производитель является конструкцией с возможностью создания экземпляра во время выполнения, которая включает в себя, по меньшей мере, экземпляр и метод, ассоциативно связанный с этим экземпляром;
в ответ на упомянутое создание экземпляра добавляют интересующего производителя в качестве части графа производителей;
пытаются автоматически формировать оставшуюся часть графа производителей через связывание и создание экземпляра по мере необходимости других производителей на основе объявлений зависимостей производителя методов производителей уже на графе производителей; и
снабжают инструментальными средствами прикладную программу на основе графа производителей с помощью среды выполнения со средствами поддержки графоориентированного программирования на основе производителей.
11. Способ по п.10, в котором снабжение инструментальными средствами прикладной программы содержит этап, на котором:
измеряют время выполнения прикладной программы по принципу "производитель-за-производителем".
12. Способ по п.10, в котором снабжение инструментальными средствами прикладной программы дополнительно содержит этапы, на которых:
отправляют задание в решетку процессоров, при этом решетка процессоров выполняет множество производителей задания практически параллельно;
измеряют полное время выполнения задания; и
измеряют размер входных потоков и размер выходных потоков по принципу "производитель-за-производителем".
13. Способ по п.12, в котором снабжение инструментальными средствами прикладной программы дополнительно содержит этап, на котором:
выполняют сравнительное тестирование локального выполнения в сравнении с удаленным выполнением задания в ответ на запрос на сравнительное тестирование, содержащее этапы, на которых:
выполняют множество производителей задания локально; и
измеряют время локального выполнения множества производителей.
14. Способ по п.13, в котором выполнение сравнительного тестирования дополнительно содержит этапы, на которых:
сравнивают время локального выполнения с полным временем удаленного выполнения; и
извлекают показатели сравнения из времени локального выполнения и полного времени удаленного выполнения.
15. Устройство, содержащее:
среду выполнения, чтобы выполнять объектно-ориентированный исходный код с объявлениями зависимостей производителя для методов и настроек режимов выполнения методов, при этом производитель является конструкцией с возможностью создания экземпляра во время выполнения, которая включает в себя экземпляр и метод, ассоциативно связанный с этим экземпляром, причем каждое объявление зависимостей производителя для данного метода идентифицирует набор из нуля или более производителей, и при этом упомянутая среда выполнения включает в себя:
модуль автоматического формирования графов производителей, чтобы принимать обозначение интересующего производителя, добавлять интересующего производителя в качестве части графа производителей и автоматически формировать оставшуюся часть графа производителей через связывание и создание экземпляров по мере необходимости других производителей на основе объявлений зависимостей производителя методов производителей уже на графе производителей, и
модуль автоматического выполнения графа производителей, чтобы выполнять производителей на графе производителей в порядке, указанном посредством графа производителей, чтобы определять вывод интересующего производителя, при этом выполнение каждого производителя приводит к выполнению метода производителя для экземпляра производителя, и модуль автоматического выполнения графа производителей содержит:
модуль параллелизации, чтобы инструктировать выполнение нуля или более из множества производителей параллельно.
16. Устройство по п.15, в котором модуль автоматического выполнения графа производителей дополнительно содержит:
модуль локального выполнения, соединенный с модулем параллелизации, чтобы инструктировать выполнение производителя, имеющего режим локального выполнения, локально.
17. Устройство по п.16, в котором модуль автоматического выполнения графа производителей дополнительно содержит модуль получения показателей, чтобы измерять время локального выполнения производителя, имеющего режим локального выполнения, если запрошены инструментальные средства.
18. Устройство по п.15, в котором модуль автоматического выполнения графа производителей дополнительно содержит:
модуль многопоточной обработки, соединенный с модулем параллелизации, чтобы инициировать механизм организации пула потоков и снабжать доступные потоки многопоточными задачами, соответствующими производителям, имеющим режим выполнения в многопоточной обработке.
19. Устройство по п.18, в котором модуль автоматического выполнения графа производителей дополнительно содержит модуль получения показателей, чтобы измерять время выполнения каждого из производителей, имеющих режим выполнения в многопоточной обработке, если запрошены инструментальные средства.
20. Устройство по п.15, в котором модуль автоматического выполнения графа производителей дополнительно содержит:
модуль многопроцессорной обработки, соединенный с модулем параллелизации, чтобы создавать экземпляр задания, преобразовывать в последовательную форму задачи многопроцессорной обработки, соответствующие производителям, имеющим режим выполнения в многопроцессорной обработке, преобразовывать в последовательную форму вводы и базисные экземпляры задач многопроцессорной обработки, добавлять преобразованные в последовательную форму задачи многопроцессорной обработки и преобразованные в последовательную форму вводы, и преобразованные в последовательную форму базисные экземпляры в задание, и предоставлять задание в диспетчер решетки, причем диспетчер решетки диспетчеризует задание в решетку, имеющую множество процессоров, чтобы выполнять задачи многопроцессорной обработки в задании.
21. Устройство по п.20, в котором модуль автоматического выполнения графа производителей дополнительно содержит модуль получения показателей, чтобы измерять время выполнения каждой из задач многопроцессорной обработки, соответствующих производителям, имеющим режим выполнения в многопроцессорной обработке, время преобразования в последовательную форму и размер вводов, выводов и экземпляров задач многопроцессорной обработки в рамках задания, время преобразования из последовательной формы и размер вводов, выводов и экземпляров задач многопроцессорной обработки в рамках задания, и время выполнения задач многопроцессорной обработки в рамках задания, если запрошены инструментальные средства.
22. Устройство по п.21, в котором в ответ на запрос на сравнительное тестирование модуль получения показателей должен измерять время локального выполнения задач многопроцессорной обработки, сравнивать время локального выполнения задач многопроцессорной обработки со временем выполнения задания и извлекать показатели сравнения.
23. Устройство по п.15, в котором среда выполнения дополнительно содержит:
основанную на производителе конфигурируемую структуру решений, соединенную с модулем параллелизации, чтобы сохранять режим выполнения на основе комбинации одного или более из ключа класса, ключа экземпляра и ключа метода от клиента среды выполнения, при этом:
модуль автоматического формирования графов производителей выполнен с возможностью определять режим выполнения на основе выборов режима выполнения, настроек режима выполнения и настройки подмены среды выполнения, если они имеются.
24. Устройство по п.15, в котором среда выполнения дополнительно содержит:
структуру графа производителей, соединенную с модулем автоматического формирования графов производителей и модулем автоматического выполнения графа производителей, чтобы сохранять выводы множества производителей, настройки режима выполнения и полученные показатели, если они имеются.
25. Устройство по п.15, в котором среда выполнения дополнительно содержит:
структуру настройки среды выполнения, чтобы сохранять настройки подмены режима глобального выполнения.
26. Устройство, содержащее:
среду выполнения, чтобы выполнять объектно-ориентированный исходный код с объявлениями зависимостей производителя для методов и настроек режимов выполнения методов, при этом производитель является конструкцией с возможностью создания экземпляра во время выполнения, которая включает в себя, по меньшей мере, экземпляр и метод, ассоциативно связанный с этим экземпляром, причем каждое объявление зависимостей производителя для данного метода идентифицирует набор из нуля или более производителей, и при этом упомянутая среда выполнения включает в себя:
модуль автоматического формирования графов производителей, чтобы принимать обозначение интересующего производителя, добавлять интересующего производителя в качестве части графа производителей и автоматически формировать оставшуюся часть графа производителей через связывание и создание экземпляра по мере необходимости других производителей на основе объявлений зависимостей производителя методов производителей уже на графе производителей, и
модуль автоматического выполнения графа производителей, чтобы выполнять производителей на графе производителей в порядке, указанном посредством графа производителей, чтобы определять вывод интересующего производителя, при этом выполнение каждого производителя приводит к выполнению метода производителя для экземпляра производителя, и модуль автоматического выполнения графа производителей содержит:
модуль получения показателей, чтобы получать показатели, связанные с выполнением множества производителей по принципу "производитель-за-производителем", если запрошены инструментальные средства.
27. Устройство по п.26, в котором модуль получения показателей выполнен с возможностью измерять время выполнения производителей на графе производителей.
28. Машиночитаемый носитель, который предоставляет объектно-ориентированный исходный код, включающий в себя:
множество определений классов, каждое из которых включает в себя:
набор из одного или более полей,
набор из одного или более методов,
объявление зависимостей производителя для каждого метода из упомянутого набора методов, при этом объявление зависимостей производителя для данного одного из упомянутых методов используется посредством среды выполнения для того, чтобы идентифицировать набор из нуля или более производителей, и при этом производитель является конструкцией с возможностью создания экземпляра во время выполнения, которая включает в себя, по меньшей мере, экземпляр одного из множества классов в среде выполнения и метод, ассоциативно связанный с этим экземпляром, и
при этом среда выполнения выполнена с возможностью автоматически формировать граф производителей для обозначенного интересующего производителя через связывание и создание экземпляра по мере необходимости других производителей на основе объявлений зависимостей производителя методов других производителей и автоматически выполнять, по меньшей мере, два из производителей на графе производителей, по существу, параллельно на основе зависимости между производителями, как указано на графе производителей.
29. Машиночитаемый носитель по п.28, в котором среда выполнения выполнена с возможностью автоматически получать показатели, связанные с выполнением производителей на графе производителей, в ответ на запрос инструментальных средств.
30. Машиночитаемый носитель по п.29, в котором среда выполнения выполнена с возможностью автоматически выполнять сравнительное тестирование локального выполнения одного или более производителей на графе производителей в сравнении с удаленным выполнением одного или более производителей посредством многопроцессорной обработки в ответ на запрос на сравнительное тестирование.
31. Машиночитаемый носитель по п.28, в котором объектно-ориентированный исходный код дополнительно включает в себя:
настройку режима выполнения для каждого метода из упомянутого набора методов.
32. Машиночитаемый носитель по п.31, в котором среда выполнения определяет режим выполнения, при этом соответствующий метод должен быть выполнен на основе настройки режима выполнения, второй настройки режима выполнения в конфигурируемой структуре решений от одного из конечного пользователя и клиентского кода, если имеются, третьей настройки режима выполнения в структуре графа производителей от одного из конечного пользователя и клиентского кода, если имеются, и настройки подмены среды выполнения, если она имеется.
33. Машиночитаемый носитель по п.31, в котором режим выполнения является одним из режима локального выполнения, режима многопроцессорной обработки и режима многопоточной обработки.
34. Машиночитаемый носитель по п.31, в котором одно или более из множества определений классов дополнительно включает в себя:
одну или более настроек режима выполнения, предоставляемых в примечании.
35. Машиночитаемый носитель по п.28, в котором объектно-ориентированный исходный код дополнительно включает в себя:
команду настройки подмены режима выполнения среды выполнения, чтобы подменять режим выполнения на уровне среды выполнения.
36. Машиночитаемый носитель по п.28, в котором объектно-ориентированный исходный код дополнительно включает в себя:
команду настройки подмены режима выполнения производителя, чтобы подменять режим выполнения по принципу "производитель-за-производителем".
37. Машиночитаемый носитель по п.28, в котором объектно-ориентированный исходный код дополнительно включает в себя:
команду настройки режима выполнения на основе конфигурируемого дерева решений, чтобы подменять режим выполнения на основе, по меньшей мере, одного из класса, метода и экземпляра.
38. Машиночитаемый носитель по п.28, в котором объектно-ориентированный исходный код дополнительно включает в себя:
команду настройки режима выполнения на основе конфигурируемого дерева решений, чтобы подменять режим выполнения на основе, по меньшей мере, одного из класса, метода и экземпляра.