Способ контроля хода выполнения программы пользователя, исполняющейся на вычислительных узлах вычислительной системы

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

 

Изобретение относится к области вычислительной техники, в частности к обеспечению контроля хода выполнения программы пользователя, исполняющейся на вычислительной системе или вычислительном кластере.

Моделирование сложных физических, химических или других процессов производится посредством выполнения параллельной программы на высокопроизводительной вычислительной системе (ВС) или вычислительном кластере. Исполняемый файл (двоичный файл) параллельной программы запускается на компьютерах ВС (вычислительных элементах, вычислительных узлах) программной компонентой системы управления заданиями и вычислительными ресурсами (далее просто системой управления заданиями). При выполнении программы возникают сбои/отказы аппаратных или программных компонентов ВС, поэтому пользователю необходимо контролировать ход выполнения программы по информации стандартной выдачи и диагностики.

Известны способы контроля хода выполнения программы пользователя на ВС, реализованные в программных системах управления заданиями SLURM (simple linux utility for resource management) (https://www.computing.llnl.gov/linux/slurm/download.html) и Torque, (http://www.adaptivecomputing.com/support/download-center/torque-download), заключающиеся в том, что предварительно в каждый вычислительный узел устанавливают программную компоненту системы управления заданиями, посредством которой сохраняют в определенном порядке информацию о ходе выполнения программы в каждом вычислительном узле (информация стандартной выдачи и диагностики), на котором выполняется программа пользователя, затем с помощью системы управления заданиями информацию о ходе выполнения программы записывают в файлы стандартной выдачи и диагностики, расположенные в устройстве хранения файловой системы общего назначения вычислительной системы (сетевой файловой системе или параллельной файловой системе, в которой размещаются исполняемые файлы, файлы с промежуточными данными, исходными текстами программ и т.д.).

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

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

В SLURM и Torque одновременно со стартом исполняемого файла пользовательской программы на первом, выделенном для выполнения программы пользователя, вычислительном узле запускается программная компонента системы управления заданиями, которая осуществляет обработку (сбор, буферизацию и запись) информации стандартной выдачи и диагностики. Поскольку процесс обработки информации осуществляется одновременно с выполнением программы, то он мешает расчетам, так как им используются аппаратные ресурсы вычислительного узла, которые должны полностью принадлежать программе. Кроме этого, сбой программных компонентов на данном вычислительном узле приводит к потере необработанной информации.

Для повышения отказоустойчивости процесса обработки информации стандартного выдачи и диагностики в Torque реализован способ, когда система управления заданиями записывает информацию во временные файлы на одном вычислительном узле. Временные файлы система управления заданиями размещает на устройстве хранения информации, которое подключено только к данному вычислительному узлу. Однако такой способ неудобен для пользователя, поскольку файлы становятся доступны для анализа информации лишь после завершения работы программы. Способ в Torque повышает устойчивость к сбоям файловой системы, однако не позволяет пользователю контролировать ход программы в процессе ее выполнения. Кроме этого, в случае вычислительных узлов, которые загружают операционную систему по сети, данный способ неприемлем из-за ограниченного размера электронного диска, размещаемого в оперативной памяти вычислительного узла.

Таким образом, способы контроля хода выполнения программы пользователя, обеспечиваемые такими системами, как SLURM, Torque, наиболее близки к заявляемому способу по технической сущности, и способ контроля хода выполнения программы пользователя, реализованный в SLURM, выбран в качестве наиболее близкого аналога.

Недостатками способа являются:

- влияние на пользовательскую программу:

- использование процессорных ядер, предназначенных для выполнения программы пользователя;

- расход оперативной памяти вычислительного узла для буферизации информации;

- зависимость от сбоев файловой системы общего назначения;

- отсутствие возможности сохранить последние диагностические сообщения, с помощью которых можно отыскать причину сбоя программы пользователя на вычислительных узлах ВС;

- отсутствие возможности определить сбой/отказ пользовательской программы.

Технические результаты, на достижение которых направлено заявленное изобретение, заключаются в повышении эффективности выполнения программы пользователя, отказоустойчивости (сбоеустойчивости) процесса контроля хода выполнения пользовательской программы, расширение функциональных возможностей.

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

Выполнение обработки и промежуточного хранения информации о ходе выполнения программы пользователя вне файловой системы общего назначения и вне вычислительных узлов позволяет выполняющейся программе монопольно использовать ресурсы вычислительных узлов, а также снизить зависимость процесса обработки от сбоя/отказа устройства хранения файловой системы общего назначения. Кроме этого, обеспечивается возможность одновременно с выполнением программы пользователя анализировать и контролировать ход выполнения пользовательской программы, своевременно найти причину сбоя/отказа выполнения программы, прекратить выполнение программы из-за неправильных промежуточных результатов или ее зависания. В случае зависания программы описываемый способ позволяет освободить вычислительные ресурсы для выполнения других заданий (программ) пользователей. Хранение после завершения программы пользователя определенной части информации о ходе ее выполнения в базе данных системы управления заданиями гарантирует наличие информации о последнем этапе выполнения программы, в том числе информации о сбоях системных программ, завершении пользовательской программы при определении ее зависания даже в случае удаления файлов стандартной выдачи и диагностики. В совокупности все это повышает эффективность выполнения программы пользователя, эффективность использования вычислительных ресурсов вычислительной системы, сбоеустойчивость/отказоустойчивость процесса контроля хода выполнения программы пользователя, расширяет функциональные возможности системы управления заданиями в целом.

На фигуре представлена структурная схема вычислительной системы, в которой реализован заявляемый способ контроля хода выполнения программы пользователя, исполняющейся на ее вычислительных узлах (далее способ контроля хода выполнения программы пользователя).

Вычислительная система содержит блок 1 вычислительных узлов, распределенный программный буфер 2, служебный сервер 3, дополнительное устройство 4 хранения информации, устройство 5 хранения файловой системы общего назначения вычислительной системы.

Группа входов-выходов блока 1 вычислительных узлов соединена с группой входов-выходов устройства 5 хранения файловой системы общего назначения вычислительной системы посредством коммуникационной сети, например, Ethernet. Группа выходов блока 1 вычислительных узлов соединена с первой группой входов распределенного программного буфера 2. Вторая группа входов распределенного программного буфера 2 соединена с первой группой выходов служебного сервера 3. Вторая и третья группы выходов служебного сервера 3 соединены соответственно с первыми группами входов устройства 5 хранения файловой системы общего назначения вычислительной системы и дополнительного устройства 4 хранения информации. Группа выходов распределенного программного буфера 2 соединена со второй группой входов дополнительного устройства 4 хранения информации. Четвертая группа выходов служебного сервера 3 соединена с группой входов блока 1 вычислительных узлов. Группа выходов дополнительного устройства 4 хранения информации соединена со второй группой входов устройства 5 хранения файловой системы общего назначения вычислительной системы. Группа входов служебного сервера 3 является группой входов файлов заданий пользователей.

Блок 1 вычислительных узлов содержит вычислительные узлы ВУ1, …, ВУm, где m=1, 2, …, соединенные между собой, например, по топологии «звезда». Вычислительные узлы ВУ1, …, ВУm предназначены для выполнения пользовательских программ. В каждый вычислительный узел ВУ1 (ВУ2, …, ВУm) установлено и выполняется специализированное программное обеспечение, включающее программную компоненту системы управления заданиями.

Распределенный программный буфер 2 может быть реализован на отдельных служебных компьютерах Б1, …, Бk, где k=1, 2, …. Распределенный программный буфер 2 предназначен для временного хранения информации о ходе выполнения программ пользователей. Буферизацию информации обеспечивает специализированная распределенная по служебным компьютерам Б1, …, Бk, программа, которая использует для временного хранения информации оперативную память компьютеров.

В служебный сервер 3 установлено и выполняется программное обеспечение системы управления заданиями, включающее программу «контроль и формирование файлов стандартной выдачи и диагностики». Данная программа контролирует зависание/сбой программы пользователя и формирует временные файлы стандартной выдачи и диагностики. Также в служебном сервере 3 размещена база данных (на фигуре не показана) системы управления заданиями. Система управления заданиями, функционирующая на служебном сервере 3, формирует и посылает на ВУ1 (ВУ2, …, ВУm) команды запуска на них исполняемого файла программы пользователя (название файла предварительно указывается пользователем в задании), а также считывает из распределенного программного буфера 2 и записывает во временные файлы, размещаемые в дополнительном устройстве 4 хранения информации, информацию о ходе выполнения программы пользователя (информацию стандартной выдачи и диагностики программ).

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

Устройство 5 хранения файловой системы общего назначения вычислительной системы предназначено для хранения исполняемых файлов пользовательских программ, файлов с их входными данными, файлов с исходными текстами программ и т.д., в общем случае оно представляет собой несколько дисковых массивов. Запуск исполняемого файла на ВУ1 (ВУ2, …, ВУm) пользовательской программы осуществляется путем его считывания из устройства 5 и передачи по коммуникационной сети на ВУ1 (ВУ2, …, ВУm).

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

Для запуска программы на ВУ1, …, ВУm вычислительной системы пользователь предварительно формирует файл задания, в котором указывает время, которое должна потратить на расчет программа, название исполняемого файла программы, который система управления заданиями должна запустить на вычислительных узлах ВУ1, …, ВУm, а также названия файлов стандартной выдачи и диагностики. Далее пользователь с помощью соответствующей утилиты передает файл задания управляющей программе системы управления заданиями, которая функционирует на служебном сервере 3.

Управляющая программа системы управления заданиями на служебном сервере 3 обрабатывает указанные в задании атрибуты, присваивает заданию идентификатор и по коммуникационной сети посылает программным компонентам системы управления заданиями на вычислительных узлах, например, ВУn, …, BУm, где n<m, служебные сообщения «запустить исполняемый файл программы пользователя». Одновременно с этим для данного задания на служебном сервере 3 запускается экземпляр программы «контроль и формирование файлов стандартной выдачи и диагностики».

На дополнительном устройстве 4 хранения информации посредством данной программы создают временные файлы выдачи и диагностики с соответствующими названиями, а на устройстве 5 хранения файловой системы общего назначения вычислительной системы на созданные временные файлы формируют ссылки с названиями, которые указал пользователь в задании. Используя данные ссылки, пользователь может контролировать ход (этапы) выполнения своей программы, как если бы файлы реально размещались бы в устройстве 5 хранения файловой системы общего назначения вычислительной системы. Выполнив перечисленные действия, программа «контроль и формирование файлов стандартного вывода и диагностики» начинает циклически обращаться к распределенному программному буферу 2, осуществляя поиск информации по идентификатору задания.

После запуска и в процессе выполнения на ВУ1 (ВУ2, …, ВУm) программа пользователя записывает информацию в стандартную выдачу или стандартную диагностику, которую программная компонента системы управления заданиями на ВУ1 (ВУ2, …, ВУm) считывает и записывает в распределенный программный буфер 2. Чтобы облегчить поиск/считывание информации программе «контроль и формирование файлов стандартного вывода и диагностики», информация сопровождается идентификатором задания и отдельными метками (флажками), которыми помечается информация, относящаяся к стандартному выводу или диагностике.

Найдя информацию с требуемым идентификатором задания, программа «контроль и формирование файлов стандартной выдачи и диагностики» считывает ее из распределенного программного буфера 2 и обрабатывает: стандартная выдача и диагностика записываются в отдельные временные файлы в дополнительном устройстве 4 хранения информации. Если пользователь не уверен в том, что программа может успешно завершиться, то он посредством директивы в файле задания дает указание системе управления заданиями контролировать зависание программы.

Способ контроля зависания программы состоит в том, что если в течение некоторого указанного пользователем периода времени нет новой информации из стандартного вывода программы, то она считается зависшей. В этом случае система управления заданиями завершает выполнение программы на вычислительных узлах. После завершения программы система управления заданиями записывает определенную последнюю часть информации о ходе выполнения программы пользователя из временных файлов стандартной выдачи и диагностики в собственную базу данных, которая также находится на служебном сервере 3. Затем ссылки на временные файлы стандартной выдачи и диагностики задания на устройстве 5 хранения файловой системы общего назначения вычислительной системы удаляются. На их место записываются временные файлы из дополнительного устройства 4 хранения информации. Даже если в процессе выполнения программы пользователь намеренно стер ссылки на временные файлы стандартной выдачи и диагностики задания, то система управления заданиями продолжает записывать информацию во временные файлы на дополнительном устройстве 4 хранения информации. После завершения каждого задания определенная последняя часть информации из временных файлов стандартной выдачи и диагностики сохраняется в базу данных, размещенной на служебном сервере 3. Если пользователь удалит перенесенные на устройство 5 файлы, то записанная в базу данных информация даст возможность разобраться в причине, например, нештатного завершения программы.

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



 

Похожие патенты:

Изобретение относится к средствам управления доступом к множеству вычислительных ресурсов. Технический результат заключается в ускорении обработки отдельных иерархий объектов при управлении вычислительными ресурсами.
Изобретение относится к способу обнаружения и устранения повисших блокировок с использованием блокировочных файлов. Технический результат заключается в повышении надежности обнаружения и устранения повисших блокировок.

Изобретение относится к вычислительной технике. Технический результат заключается в получении однопроцессорной архитектуры с обособленностью, эквивалентной мультипроцессорной системе.

Группа изобретений относится к устройству управления двигателем, которое вычисляет целевое значение управления актуатора с помощью многоядерного процессора, имеющего множество ядер.

Изобретение относится к области многоядерных систем. Техническим результатом является надежная доставка информации внутри многоядерной системы или между многоядерными системами.

Изобретение относится к вычислительной технике. Технический результат заключается в переводе памяти, блокируемой пользовательским процессом, в автономный режим.

Изобретение относится к области вычислительной техники. Технический результат заключается в обеспечении автономного произвольного доступа к памяти без использования дополнительных ресурсов.

Изобретение относится к компьютерной технике, а именно к системам электронных записных книжек. Техническим результатом является автоматизация планирования для синхронизации новой работы посредством экземпляра клиента в зависимости от информации совместно используемой записной книжки, основанной на информации отслеживания.

Изобретение относится к способу и устройству для передачи данных в компьютерной сети. Техническим результатом является обеспечение возможности удовлетворения запросов на данные в различных форматах данных.

Изобретение относится к области распределения задач сервером вычислительной системы. Техническим результатом является повышение эффективности динамического распределения заданий сервером по обработчикам вычислительной системы.

Изобретение относится к синхронизации приложений для одновременного обновления множественных приложений. Для этого способ синхронизации приложений включает в себя этапы, на которых получают тайминг синхронизации ранее зарегистрированного целевого приложения синхронизации или общий тайминг синхронизации ранее зарегистрированных целевых приложений синхронизации, при добавлении приложения, подлежащего синхронизации; и регулируют тайминг синхронизации добавленного приложения с учетом предыдущего тайминга синхронизации или общего тайминга синхронизации.

Изобретение относится к антивирусным технологиям, а более конкретно к способу создания обработчика системных вызовов. Технический результат заключается в обеспечении вызова системных функций в условиях использования средств защиты ядра операционной системы.

Изобретение относится к области регулирования процессов для режима ожидания в компьютерной среде. Предлагается, по меньшей мере, один метод и/или одна система для присваивания классификаций управления питанием процессу, перехода компьютерной среды в режим ожидания с подключением на основании классификаций управления питанием, присвоенных процессам, и перехода компьютерной среды из режима ожидания с подключением в режим выполнения.

Изобретение относится к способу, системе и компьютерному носителю данных для сортировки данных в электронной таблице. Технический результат заключается в ускорении сортировки данных в электронной таблице.

Изобретение относится к области устройств дистанционного управления, а именно к устройству дистанционного управления с сенсорным устройством ввода данных. Техническим результатом является обеспечение возможности непрерывного управления, что уменьшает вероятность неправильного ввода команд.

Изобретение относится к компьютерной технике, а именно к системам электронных записных книжек. Техническим результатом является автоматизация планирования для синхронизации новой работы посредством экземпляра клиента в зависимости от информации совместно используемой записной книжки, основанной на информации отслеживания.

Группа изобретений относится к расширяемой архитектуре и потоку данных, которые позволяют машине обновления диаграмм запускать модули пользовательского кода. Техническим результатом является снижение объема данных, хранимых на клиентском устройстве.

Группа изобретений относится к средствам увеличения функциональности измерительного устройства. Технический результат заключается в обеспечении конфигурирования измерительного устройства для конкретных измерительных операций.

Группа изобретений относится к области микроэлектроники и вычислительной технике и может быть использована для построения высокопроизводительных вычислительных систем для обработки потоков данных в режиме реального времени.

Изобретение относится к стыковочным станциям портативных вычислительных устройств. Техническим результатом является обеспечение доступа к мощности и сохранение функциональных возможностей при уменьшении размеров PCD.

Изобретение относится к виртуализации. Технический результат заключается в обеспечении постоянного выполнения одного из гипервизоров в компьютерной системе.
Наверх