SSCCIP - технология высокопроизводительной обработки данных ДЗЗ на многопроцессорных ЭВМ

Русин Е.В.

Содержание:

1. Введение

Привлечение высокопроизводительных ЭВМ к решению трудоемких задач обработки данных ДЗЗ неизбежно влечет проблему "враждебности" супер-ЭВМ к пользователю: как правило, многопроцессорная ЭВМ управляется операционной системой семейства Unix и функционирует как вычислительный сервер, взаимодействуя с внешними клиентами через защищенное SSH-соединение; распространенные же программы удаленного SSH-доступа (типа PuTTy или SSH Secure Shell) предоставляют пользователю лишь сервис командной строки. Это приводит к тому, что использование многопроцессорных ЭВМ оказывается доступным только для пользователей с опытом работы в Unix и недоступным рядовому пользователю ОС семейства Windows, которыми оснащено подавляющее большинство ПК в нашей стране. И даже с учетом этого обработка данных на многопроцессорной ЭВМ выполняется в несколько приемов: загрузка данных с помощью SFTP-клиента (SFTP – Secure FTP – защищенный протокол передачи файлов на основе SSH), запуск команды обработки на удаленной машине (с помощью SSH-терминала), закачка на локальную машину результатов (с помощью того же SFTP-клиента).

Таким образом, для массового привлечения супер-ЭВМ к решению трудоемких задач обработки изображений необходимо создавать не только программные средства, реализующие широкий круг методов и алгоритмов обработки изображений на многопроцессорной технике, но также технологии, упрощающие трудоемкий для рядового пользователя процесс использования удаленной многопроцессорной Unix-машины. Попыткой решения этой задачи стал рассматриваемый в настоящей работе экспериментальный программный комплекс SSCCIP.

2. Требования

Нами были сформулированы следующие требования к разрабатываемой программной системе SSCCIP:

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

3. Композиция

Вычислительная система SSCCIP состоит из трех основных компонент:

3.1. Клиент-серверное взаимодействие

Для подавляющего большинства многопроцессорных вычислительных серверов единственным разрешенным способом клиентского сетевого подключения является защищенный SSH-канал. Такой канал в системе SSCCIP обеспечивается:

Со стороны сервера: системным SSH-демоном, поддерживающим прикладные SSH-протоколы SFTP приема-передачи файлов и rexec удаленного выполнения программ/команд на сервере.

Со стороны клиента: библиотекой CryptLib, созданной Питером Гутманном в университете Окленда (Новая Зеландия). На базе данной библиотеки авторами реализованы прикладные SSH-протоколы SFTP и rexec.

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

3.2. Клиентская компанента

Клиентская компонента представляет собой Windows-приложение SSCCIP_Client, реализованное на языке C++ . Ее код организован в виде технологического каркаса (framework), обеспечивающего легкость введения новых операций обработки: код, выполняющий общие для всех операций обработки действия (загрузку файлов данных и задания на сервер, запуск и отслеживание задания, загрузка результатов с сервера), вынесен в обобщенную подпрограмму обработки executeParallelTask(); для кодирования конкретной операции обработки необходимо реализовать только действия, специфичные для данной операции: интерактивное конфигурирование операции (выбор обрабатываемых файлов и файлов для сохранения результата, параметризация алгоритма обработки) и визуализацию результата обработки. Для этого в каркасе объявлен интерфейс IParallelTask с двумя методами: Configure() и Visialize(), которые должен определить реализующий данный интерфейс конкретный класс обработки. Метод Configure(), возвращает содержание файла-задания, список файлов для загрузки на сервер перед вычислениями и список файлов для загрузки с сервера после вычислений. С помощью метода Visialize(), вызываемого каркасом после загрузки с сервера результатов вычислений, конкретная операция обработки выполняет визуализацию результатов. Для выполнения конкретной операции обработки необходимо параметризовать обобщенную операцию executeParallelTask() классом конкретной операции.

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

3.3. Серверная компонента

Серверная компонента представляет собой Unix-приложение SSCCIP_Server, разработанное на языке C++ с использованием созданной авторами библиотеки высокопроизводительной обработки изображений на многопроцессорной ЭВМ SSCC_PIPL (ссылка на библиотеку!!!). SSCCIP_Server – это MPI-приложение, запускаемое на каждом вычислительном узле многопроцессорной ЭВМ загрузчиком MPI mpirun. Код SSCCIP_Server также реализован с использованием идеологии технологического каркаса. В частности, для практически важных типов обрабатывающих процедур «пиксел-пиксел» и «окрестность-пиксел» созданы обобщенные подпрограммы, выполняющие общие для всех операций обработки действия (разбор файла-задания, загрузка исходного изображения с поддержкой множества графических форматов, определение параметров распараллеливания и собственно распараллеливание вычислений, сохранение результата обработки в графическом файле). Конкретная операция обработки реализуется классом алгоритма, интерфейс которого согласован с библиотекой SSCC_PIPL.

4. Пример погружения алгоритма обработки в систему

Апробация технологического каркаса SSCCIP была выполнена на примере погружения в систему алгоритма нахождения кольцевых структур на космоснимках.

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

5. Вывод

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