Научная статья на тему 'Расчет диагностической шкалы на графических процессорах'

Расчет диагностической шкалы на графических процессорах Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
169
49
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ДИАГНОСТИЧЕСКИЕ ШКАЛЫ / ПАРАЛЛЕЛЬНОЕ ПРОГРАММИРОВАНИЕ / CUDA / DIAGNOSTIC SCALE / PARALLEL PROGRAMMING

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Полуянов Андрей Николаевич

В работе рассматривается технология расчета медицинских диагностических шкал. Описана реализация параллельного алгоритма расчета шкалы с использованием графических процессоров (технология CUDA).

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Calculation of diagnostic scale on graphic processors

The article considers the technology of calculation of medical diagnostic scales. It describes the implementation of a parallel algorithm of the calculation of the scale with the use of the graphic processors (CUDA technology).

Текст научной работы на тему «Расчет диагностической шкалы на графических процессорах»

ЗАПОРОЖЕЦ Дмитрий Николаевич, аспирант кафедры прикладной математики и фундаментальной информатики.

ЗЫКИНА Анна Владимировна, доктор физико-математических наук, профессор (Россия), заведующая

кафедрой прикладной математики и фундаментальной информатики.

Адрес для переписки: avzykina@mail.ru

Статья поступила в редакцию 28.08.2012 г.

© Д. Н. Запорожец, А. В. Зыкина

УДК 519.72 А. Н. ПОЛУЯНОВ

Омский государственный технический университет

Омский филиал Института математики им. С. Л. Соболева Сибирского отделения РАН

РАСЧЕТ ДИАГНОСТИЧЕСКОЙ ШКАЛЫ НА ГРАФИЧЕСКИХ ПРОЦЕССОРАХ

В работе рассматривается технология расчета медицинских диагностических шкал. Описана реализация параллельного алгоритма расчета шкалы с использованием графических процессоров (технология СиОД).

Ключевые слова: диагностические шкалы, параллельное программирование, СиОД. Работа выполнена по проектам РФФИ № 12-07-00066-а, 11-08-01349-а.

Введение. Анализ накопленной информации является актуальной проблемой для многих исследовательских и прикладных задач. Традиционным способом ее решения в настоящее время является технология оперативной аналитической обработки данных OLAP (online analytical processing). Основой OLAP-технологии является построение многомерных представления данных.

Можно выделить следующие шаги при работе с данными:

— исходные данные представлены в реляционном нормализованном виде, и к ним обеспечивается доступ по технологии OLTP (online transaction processing);

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

— пользовательское представление далее используется для анализа данных.

Реализация данной технологии с использованием последовательных алгоритмов подробно представлена в работах [1, 2].

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

Графический процессор представляет собой вычислительное устройство, которое:

— является сопроцессором к центральному процессору (CPU);

— имеет собственную память;

— выполняет одновременно большое количество нитей (аналог потоков CPU).

Код приложения, разработанного по технологии CUDA, состоит как из последовательных, так и из

параллельных частей. Последовательная часть выполняется на CPU, а параллельная часть оформляется в виде функции ядра (kernel function) и выполняется на графическом процессоре.

В данной работе рассмотрен этап анализа данных, а именно реализация параллельного алгоритма расчета диагностической шкалы с использованием технологии CUDA.

Описание задачи. Традиционно для расчета диагностической шкалы [5] используется линейная комбинация N значимых параметров, называемая в литературе решающей функцией [6, 7]:

F(x)=alxl+a2x2+,+ aNxN,

где x=(xir x2, ,, xN) — вектор значений выделенных параметров (координат в пространстве параметров), a=(al, a2, ,, aN) — веса выделенных параметров (коэффициенты).

Для значений функции F(x) определяются границы (оценочная шкала):

ffo' ffi.9к,

где K — количество групп объектов Ol, O2, ..., OK. При условии, что д0<д1<,<дк определение принадлежности произвольного объекта о с вектором значений параметров x' к группе O. сводится к проверке выполнения неравенства:

g]_l<F(x’)<g] .

При выполнении равенства значения функции F какой-либо границе F(x’) = g. возникает ситуация неопределенности.

Для определения значений коэффициентов (air a2, ,, aN) и значений границ g0, gv ,, gK в распознавании образов традиционно используются

ОМСКИЙ НАУЧНЫЙ ВЕСТНИК № 3 (113) 2012 ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ

ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ ОМСКИЙ НАУЧНЫЙ ВЕСТНИК № 3 (113) 2012

обучающие выборки, заданные множеством групп объектов Oj, O2, ..., OK Пусть объект oiJeOi характеризуется вектором значений параметров: xl]=(xl]i, xij2, ,, XjN). Функционалом риска выберем суммарное количество ошибок E при отнесении объекта к группе. Для текущих значений вектора (a, a2, ,, aN) и границ g0, g1, ,, gK значение функционала риска вычисляется в следующем алгоритме:

E=0;

for i=l to K;

for each o.. in O.;

if F(xij)<g-1 or F(xij)>gi then E=E+1;

endfor;

endfor.

В данном алгоритме ситуация неопределенности не считается ошибкой.

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

E®min, g0<g1<,<gK, -1<a<1, i=l, 2, N.

Ограничения на коэффициенты ai реализуются за счет масштабирования. Общая схема решения задачи следующая:

1) выбирается начальное приближение для вектора весов a°=(a°jr a02, ,, a°N);

2) циклически для i=1, 2, ,, N фиксируются все веса, кроме ai, осуществляется спуск по координате ai с определенным шагом, на каждом шаге выполняются пункты 3 — 6;

3) для текущего набора весов a=(ajr a2, ,, aN) вычисляются значения Fij=F(xij) для всех групп и всех объектов в группах с запоминанием номера группы для каждого значения;

4) значения Fj сортируются по возрастанию;

5) g0=min(Fij)—e, gK=max(F.j)+e, где e — малая величина;

6) остальные значения границ g1, ,, gK_1 определяются перебором возможных вариантов при условии минимизации функционала риска и выполнения неравенств: g0<g1<,<gK причем значения выбираются посредине между соседними Fij, чтобы не было ситуации неопределенности на обучающей выборке.

Последний шаг является наиболее трудоемким с вычислительной точки зрения.

Последовательная реализация представленных алгоритмов описана в работах [8, 9].

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

При анализе последовательного алгоритма построения диагностической шкалы выявлено, что наибольшее время затрачивается на выполнение шага 6 — 96 % от общего времени работы программы, таким образом, по закону Амдаля теоретически можно получить 25-кратный прирост производительности параллельной программы.

В рассматриваемом алгоритме на GPU параллельно выполняются наиболее трудоемкий шаг 6. Функция ядра (выполняемая на графическом процессоре) на входе получает массив с рассчитанными значениями решающей функции Fij для каждого

объекта выборки при текущем наборе весов. Каждая нить, в зависимости от своего номера, рассчитывает значение функционала риска E для определенного набора границ g0, ,, gK. Полученные результаты записываются в массив, в котором в качестве индекса выступает номер нити, а в качестве элемента — значения функционала риска, рассчитанного нитью для своего обрабатываемого набора границ. После завершения вычислений на GPU, CPU определяется минимальное значение функционала риска для текущего набора весов и выполняется следующий шаг алгоритма.

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

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

Отдельно хотелось бы остановиться на моменте оптимизации программного кода. Конечное время выполнения программы сильно зависит от архитектуры используемого графического процессора. Так, например, использование константной памяти на графических процессорах с архитектурой Tesla для хранения массива значений решающей функции (версия вычислителя до 1.3) позволило получить двукратное ускорение работы алгоритма. Анализ алгоритма в NVIDIA Visual Profiler показал, что при использовании константной памяти основное время работы графического процессора использовалось для выполнения инструкций функции ядра, в то время как без использования константной памяти основное время работы графического процессора уходило на запросы к глобальной памяти вычислителя. При запуске алгоритма на графических процессорах с архитектурой Fermi (версия вычислителя 2.0 и выше) значительных ускорений работы алгоритма при использовании константной памяти не наблюдалось, т.к. в архитектуре Fermi улучшена работа глобальной памяти GPU, добавлены дополнительные кэши.

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

Также возможны некоторые сложности при распараллеливании алгоритма на несколько графических процессоров. Разработанный алгоритм использовался для вычислений на суперкомпьютере Tesla ОФ ИМ СО РАН, представляющим из себя гибридный кластер из трех узлов (два узла из трех графических процессоров с архитектурой Tesla, один узел из двух графических процессоров с архитектурой Fermi). Для распараллеливания алгоритма на несколько графических процессоров с архитектурой Tesla необходимо для каждого графического процессора создавать отдельный поток на CPU. На графических процессорах с архитектурой Fermi один поток CPU может использовать сразу несколько графических процессоров (функции ядра могут вызываться в цикле по доступным GPU, смена текущего GPU осуществляется путем вызова функции CudaSetDevice). Также на вычислителях с архитектурой Fermi все

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

Представленные особенности технологии СиЭЛ необходимо учитывать при разработке, отладке и оптимизации программного кода.

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

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

Библиографический список

1. Зыкин. С. В. Формирование гиперкубического представления реляционной базы данных / С. В. Зыкин // Программирование. — 2006. — № 6. — С. 71—80.

2. Полуянов, А. Н. Автоматизация формирования гиперкубического представления данных / А. Н. Полуянов // Системы управления и информационные технологии. — 2008. — № 2 (32). - С. 289-293.

3. Боресков, А. В. Основы работы с технологией СиЭЛ / А. В. Боресков, А. А. Харламов. — М. : ДМК Пресс, 2010. — 232 с.

4. Сандерс, Дж. Технология СИБА в примерах: введение в программирование графических процессоров / Дж. Сандерс,

Э. Кэндрот. — М. : ДМК Пресс, 2011. — 232 с.

5. Александрович, Ю. С. Оценочные и прогностические шкалы в медицине критических состояний : сп. / Ю. С. Александрович, В. И. Гордеев. — Санкт-Петербург : Сотис, 2007. — 137 с.

6. Журавлёв, Ю. И. Об алгебраическом подходе к решению задач распознавания или классификации / Ю. И. Журавлёв // Проблемы кибернетики. — 1978. — Т. 33. — С. 5 — 68.

7. Лобов, Г. С. Метод адаптивного поиска логической решающей функции / Г. С. Лобов, В. М. Неделько, С. В. Неделько // Сибирский журнал индустриальной математики. — 2009. — Том XII, № 3(39). - С. 66-74.

8. Технология подготовки и анализа данных для построения медицинских оценочных шкал / С. В. Зыкин [и др.] // Информационные технологии. — 2010. — № 12. — С. 57-62.

9. Зыкин, С. В. Формирование представлений данных для построения медицинских диагностических шкал / С. В. Зыкин, П. Г. Редреев, А. К. Чернышев // Омский научный вестник. Сер. Приборы, машины и технологии. — 2011. — № 2(100). — С. 190—193.

ПОЛУЯНОВ Андрей Николаевич, кандидат технических наук, старший преподаватель кафедры «Прикладная математика и фундаментальная информатика» Омского государственного технического университета, научный сотрудник лаборатории «Методы представления и преобразования информации» Омского филиала Института математики им. С. Л. Соболева Сибирского отделения РАН.

Адрес для переписки: Лп^еу. Poluyanov@qmail.com

Статья поступила в редакцию 28.08.2012 г.

© А. Н. Полуянов

Книжная полка

Информационные системы и технологии в экономике и управлении : учеб. для вузов по специальности 080507 (061100) «Менеджмент организации»/ В. В. Трофимов [ и др.] ; под ред. В. В. Трофимова ; С.-Петерб. гос. ун-т экономики и финансов. - 3-е изд., перераб. и доп. - М. : Юрайт, 2011. - 1 [521 ] о=эл. опт. диск (DVD-ROM). - ISBN 978-5-9916-0919-7.

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

Артемова, А. В. Решение оптимизационных задач при разработке средств вычислительной техники : учеб. пособие / А. В. Артемова, А. А. Колоколов, В. И. Потапов ; ОмГТУ. - Омск : Изд-во ОмГТУ, 2012. - 86 c. - ISBN 978-5-8149-1223-7.

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

ОМСКИЙ НАУЧНЫЙ ВЕСТНИК № 3 (113) 2012 ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ

i Надоели баннеры? Вы всегда можете отключить рекламу.