ЗАПУСК ПРИЛОЖЕНИЯ НА ОСНОВЕ ИНТЕРФЕЙСА ПЕРЕДАЧИ СООБЩЕНИЯ (MPI) В ГЕТЕРОГЕННОЙ СРЕДЕ
LAUNCHING APPLICATIONS ON BASIS OF MESSAGE TRANSMISSION INTERFACE (MPI) IN HETEROGENEOUS MEDIUM

Область техники, к которой относится изобретение
Настоящее раскрытие относится к приложениям на основе интерфейса передачи сообщения (MPI) и, более конкретно, к системам и способам для запуска приложения на основе MPI в гетерогенной среде.
Уровень техники
Вычислительные системы с параллельной обработкой могут использоваться для распределения рабочей нагрузки на множество процессоров или вычислительных узлов для повышения пропускной способности при вычислениях. Процессы или задачи могут выполняться параллельно в каждом из узлов и могут сообщаться друг с другом, для совместного использования данных, ресурсов, результатов и т.д. Такой обмен данными между узлами может возникать по сети или другому соединению для передачи данных и может соответствовать стандарту интерфейса передачи сообщений, который обычно обозначается как MPI. Подход типа клиент-сервер обычно используется в MPI, где процесс "сервера" в одном узле обозначает возможность приема передаваемых данных из процессов "клиента" в других узлах. В свою очередь, могут быть согласованы, установлены и синхронизированы соединения для передачи данных между каждой парой клиент-сервер, используя дополнительные операции, которые могут привести к увеличению сложности системы.
Система параллельной обработки также, в общем, может быть воплощена в гетерогенной среде, где вычислительные узлы размещены на разных платформах, которые могут включать в себя различную архитектуру процессора и/или разные операционные системы (OS). Гетерогенная среда, однако, может дополнительно увеличить сложность операций MPI. Например, разные OS могут иметь разные процедуры для запуска процесса (например, запуска и инициализации) в каждом узле.
Может потребоваться разрабатывать отдельные версии исходного кода MPI и поддерживать для каждой OS платформы, ассоциированной с одним или больше узлами в гетерогенной среде, в результате чего повышаются трудозатраты, стоимость и потенциальные задержки при воплощении и обновлениях системы.
Краткое описание чертежей
Свойства и преимущества вариантов осуществления заявленного предмета изобретения будут понятны из следующего подробного описания изобретения и после ссылки на чертежи, на которых одинаковые номера обозначают одинаковые части и на которых:
на фиг. 1 показана схема высокого уровня системы одного примерного варианта осуществления, в соответствии с настоящим раскрытием;
на фиг. 2 показана блок-схема одного примерного варианта осуществления, в соответствии с настоящим раскрытием;
на фиг. 3 показана блок-схема последовательности операций обмена данными одного примерного варианта осуществления, в соответствии с настоящим раскрытием;
на фиг. 4 показана блок-схема последовательности операций одного примерного варианта осуществления, в соответствии с настоящим раскрытием;
на фиг. 5 показана блок-схема последовательности операций по другому примерному варианту осуществления, в соответствии с настоящим раскрытием;
на фиг. 6 показана блок-схема последовательности операций по другому примерному варианту осуществления, в соответствии с настоящим раскрытием; и
на фиг. 7 показана схема высокого уровня системы платформы по другому примерному варианту осуществления, в соответствии с настоящим раскрытием.
Хотя в следующем "Подробном описании изобретения" делается ссылка на иллюстративные варианты осуществления, множество альтернатив, модификаций и их вариантов будут понятны для специалиста в данной области техники.
Подробное описание изобретения
В общем, настоящее раскрытие направлено на системы, устройства, способы и считываемый компьютером носитель информации для запуска процессов и/или приложений, в которых используется стандарт интерфейса передачи сообщения (MPI) (например, процессы на основе MPI) в гетерогенной среде платформ или узлов, на которых могут быть установлены разные операционные системы (OS).
Первый узел, который можно назвать узлом запуска, может быть выполнен с возможностью запуска процессов на основе MPI в том же узле или в любом количестве других узлов, которые могут называться узлами обработки. В узле запуска может быть установлена OS первого типа, в то время как в узлах обработки может быть установлен OS того же или другого типа.
Узел запуска может включать в себя модуль кросс-платформенной обработки (РМ), который выполнен с возможностью определения типа OS в узле обработки. РМ также может включать в себя модуль запроса запуска, выполненный с возможностью передачи запроса запуска в узел обработки. Узел обработки может быть выполнен с возможностью формирования прокси-модуля в ответ на этот запрос, где прокси-модуль может запускать один или больше процессов на основе MPI. В некоторых вариантах осуществления, в зависимости от типа OS узла обработки, прокси-узел может быть сформирован в результате исполнения безопасной оболочки (SSH) или через модуль системного обслуживания OS узла обработки.
Кросс-платформенный РМ выполнен с возможностью исполнения в разных OS и запуска процессов на основе MPI в других узлах, на которых установлены разные OS, обеспечивает унифицированную инфраструктуру РМ, которая снижает трудности и сложности, представляемые разными РМ, с разными функциями и свойствами, которые требуются для разных OS.
На фиг. 1 иллюстрируется схема 100 системы верхнего уровня одного примерного варианта осуществления, в соответствии с настоящим раскрытием. Представленная система включает в себя узел 102 запуска, который дополнительно включает в себя кросс-платформенный менеджер 104 процесса (РМ), операции которого будут более подробно описаны ниже. Система может также включать в себя любое количество дополнительных узлов 106, 108, 110 и т.д., которые называются узлами обработки, в которых могут быть запущены процессы 112 на основе MPI, например, в ответ на запросы из узла запуска. Процессы на основе MPI обычно сообщаются друг с другом, используя библиотеку процедур интерфейса передачи данных, которые соответствуют стандарту MPI. Множество узлов, как узел 102 запуска, так и узлы 106, 108, 110 обработки, могут быть установлены на платформах одного или разных типов, показанных как платформы типа А 114, платформы типа В 116, платформы типа С 118 и т.д. Типы платформ могут включать в себя разные архитектуры процессора, и в них могут быть установлены разные OS для формирования гетерогенной вычислительной среды. Узлы обработки (и узел запуска) могут быть организованы как кластер параллельной обработки, состоящий из узлов, по которому может быть распределена задача. Передача данных между узлами на основе MPI может выполняться для совместного использования данных, ресурсов и результатов, что способствует окончанию задачи, выполняемой параллельно.
Узел может представлять собой компьютер, такой как рабочая станция, переносной компьютер или сервер, но примерные варианты осуществления не ограничены этим и могут изменяться. OS представляет собой набор программных средств, которые могут управлять аппаратными ресурсами компьютера и могут обеспечивать общие услуги для программ, процессов и/или приложений, работающих в OS. Примеры операционных систем могут представлять собой Linux и Microsoft, Windows, но примерные варианты осуществления могут изменяться и могут не быть ограничены этим. Например, варианты осуществления могут охватывать любую операционную систему, такую как MacOS, Android, Berkeley Software Distribution (BSD), iOS, OS X, QNX, Windows Phone и IBM z/OS, и т.д.
Хотя один узел запуска и множество узлов обработки показаны на этом чертеже с целью иллюстрации, следует понимать, что система может быть выполнена с любым количеством или комбинацией узлов запуска и обработки, и что узел запуска может быть воплощен как один из узлов обработки. Гетерогенная среда поэтому может включать в себя любое количество платформ и OS разных типов.
На фиг. 2 иллюстрируется блок-схема 200, в соответствии с одним примерным вариантом осуществления, который соответствует настоящему раскрытию. Система представлена более подробно, где воплощен вариант осуществления узла 102 запуска платформы, обозначенной как платформа А или платформа В, которая выполнена с возможностью установки OS 202, которая аналогична обозначенной, как OS типа А или типа В. В этом примерном варианте осуществления, с целью иллюстрации, OS типа А может представлять собой OS Windows, и OS типа В может представлять собой OS Linux или MacOS. Кросс-платформенный РМ 104 узла 102 запуска также может включать в себя модуль 212 определения типа OS и модуль 214 запроса запуска, операции которых более подробно поясняются ниже.
Также показан узел 106 обработки (узел 2) на платформе типа А, выполненной с возможностью установки в ней OS типа А 204, прокси-модуль 210 и один или больше запущенных процессом 112 на основе MPI. OS 204 также может включать в себя модуль 206 системного обслуживания. Другой узел 110 обработки (узел N), в платформе типа В также представлен. Узел N может быть выполнен возможностью установки в нем, как в хост-устройстве, OS типа В 208, прокси-модуля 210 и одного или больше запущенных процессов 112 на основе MPI.
Модуль 212 определения типа OS кросс-платформеннного РМ 104 может быть выполнен с возможностью определения типа OS узла обработки, после чего должен быть запущен процесс на основе MPI. На основе такого определения модуль 214 запроса запуска может быть выполнен с возможностью передачи запроса в этот узел обработки для обеспечения формирования узлом обработки прокси-модуля 210. OS в узлах запуска и обработки может быть выполнена с возможностью, по меньшей мере, частично, предоставлять TCP сокеты для передачи запросов на запуск.
В случае, когда в узле 106 обработки установлена OS Windows, прокси-модуль может быть сформирован с помощью модуля 206 системного обслуживания в ответ на запрос из узла запуска. Модуль системного обслуживания может представлять собой компонент OS Windows, например, предварительно установленный компонент. В случае узла 110 обработки, в котором установлена OS Linux, прокси-модуль может быть сформирован в результате исполнения безопасной оболочки (SSH), которая представляет собой протокол криптографической сети для защищенной передачи данных, дистанционной регистрации через командную строку, дистанционного исполнения команды, и другие безопасные услуги защищенной сети между двумя подключенными к сети компьютерами. Другие примеры средств дистанционного запуска, аналогичных SSH, которые могут использоваться в некоторых вариантах осуществления, включают в себя удаленную оболочку (RSH), удаленное порождение нового процесса, "srun" в простой утилите Linux для управления ресурсами (SLURM), "blaunch" в средстве совместного использования нагрузки платформы (LSF), "qrsh" механизма решетки Sun (SGE), "рое", для запуска параллельной операционной среды, и т.п.
Сформированный прокси-модуль 210 может быть выполнен с возможностью запуска процессов 112 на основе MPI, которые затем могут сообщаться друг с другом, используя интерфейсы, соответствующие стандарту MPI, или любые соответствующие их вариации.
В некоторых вариантах осуществления система может быть масштабируемой и может обеспечивать возможности иерархических запусков. Например, прокси-модуль одного узла обработки может сообщаться с модулем системного обслуживания другого узла обработки для запроса формирования прокси-модуля на этом втором узле обработки, что, в свою очередь, может запускать процессы на основе MPI в этом втором узле. В качестве альтернативы, прокси-модуль одного узла обработки может формировать прокси-модуль другого узла обработки, например, путем исполнения SSH, который, в свою очередь, может запускать процессы на основе MPI в этом втором узле.
В некоторых вариантах осуществления процессы 112 на основе MPI могут быть запущены на удаленных узлах (узлах обработки), при этом от пользователя не требуется вводить данные, такие как пароль. Некоторые операционные системы могут воплощать дистанционный запуск без автоматического требования пароля, например, в результате запуска процесса, в котором дистанционно используется безопасная оболочка (SSH). Другие операционные системы, однако, могут использовать промежуточную системную службу 206, которая уже может исполняться в дистанционном узле, в соответствии с административными привилегиями, для формирования процессов в дистанционном узле, сформированные процессы затем имеют текущие привилегии пользователя (например, процесс узла запуска, запрашивающий запуск) таким образом, что процессы 112 на основе MPI могут быть запущены дистанционно без ввода регистрационного имени пользователя и/или пароля. Обслуживание системы может быть включено в OS 204 для предоставления определений и переводов, ассоциированных с OS, и для предоставления соответствующего уровня привилегии для запущенных процессов таким образом, что они могут работать и могут сообщаться друг с другом, используя MPI, например, через сетевые соединения.
Сетевые передачи данных могут включать в себя, например, передачу данных по сети InfiniBand и/или другие, обладающие относительно высокими рабочими характеристиками сети передачи данных. Другие типы сетевой передачи данных могут включать в себя передачу данных между устройствами, используя сеть передачи данных на близком расстоянии, такую как сеть BLUETOOTH, персональную вычислительную сеть (PAN), передачу данных на близком расстоянии (NFC), сеть ZigBee, проводное соединение Ethernet, соединение по проводной или беспроводной универсальной последовательной шине (USB), радиочастотную идентификацию (RFID), и сеть передачи данных на большом расстоянии, такую как сеть Wi-Fi, глобальная вычислительная сеть (WAN), включающая в себя, но без ограничений сеть сотовых телефонов (3G, 4G и т.д. и т.п.), Интернет, сеть предприятия, телефонные сети или любые их комбинации и т.п.
В некоторых вариантах осуществления системная служба 206 может открывать сокет TCP в режиме прослушивания, например во время или после запуска узла 106 обработки, для отслеживания запросов запуска из узла 102 запуска. В некоторых вариантах осуществления прослушиваемый сокет может быть открыт для порта 8679. Запросы запуска могут включать в себя аргументы командной строки, учетные данные пользователя и/или любую другую информацию, ассоциированную с запуском прокси-модулей 210 и процессов 112 передачи данных на основе MPI. Системная служба 206 может прерывать соединение с узлом запуска (или кросс-платформенным РМ 104) после формирования/запуска прокси-модуля 210.
В некоторых вариантах осуществления кросс-платформенный РМ 104 может быть выполнен как два (или больше) модулей исходного кода, которые могут быть разработаны, скомпилированы и могут поддерживаться независимо друг от друга. Хотя оба модуля могут быть скомпилированы для перевода исходного кода в двоичные исполнительные коды, которые совместимы с аппаратными средствами и OS платформами узла запуска, первый модуль исходного кода может быть выполнен с возможностью включать в себя исходный код, который является независимым от OS узла запуска. В отличие от этого, второй модуль исходного кода может быть выполнен с возможностью включать в себя исходный код, который зависит от или по-другому может быть связан с OS узла запуска. Следует понимать, что такое разделение исходного кода может упрощать разработку, распределение и поддержку кросс-платформенного РМ 104. В некоторых вариантах осуществления второй (зависимый от OS) исходный код может быть относительно малым и менее сложным, чем первый модуль исходного кода.
На фиг. 3 иллюстрируется блок-схема 300 последовательности операций потока обработки одного примерного варианта осуществления, который соответствует настоящему раскрытию. Узел 102 запуска исполняет кросс-платформенный менеджер 302 обработки. В некоторых вариантах осуществления узел 102 запуска может представлять собой платформу OS Windows или платформу OS Linux. Запросы на запуск процессов 304 на основе MPI передают из узла 102 запуска в узел 106 платформы А и в узел 110 платформы В. Запросы могут быть переданы через соединения сокета TCP между узлами. В ответ на эти запросы 304 модуль системного обслуживания в узле 106 платформы запускает прокси-модуль 306, который, в свою очередь, запускает один или больше процессов 308 на основе MPI. В некоторых вариантах осуществления узел 106 платформы А может представлять собой платформу OS Windows.
Также в ответ на эти запросы прокси-модуль формируется в узле 110 платформы В непосредственно из узла запуска (например, через безопасную оболочку), и прокси-модуль запускает один или больше процессов 308 на основе MPI. В некоторых вариантах осуществления узел 110 платформы В может представлять собой платформу OS Linux.
После запуска обработки на основе MPI они могут сообщаться друг с другом 310, например, используя библиотечные подпрограммы, которые воплощают стандарт MPI или его варианты. Обмен данными 310 MPI может происходить между процессами одного и того же узла или между процессами любого из узлов 102, 106, 110, и может происходить через соединения сокетов TCP сети в манере передачи переданных сообщений.
На фиг. 4 иллюстрируется блок-схема последовательности операций 400 одного примерного варианта осуществления, в соответствии с настоящим раскрытием. Операции обеспечивают способ для запуска процесса на основе MPI в узле обработки, в котором установлена OS Windows или ее вариант. В операции 402 запрос на запуск процесса на основе MPI принимают из узла запуска. В операции 404 запускается прокси-процесс в узле обработки, в ответ на запрос, компонентом системной службы узла OS обработки. В операции 406 прокси-процесс запускает процесс на основе MPI. В операции 408 выполняют передачу данных на основе MPI между запущенным процессом MPI в этом узле и другими процессами на основе MPI в этом или другом узлах, включая в себя узел запуска.
На фиг. 5 иллюстрируется блок-схема последовательности операций 500 другого примера варианта осуществления, в соответствии с настоящим раскрытием. Операции направлены на способ для запуска процесса на основе MPI в узле обработки, в котором установлена OS Linux, MacOS или ее вариант. В операции 502 из узла запуска принимают запрос на запуск процесса на основе MPI. В операции 504 запускают прокси-процесс в узле обработки, в ответ на запрос путем выполнения безопасной оболочки. В операции 506 прокси-процесс запускает процесс на основе MPI. В операции 508 выполняют передачу данных на основе MPI между запущенным процессом MPI в этом узле и другими процессами на основе MPI в этом или в других узлах, включая в себя узел запуска.
На фиг. 6 иллюстрируется блок-схема последовательности операций 600 по другому примерному варианту осуществления, в соответствии с настоящим раскрытием. Операции направлены на способ для запуска процесса на основе MPI из узла запуска. Во время операции 610 выполняют определение в момент определения типа OS, ассоциированной с узлом обработки, в котором должен быть запущен процесс на основе MPI. При операции 620 запускают прокси-модуль в узле обработки. Прокси-модуль выполнен с возможностью запуска процесса на основе MPI. Запуск прокси-модуля включает в себя операции, которые основаны на определении типа OS узла обработки. Если тип OS узла обработки представляет собой OS Linux или MacOS, прокси-модуль запускают через исполнение безопасной оболочки для дистанционного запуска процесса. Если тип OS узла обработки представляет собой OS Windows, прокси-модуль запускают путем запроса удаленного запуска процесса из модуля системного обслуживания, исполняющегося в узле обработки.
На фиг. 7 иллюстрируется схема 700 системы верхнего уровня одного примерного варианта осуществления, в соответствии с настоящим раскрытием. Система 700 может представлять собой аппаратную платформу 710 или вычислительное устройство, такое как, например, смартфон, интеллектуальный планшет, карманный персональный компьютер (PDA), мобильное Интернет-устройство (MID), конвертируемый планшет, ноутбук или переносной компьютер, настольный компьютер, сервер, интеллектуальный телевизор или любое другое устройство, стационарное или мобильное. Устройство может, в общем, представлять пользователю различные интерфейсы через дисплей 780, такой как, например, сенсорный экран, жидкокристаллический дисплей (LCD) или любой другой соответствующий тип дисплея.
Система 700 показана как включающая в себя процессор 720. В некоторых вариантах осуществления процессор 720 может быть воплощен как любое количество ядер процессора. Процессор (или ядра процессора) может представлять собой процессор любого типа, такой как, например, микропроцессор, встроенный процессор, цифровой сигнальный процессор (DSP), сетевой процессор, программируемая вентильная матрица или другое устройство, выполненное с возможностью выполнения кода. Процессор 720 может представлять собой однопотоковое ядро или многопотоковое ядро в том, что он может включать в себя более, чем один контекст аппаратного потока (или "логичный процессор") на ядро. Система 700 также показана как включающая в себя запоминающее устройство 730, соединенное с процессором 720. Запоминающее устройство 730 может представлять собой любое из широкого разнообразия запоминающих устройств (включая в себя различные уровни иерархии памяти и/или кэш-памяти), как известно, или по-другому может быть доступно для специалиста в данной области техники. Также показана система 700, которая включает в себя систему ввода-вывода (10) или контроллер 740, который может быть выполнен с возможностью предоставления или управления передачей данных между процессором 720 и другими элементами системы 700 или другими элементами (не показаны), внешними для системы 700. Система 700 также может включать в себя интерфейс 770 беспроводной передачи данных, выполненный с возможностью обеспечения беспроводной передачи данных между системой 700 и любыми внешними объектами. Беспроводные передачи данных могут соответствовать или, в противном случае, могут быть совместимыми с любыми существующими или разработанными в будущем стандартами передачи данных, включая в себя стандарты передачи данных для мобильного телефона.
Система 700 может дополнительно включать в себя узел 750 запуска и один или больше узлов 760 обработки. Узел запуска может быть выполнен с возможностью запуска процессов или приложения на основе MPI в узлах 760 обработки, как описано выше. В некоторых вариантах осуществления узел 750 запуска может представлять собой один из узлов 760 обработки. В некоторых вариантах осуществления узел 750 запуска и/или узлы 760 обработки могут быть воплощены в процессоре 720. В некоторых вариантах осуществления узел 750 запуска и узлы 760 обработки могут быть распределены по множеству экземпляров платформы 710 и могут быть выполнены как кластер узлов параллельной обработки.
Следует понимать, что в некоторых вариантах осуществления различные компоненты системы 700 могут быть скомбинированы в системе в виде архитектуры "система на микросхеме" (SoC). В некоторых вариантах осуществления компоненты могут представлять собой аппаратные компоненты, компоненты встроенного программного обеспечения, программные компоненты или любую соответствующую комбинацию аппаратных средств, компонентов встроенного микропрограммного обеспечения или программных компонентов.
Варианты осуществления описанных здесь способов могут быть воплощены в системе, которая включает в себя один или больше носителей записи, на которых сохранены, индивидуально или в комбинации, инструкции, которые при их исполнении одним или больше процессорами выполняют способы. Здесь процессор может включать в себя, например, системное CPU (например, процессор ядра) и/или программируемую схему. Таким образом, предполагается, что операции в соответствии со способами, описанными здесь, могут быть распределены среди множества физических устройств, таких как структуры обработки в нескольких различных физических местах положения.
Кроме того, предполагается, что операции способа могут выполняться индивидуально или в виде подкомбинации, как будет понятно для специалиста в данной области техники. Таким образом, не все операции каждой из блок-схем последовательности операций должны быть выполнены, и настоящее раскрытие явно направлено на то, что все подкомбинации таких операций будут включены, как будет понятно для специалиста в данной области техники.
Носитель записи может включать в себя любой тип материального носителя записи, например любой тип диска, включая в себя гибкие диски, оптические диски, постоянное запоминающее устройство на компакт-дисках (CD-ROM), перезаписываемые компакт-диски (CD-RW), цифровые универсальные диски (DVD) и магнитооптические диски, полупроводниковые устройства, такие как постоянные запоминающие устройства (ROM), оперативные запоминающие устройства (RAM), такие как динамические и статические RAM, стираемые программируемые постоянные запоминающие устройства (EPROM), электрически стираемые программируемые постоянные запоминающие устройства (EEPROM), запоминающее устройство флэш, магнитные или оптические карты или носители любого типа, пригодные для сохранения электронных инструкций.
Термин "схема", используемый в любом представленном здесь варианте осуществления, может включать в себя, например, одну или любую комбинацию аппаратных схем, программируемых схем, схем конечных автоматов и/или встроенное программное обеспечение, которое содержит инструкции, исполняемые программируемой схемой. Схема может быть воплощена как интегральная схема, такая как интегральные микросхемы. Программы и/или приложения (APS) могут быть воплощены как код или инструкции, которые могут быть выполнены в программируемых схемах, таких как хост-процессор или любая другая программируемая схема. Программное обеспечение может быть воплощено как пакет программного обеспечения, код, инструкции, набор инструкций и/или данные, записанные на энергонезависимые считываемые компьютером носители информации. Встроенное программное обеспечение может быть воплощено как код, инструкции или наборы инструкций, и/или данные, которые были жестко кодированы (то есть энергонезависимые) в запоминающих устройствах. "Модуль", используемый здесь в любом варианте осуществления, может быть воплощен как любая комбинация программного обеспечения, встроенного программного обеспечения и/или схемы.
Таким образом, настоящее раскрытие направлено на системы, устройства, способы и считываемый компьютером носитель информации для запуска процессов на основе MPI и приложений в гетерогенной окружающей среде. Следующие примеры относятся к дополнительным вариантам осуществления.
В соответствии с примером 1 предусмотрен узел обработки для запуска процессов на основе MPI. Узел обработки может включать в себя операционную систему (OS), OS предназначена для приема запроса обработки на основе интерфейса прохождения сообщения (MPI), запроса принятого из модуля управления процессом в узле запуска. Узел обработки в этом примере может также включать в себя прокси-модуль для запуска процесса на основе MPI в ответ на прием запроса. Процесс на основе MPI в этом примере может дополнительно включать в себя модуль приложения для обмена данными с другими процессами на основе MPI, в соответствии со стандартом MPI, обмен данными, ассоциирован с рабочими характеристиками задачи.
Пример 2 может включать в себя элементы примера 1, и прокси-модуль сформирован путем исполнения безопасной оболочки (SSH).
Пример 3 может включать в себя элементы примера 2, и процесс на основе MPI запускают с привилегиями, ассоциированными с модулем управления процесса в узле запуска.
Пример 4 может включать в себя элементы примера 2, и OS представляет собой Linux, OS или MacOS.
Пример 5 может включать в себя элементы по примеру 1, и прокси-модуль сформирован на основе модуля системного обслуживания OS.
Пример 6 может включать в себя элементы по примеру 5, и модуль системного обслуживания исполняется с административными привилегиями, и процесс на основе MPI запускают с привилегиями, ассоциированными с модулем обработки процесса в узле запуска.
Пример 7 может включать в себя элементы по примеру 5, и OS представляет собой OS Windows.
Пример 8 может включать в себя элементы примера 1, и узел обработки представляет собой один из множества узлов обработки, организованных как кластер узлов параллельной обработки, и узел запуска представляет собой один из узлов обработки.
Пример 9 может включать в себя элементы примера 1, и запрос на обработку на основе MPI принимают через сокеты протокола управления передачей (TCP).
Пример 10 может включать в себя элементы примера 1, и прокси-модуль дополнительно выполнен с возможностью запуска второго прокси-модуля во втором узле обработки, второй прокси-модуль, предназначенный для запуска процесса на основе MPI во втором узле обработки.
В соответствии с примером 11 предусмотрена система для запуска процессов на основе MPI для множества типов платформ. Система может включать в себя первую OS, ассоциированную с платформой узла запуска, первая OS предусмотрена для обмена данными между платформой узла запуска и платформой узла обработки, и множество типов платформ включают в себя платформу узла запуска и платформу узла обработки. Система в данном примере также может включать в себя модуль управления процессом (РМ), ассоциированный с платформой узла запуска. Модуль РМ в данном примере может включать в себя модуль определения типа OS, предназначенный для определения типа второй OS, ассоциированной с платформой узла обработки. Модуль РМ в этом примере может также включать в себя модуль запроса запуска, предназначенный для передачи запроса в платформу узла обработки, запрос, предназначенный для формирования прокси-модуля для запуска процесса на основе MPI на платформе узла обработки, и обмен данными по запросу основан на определенном типе второй OS.
Пример 12 может включать в себя элементы по примеру 11, и прокси-модуль сформирован в результате исполнения безопасной оболочки (SSH).
Пример 13 может включать в себя элементы по примеру 11, и вторая OS представляет собой OS Linux или MacOS.
Пример 14 может включать в себя элементы по примеру 11, и прокси-модуль сформирован на основе модуля системного обслуживания второй OS.
Пример 15 может включать в себя элементы примера 11, и вторая OS представляет собой OS Windows.
Пример 16 может включать в себя элементы примера 11, и платформа узла обработки представляет собой одну из множества платформ узла обработки, организованных как кластер параллельной обработки узлов, и платформа узла запуска представляет собой одну из платформ узла обработки.
Пример 17 может включать в себя элементы по примеру 11, и первая OS представляет собой OS Linux, MacOS или OS Windows.
Пример 18 может включать в себя элементы примера 11, и платформа узла запуска и/или платформа узла обработки представляет собой смартфон, переносное вычислительное устройство, интеллектуальный телевизор или интеллектуальный планшет.
Пример 19 может включать в себя элементы примера 11, и платформа узла запуска и платформа узла обработки дополнительно включают в себя интерфейс пользователя, и интерфейс пользователя представляет собой сенсорный экран.
В соответствии с примером 20, предусмотрен способ для запуска процесса на основе MPI из узла запуска. Способ в этом примере может включать в себя определение типа OS, ассоциированное с узлом обработки, на котором должен быть запущен процесс на основе MPI. Способ в этом примере также может включать в себя запуск прокси-модуля на узле обработки, прокси-модуль, предназначенный для запуска процесса на основе MPI, и запуск прокси-модуля включает в себя операции на основе определенного типа OS узла обработки.
Пример 21 может включать в себя элементы по примеру 20, и запуск прокси-модуля дополнительно включает в себя выполнение безопасной оболочки для удаленного запуска процесса.
Пример 22 может включать в себя элементы по примеру 21, и OS представляет собой OS Linux или MacOS.
Пример 23 может включать в себя элементы по примеру 20, и запуск прокси-модуля дополнительно включает в себя запрос дистанционного запуска процесса из модуля системного обслуживания, выполняющегося в узле обработки.
Пример 24 может включать в себя элементы по примеру 23, и OS представляет собой OS Windows.
Пример 25 может включать в себя элементы по примеру 20, и прокси-модуль узла обработки дополнительно выполнен с возможностью запуска второго прокси-модуля во втором узле обработки, второй прокси-модуль предназначен для запуска процесса на основе MPI во втором узле обработки.
В соответствии с примером 26, предусмотрена система для запуска процесса на основе MPI из узла запуска. Система в этом примере может включать в себя средство для определения типа OS, ассоциированного с узлом обработки, в котором должен быть запущен процесс на основе MPI. Система в этом примере также может включать в себя средство для запуска прокси-модуля на узле обработки, прокси-модуля для запуска процесса на основе MPI, и запуск прокси-модуля включает в себя операции на основе OS определенного типа узла обработки.
Пример 27 может включать в себя элементы примера 26, и запуск прокси-модуля дополнительно включает в себя средство для исполнения безопасной оболочки для дистанционного запуска процесса.
Пример 28 может включать в себя элементы примера 27, и OS представляет собой OS Linux или MacOS.
Пример 29 может включать в себя элементы примера 26, и запуск прокси-модуля дополнительно включает в себя средство для запроса запуска удаленного процесса из модуля системного обслуживания, исполняющегося в узле обработки.
Пример 30 может включать в себя элементы примера 29, и OS представляет собой OS Windows.
Пример 31 может включать в себя элементы примера 26, и узел обработки представляет собой один из множества узлов обработки, организованных как кластер узлов параллельной обработки, и узел запуска представляет собой один из узлов обработки.
Пример 32 может включать в себя элементы примера 26, и обмен данными между узлом запуска и узлом обработки выполняется через сокеты TCP.
Пример 33 может включать в себя элементы примера 26, и прокси-модуль на узле обработки дополнительно включает в себя средство для запуска второго прокси-модуля во втором узле обработки, второй прокси-модуль, предназначенный для запуска процесса на основе MPI во втором узле обработки.
В соответствии с другим примером, предусмотрен, по меньшей мере, один считываемый компьютером носитель информации, имеющий инструкции, сохраненные в нем, которые при исполнении процессором обеспечивают выполнение процессором операции способа, как описано в любом из представленных выше примеров.
В соответствии с другим примером, предусмотрено устройство, включающее в себя средство для выполнения способа, как описано в любом из представленных выше примеров.
Термины и выражения, которые были использованы здесь, используются как термины описания, а не ограничения, и отсутствует какое-либо намерение использовать такие термины и выражения для исключения каких-либо показанных и описанных эквивалентов свойств (или их частей), и предполагается, что различные модификации возможны в пределах объема формулы изобретения. В соответствии с этим формула изобретения предназначена для охвата всех таких эквивалентов. Различные свойства, аспекты и варианты осуществления были описаны здесь. Свойства, аспекты и варианты осуществления могут быть скомбинированы друг с другом, а также могут быть выполнены их вариации и модификации, как будет понятно для специалиста в данной области техники. Настоящее раскрытие поэтому следует рассматривать как охватывающее такие комбинации, вариации и модификации.