Сибирский государственный медицинский университет, г. Томск
Кафедра медицинской и биологической кибернетики
Эта работа опубликована в сборнике статей по материалам 70-й Юбилейной итоговой научной студенческой конференции им. Н.И. Пирогова (г. Томск, 16-18 мая 2011 г.), под ред. В. В. Новицкого, Л. М. Огородовой. − Томск: Сибирский государственный медицинский университет, 2011. − 430 с.
Современные методы медицинской визуализации предполагают очень большой объем вычислительной работы. При классическом, «последовательном» способе реализации алгоритмов требования к параметрам аппаратуры вычислителя возрастают очень серьезно и на сегодняшний день практически не могут быть реализованы. Это связано как с ограничениями, которые обусловлены архитектурой наиболее распространенных процессоров для ЭВМ, так и с технологией их производства.
Несколько лет назад наметилась тенденция перехода к многоядерным процессорам и в настоящее время они стали практически стандартом для персональных компьютеров, однако создание программ для многоядерной архитектуры является сложной задачей. Проведенные нами исследования показали, что в настоящее время большинство программ для работы с медицинскими изображениями (как коммерческих, так и доступных по бесплатной лицензии) не поддерживают многоядерную архитектуру. Запуск таких программ на новом поколении процессоров не приводит к увеличению производительности.
Второй важный аспект связан с эффективным использованием вычислительных ресурсов научной организации или лечебного учреждения. Многочисленные измерения показывают, что среднее время загрузки процессора среднестатистического компьютера в лечебном учреждении составляет 5-7%, остальные 93-95% просто расходуют электроэнергию. При включении компьютера в вычислительный кластер можно эффективно перераспределять нагрузку без ущерба для основного пользователя компьютера и получать дополнительно вычислительные ресурсы нескольких десятков компьютеров. На данный момент программные средства для работы с медицинскими изображениями с использованием кластеров находятся в стадии разработки, поэтому создание программной среды для обработки медицинских изображений на кластере из персональных компьютеров является весьма актуальной задачей [1]. Распараллеливание алгоритмов обработки медицинских изображений является нетривиальной задачей, решение которой требует междисциплинарных знаний и глубокого понимания основных медицинских задач. До настоящего времени не существует сколько-нибудь внятного способа решения подобных задач. Необходимо выработать определенный подход к созданию кластерных решений для медицинской визуализации. В ходе выполнения дипломной работы предполагается создать формальные процедуры распараллеливания алгоритмов обработки медицинских изображений.
Для достижения заданной цели, необходимо решить следующие задачи:
-
Выделить наиболее затратные по времени вычисления этапы получения, обработки и визуализации медицинских изображений;
-
Определить оптимальный способ распараллеливания этих этапов;
-
Разработать программную среду для параллельной реализации;
-
Провести тестирование и определить качество параллельной реализации;
-
Определить критерии возможности и необходимости перехода к параллельным вычислениям при решении задач медицинской визуализации.
Реализацию было решено проводить с использованием среды разработки Delphi 7. Тому есть несколько причин: скорость реализации графического интерфейса программы; использование ЯВУ Object Pascal с возможностью применения встроенного ассемблера; скорость работы грамотно разработанных откомпилированных программ фактически не уступает аналогам на С++, а иногда и выше.
Использование сред параллельной работы процессов типа PVM, MPI позволяет объединить узлы с различными платформами в одну вычислительную систему, но при этом они могут использовать многопроцессорность некоторых узлов (аппаратная мультипоточность), а также непосредственные возможности ОС и, в частности, ядра ОС. Такие среды обычно являются кроссплатформенными, с развитыми примитивами обмена информацией, управления, планирования, что позволяет программисту(ам) больше времени уделять собственно параллельным вычислениям [2]. Программа организована следующим образом:
Рис. 1. Схема программы. Примечание: → - поток данных от одного модуля другому.
В задачу интерфейсного модуля входит ввод параметров, передача этих параметров ''модулю разделения пространства и инициализации потоков-обработчиков''. Модуль разделения пространства и инициализации потоков-обработчиков занимается разбивкой области определения на равные участки по количеству потоков-обработчиков, а также инициализацией потоков-обработчиков и запуск потоков на выполнение [3].
Для применения в области обработки и визуализации медицинских изображений необходимо максимально изолировать конечного пользователя (врача) от деталей реализации и настройки параллельной среды для выполнения вычислений. Этого можно достичь, создав специализированный пользовательский интерфейс, автоматически распределяющий типовые задачи обработки изображений на кластер. Создание такого интерфейса потребует разработки формализованного подхода и определение перечня типовых задач обработки и визуализации медицинских изображений.
Также необходимо выбрать алгоритмы обработки, обладающие высокой степенью параллелизма. Это потребует переосмысления критериев качества алгоритмов: кроме вычислительной сложности (количество математических операций на один пиксел изображения) и требуемого объема памяти, необходимо принимать во внимание и потенциал распараллеливания.
Список литературы:
-
Параллельные вычисления / В.В. Воеводин, Вл.В. Воеводин. – СПб. : БХВ-Петербург, 2002. – 608 с.
-
Руководство по работе на вычислительном кластере / Г.И. Шпаковский, А.Е. Верхотуров, Н.В. Серикова. – Минск, 2004. – 172 с.
|