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

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

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

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

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

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

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Р. К. Кудерметов, Н. Д. Маслова

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

В статті подана бібліотека функцій для моделювання складних динамічних об’єктів на паралельних обчислювальних системах. Як базові алгоритми бібліотека використовує паралельні блочні методи. Для організації обміну даними між паралельними процесорами використовується стандарт MPI.

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

ПЕРЕЧЕНЬ ССЫЛОК

1. W. Niblack et al. The QBIC project: querying images by content using colour, texture and shape // SPIE Proc. Storage and Retrieval for Image and Video Databases. -1993. - Pp. 173-187.

2. A. Pentland, R. Picard, and S. Sclaroff. Photobook: Content-based manipulation of image databases. // Int. J. Comp. Vis. - 1996. - No. 18(3). - Pp. 233-254.

3. A. Gupta and R. Jain. Visual information retrieval // Comm. Assoc. Comp. Mach. - No. 40(5). - 1997. -Pp. 70-79.

4. P. Kelly, M. Cannon, and D. Hush. Query by image example: the CANDID approach // SPIE Proc. Storage and Retrieval for Image and Video Databases. - 1995. - Pp. 238248.

5. V. Ogle and M. Stonebraker. Chabot. Retrieval from a relational database of images // IEEE Computer. - No. 28(9). -1995. - Pp. 40-48.

6. Вельтмандер П. В. Машинная графика: Учебное пособие. В 3-х книгах. Книга 2. Основные алгоритмы компьютерной графики. - Новосибирск: Новосибирский государственный университет, 1997.

7. Большая советская энциклопедия / Под. ред. А. М. Прохорова. Т. 14. - 3-е изд. - М.: «Советская энциклопедия», 1973. - 624 с.

8. Image Databases: Search and Retrieval of Digital Imagery / Edited by Vittorio Castelli, Lawrence D. Bergman. -John Wiley & Sons, Inc, 2002. - P. 166.

Надшшла 10.02.05 Шсля доробки 2.04.06

У cmammi розглядаються принципы фтсацп, po3Mi-щення i збepiгaння вiзyaльнo'i iнфopмaцi'i. При ix роз-глядi вводиться основна одиниця вiзyaльнoi iнфopмaцii — «пoдiя» i пропонуеться cnoci6 його пpедcmaвлення як гру-пи 3o6paMem. Для зanponoнoвaнoгo npедcmaвлення поди визнaчaemьcя i фopмaлiзyemьcя noняmmя «розмщення» ma Kpiimepii його onmимaльнocmi.

In the article are considered principles of fixation, placing and storage of visual information. At their consideration is entered basic visual information unit -"event" and offered the form of its representation as group of images. For the offered representation of event there are determined and formalized notion "placing" and criteria of its optimum.

YAK 681.3.06

P. К. Кудерметов, H. Д. Маслова

МЕТОДИКА И ПРОГРАММНАЯ БИБЛИОТЕКА ФУНКЦИЙ ДЛЯ РЕШЕНИЯ СИСТЕМ ОБЫКНОВЕННЫХ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ БЛОЧНЫМИ МЕТОДАМИ ДЛЯ ПАРАЛЛЕЛЬНЫХ

ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ

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

ВВЕДЕНИЕ

Необходимость решения сложных задач с большим объемом вычислений и принципиальная ограниченность быстродействия классических однопроцессорных компьютеров обусловили появление параллельных вычислительных систем. Использование многопроцессорных систем позволяет существенно увеличивать производительность компьютерных систем при любом существующем уровне развития аппаратного обеспечения. В ближайшие годы прогнозируется бурный рост и широкое распространение параллельных компьютерных технологий. При этом необходимы «параллельные» технологии решения задач. Так, численные

© Кудерметов Р. К., Маслова Н. Д., 2006

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

Достаточно большой класс прикладных задач моделирования сложных динамических систем и объектов сводится к интегрированию обыкновенных дифференциальных уравнений. Для параллельных процессоров разработаны параллельные блочные методы интегрирования. В работах Л. П. Фельдмана и О. А. Дмитриевой [ 1 ] исследована сходимость и получены оценки погрешностей данных методов решения задачи Коши для обыкновенных дифференциальных уравнений. Авторами данной статьи экспериментально оценены характеристики точности и быстродействия данных

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

ПОСТАНОВКА ЗАДАЧИ

Основными требованиями, предъявляемыми к библиотеке, являются:

- обеспечение возможности решения задач в реальном и ускоренном времени;

- совместимость со стандартом MPI-1 (Message Passing Interface);

- поддержка работы на параллельных и распределенных компьютерных системах на базе операционных платформ Windows, Linux, Unix.

Целевыми областями использования библиотеки предполагаются:

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

- сверхоперативные системы поддержки принятия решений для управления динамическими объектами.

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

Если уравнения динамического объекта рассматривать как систему дифференциальных уравнений в общей постановке задачи Коши (1):

d- = f(t, y), t > 0, y(0)

Уo,

(1)

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

4.2 Ч.П

Блок I

'j : Ц.О

Блок 2

Рисунок 1 — Разбиение интервала интегрирования на блоки из двух точек

введем равномерную сетку ю^ = [1т = тН,т = 1, 2,...}, которую разобьем на блоки, состоящие из к точек (рис. 1). Точки внутри блоков перенумеруем так, что

г = 0, 1,___, к. Тогда каждую точку сетки юн можно

обозначить с помощью номера блока п и номера точки г внутри блока как Ьп ^.

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

Итерационные формулы для одношаговых методов для блока из к точек имеют вид

Уп, L 0 = Уп, 0 + ihfn, 0, i = 1 k,

(2)

yn, i, s + 1 yn, 0 + ih

bifn, 0 + X ai, jfn, j,-j = 1

i = 1, k, s = 0, k - 1.

(3)

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

Уп, i, 0 = Уп, 0 + ih X ci, jfn - 1,г i = 1> k, (4)

j = 1

(

yn, i, s + 1 yn, 0 + ih

k k

X bi, jfn - 1, j + X ai, jfn, j, \j = 1 j = 1

A

i = 1, k, s = 0, 2k - 1.

(5)

Здесь /^у = /(Ьп + ]Н, у( Ьп + ]Н)); 5 - номер итерации; аг у, Ь■ у, сг у - элементы матриц А, В и С, зависящих от выбранного метода, г, ] = 1, к.

РЕАЛИЗАЦИЯ БИБЛИОТЕКИ ФУНКЦИЙ ДЛЯ МОДЕЛИРОВАНИЯ ДИНАМИЧЕСКИХ ОБЪЕКТОВ НА ПАРАЛЛЕЛЬНЫХ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМАХ

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

Для обеспечения поддержки многоплатформенности разрабатываемой библиотеки в качестве программного

Двухточечный одношаговый метод

Библиотека функций

Р1 Рг

MPISendRecvl)

MF>l_Soiid()

MPI_Rocv()

Одношаговые методы

MPI^AIIgatherQ, MPt_Bcast{)

JÜI U D DIC

годы

Двухточечный многошаговый метод

Четырехточечный многошаговый метод

Многошаговые методы

Комбинированные методы

Рисунок 2 — Структура библиотеки функций

int Block2 (double h, int len, double *StateV, PF f, MPI_Conin E2_Contn) { double *y[2], *F[2], *F0; MPI_Status status; int size, rank, i, k; MPI_Comiri_size (B2_Conitt, £size); MPI Gamm rank(B2 Coimi, £rank) ; static const int ds=(rank+1)H2; if (size!=2) { if(rank==0)

printf("Tuo processes must toe in conitiunicator instead of %d\n", size) HPI_Barrier (B2_Camm) ; HPI_iLt.ort(B2_Caram, HPI_ERR_OTHER) ; return -1;

if ( ! [FO = [double*) malloc (len*sizeof [double) ))) teririinate_block (B2_Coniti); for(i=0; i<2; i++)

if [ (! (y[ i] = (double*) malloc (len*sizeof (double) )) ) ||

( ! (F [ i] = [double*) mal loc [ len*sizeof (double) )) ) ) terminate_block(B2_Camm)

(*f) (StateV,F0) ;

for (i=0; iclen; i++) y[ratik] [ i] =StateV[ i] +(rank+l) *h*FO [i] ; for(k=0;k<3;k++) { (*f) (y [rank] , F [rank] );

HPI_Sendrecv (F [rank] , len, MPI_DOUBLE, ds, tagf [rank] [k] , F[ds], len, MPI_DOUBLE, ds, tagf [ds] [k] , B2_Coniu, Sstatus) ; if(rank^=0) for ( i=0; iclen; i++)

y[0] [i] =StateV[i] + (h/12 . ) * (5.*F0[i]+B. *F[0] [i] -F[l] [i] ) ; else for(i=0;i<len;i++)

y[l] [i] =StateV[i] + (h/3 .) *(F0[i]+4. *F [□] [ i] +F [1] [ i] ) ;

}

for (1=0; iclen; i++) StateV[i] =y[rank] [ i] ;

if (rank==l) HPI_Send(StateV,len,MPI_DOUBLE, 0, tagp,B2_Contii);

else HPI_Recv(StateV, len,HPI_lJOUBLE, 1, tagp,B2_Cottm, sstatus) ;

free(FO); for(i=0;i<2;i++) { free(y[i]); free(F[i]) ;

}

return 0;

Рисунок 3 — Функция Block2( ) для двухточечного метода

инструментария применяется язык программирования С++ и библиотека параллельного программирования MPI реализации mpich 1.2.4 (MPI Chameleon) Аргон-ской национальной лаборатории США.

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

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

int Block (double h, int len,

double *StateV, PF f, MPI_Comm P_Comm),

где h - шаг моделирования; len - размер вектора состояния; *StateV - указатель на вектор состояния; f - указатель на функцию вычисления правых частей уравнений динамического объекта; P_Comm - коммуникатор, необходимый для указания области связи процессов, участвующих в вычислениях для данного метода интегрирования, используемый для обеспечения модульности.

Для представления параллельной программной модели система дифференциальных уравнений динамического объекта формируется в функции:

void Function (const double InVec [], double OutVec []),

где InVec - вектор состояния системы (глобальный параметр StateV); OutVec - производная вектора состояния, вычисляемая на текущем шаге моделирования.

Функция правых частей Function() программируется согласно задаче моделирования с учетом алгоритма итерационного процесса, описываемого формулами (2)-(3) или (4)-(5).

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

typedef void (*PF)(const double [], double []).

Для параллельного одношагового двухточечного блочного метода предложена реализация функции Block2 () , представленная на рис. 3.

В данной функции выделяется динамическая память для векторов решений y и их производных F, реализуются вычисления по формулам блочного одношагового двухточечного метода (2)-(3).

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

организована при помощи множества функций библиотеки MPI. На рис. 4 представлены результаты экспериментальных исследований затрат времени на передачу вектора состояния длиной от 0 до 256 байт для различных функций двунаправленного обмена MPI. Это реальный диапазон длины сообщений, передаваемых между процессорами, для моделирования движения космического аппарата. Для проводимых экспериментов длина вектора составляла 104 байта - передавался вектор из 13 элементов типа double (длина вектора определяется порядком системы дифференциальных уравнений).

Данные, представленные на рис. 4, получены на параллельной вычислительной системе, организованной на сети Fast Ethernet. Подобный характер зависимостей между затратами времени на выполнение перечисленных функций MPI имеет место и для других параллельных вычислительных систем (SCI-кластера, суперкомпьютера Cray T3E). Исходя из соотношений «затраты времени/надежность доставки сообщений», для обмена результатами вычисленных функций правых частей уравнений (первые два обмена) выбрана функция совмещенного приема/передачи сообщений -MPI_Sendrecv() , а для пересылки решения, полученного в процессе 1 (третий обмен), выбраны функции приема/передачи сообщений с блокировкой -MPI_Send() иMPI_Recv() .

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

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

160 140

g 120 S

i100

Si

В 80 60 40

0 50 100 150 200 250 длина вектора, сайты

Рисунок 4 — Затраты времени на двунаправленные обмены:

1 - прием/передача сообщений с блокировкой: MPI_Send( ),

MPI_Recv () ; 2 - совмещенный прием/передача сообщений: MPI_Sendrecv () ; 3 - прием/передача сообщений без блокировки: MPI_Isend(), MPI_Irecv(); 4 - передача сообщений по готовности: MPI_Irecv ( ), MPI_Irsend () ; 5 - отложенные обмены сообщений: MPI_Send_init(), MPI_Recv_init()

int Block4(double h, int len, double *StateY, PF f, MPI_Comm B4_Comm) { int. rank,size , i,k;

double *y[4] , *F, *F0 , *temp ; const, int index2=2*len, index3=3*len; HPI_Comm_size (E4_Coinm, i=sise) ; HPI_Comm_rank (E4_Coinm, &гапк) ; if (sise!=4)

{ if (rank==0) printf("Four processes must, be in communicator^") ; MPI_Barrier(B4_Comm); MPI_Abort(B4_Comm, MPI_ERR_OTHER) ;

}

if( ( ! (FO = (double * )malloc(len*sizeof(double)))) I I (!(temp = (double* Jmalloc (len*siseof (double) )) ) II (!(F=(double* )malloc(4*len*sizeof(double))))) terminate_block (B4_Comm); for(i=0;i<4;i++) if(! (y[i]=(double* )malloc(len*sizeof(double)))) terminate_block (B4_Comm);

if(rank == 3) (*f)(StateY,F0); HPI_Bcast(F0,len,MPI_D0UBLE,3,B4_Comm) ;

for (i=0;i<len;i++) Y[ranJc ][i] = StateV[i]+h*(rahk+1)*F0[i]; for (k=0;k<5;k++)

{ (*f) (y[rank], temp) ; MPI_Allgather (temp, len,HPI_D0UBLE,F,len,HPI_D0UBLE,B4_Comm) ; switch(rank)

{case 0: for(i = 0;i<len;i++)

Y[□][i]=StateV[i]+(h/720)*(251*F0[i]+646*(*(F+i))-264*(*(F+len+i))+106*(*(F+index2+i))-19*(*(F+index3+i))); bre ak;

case 1:for(i=0;i<len;i++)

Y[l][i]=StateV[i]+(h/90)*(29*F0[i]+124*(*(F+i)) + 24*(*(F+len+i))+4*(*(F+index2+i))-(*(F+index3+i))); break;

case 2:for(i=0;i<len;i++)

y[2][i]=StateV[i]+(3*h/80)*(9*F0[i]+34*(*(F+i))+ 24*(*(F+len+i))+14*(*(F+index 2+i))-(*(F+index3+i))); break;

case 3:for(i=0;i<len;i++)

Y[3][i]=StateV[i]+(2*h/45)*(7*F0[i]+32*(*(F+i))+

12* (* (F+len+i) )+32*(*(F+index2+i) )+7*(*(F+index3+i) ) ) ;

break;

}//switch(rank) }//for(k)

for (i=0;i<len;i++) StateY[i]=Y[i:ank] [i ]; HPI_Bcast(StateV,len,MPI_DOUBLE, 3,B4_Comm); free(FO); free(temp); free(F); for(i=0;i<4;i++) free(y[i]); return 0;

Рисунок 5 — Функция Block4() для четырехточечного метода

в каждой точке блока: Уп + 1, 5 + 1 Уп + 2, 5 + 1, Уп + 3, 5 + 1 Уп + 4 5 + 1 необходимо иметь значения функции во всех

точках блока: /п + 1, 5 , /п + 2, 5 , /п + 3, 5 , /п + 4, 5 . Для этого

каждый из процессов после вычисления функции в своей точке блока должен разослать полученный результат остальным трем процессам, и в то же время получить от этих трех процессов вычисленные значения функции. Для реализации данных операций выбрана функция МР1_А11да"ЬЬег () .

Для рассылки решения (последний обмен) выбрана функция МР1_ВсаБ-Ь() - рассылка сообщения от одного процесса всем процессам.

Такой выбор функций обосновывается следующим. Использование одной функции МР1_А11да"ЬЬег() заменяет 4 вызова функции МР1_ВсаБ-Ь() . При этом проведенные экспериментальные оценки на парал-

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

В табл. 1 представлены результаты экспериментов, проведенные на четырех процессорах различных параллельных вычислительных систем при пересылке данных типа double. Для SCI-кластера представлены две строки: первая строка отображает результаты при использовании одного процессора каждого из четырех двухпроцессорных узлов и трех связей SCI между ними, вторая строка - результаты при использовании обеих процессоров двух двухпроцессорных узлов и одной связи SCI.

Таблица 1 — Затраты времени на выполнение функций MPI_Allgather() и MPI_Bcast()

Время выполнения функции MPI, мкс

Соотношение затрат времени MPI Allgather()/ MPI Bcast()

Параллельная вычислительная система MPI Allgather() MPI Bcast()

Fast Ethernet 481,5 318,9 1,5

SCI-кластер 54,1 18,4 2,9

SCI-кластер (SMP) 32,4 15,6 2,1

CRAY 51,5 22,1 2,3

ТЕСТИРОВАНИЕ РАЗРАБОТАННОЙ

БИБЛИОТЕКИ ФУНКЦИЙ

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

1) компьютерная сеть Fast Ethernet (ОС Windows);

2) SCI-кластер (Петродворцовый телекоммуникационный центр Санкт-Петербургского государственного университета (СПбГУ)) (ОС Linux);

3) SMP-узлы (symmetric multiprocessors - симметричные мультипроцессоры, кластер Нижегородского государственного университета (ННГУ)) (ОС Windows);

4) суперкомпьютер CRAY T3E (Штутгартский вычислительный центр) (ОС UNIX).

Тестирование библиотеки проводилось на конфигурациях параллельных вычислительных систем, представленных на рис. 6-9 (серым цветом обозначены неиспользуемые процессоры). В составе кластера ННГУ (рис. 7) исследовалась реализация параллельной модели движения космического аппарата на процессорах в режиме SMP. NN-two и NN-four - обозначения вариантов конфигураций, в которых используются двухпроцессорные и четырехпроцессорные узлы кластера, соответственно.

Для исследования на SCI-кластере (Scalable Coherent Interface - масштабируемый когерентный интерфейс) были проведены два варианта экспериментов, условно названные single и double (рис. 8). В варианте single на каждом узле кластера использовался только один процессор, т. е. для двухточечного метода интегрирования был задействован один канал SCI, а для четырехточечного - три канала SCI. В варианте double использовались два процессора в узлах кластера, т. е.

двухточечный метод интегрирования выполнялся в режиме SMP на одном узле, а четырехточечный - с использованием двух узлов в режиме SMP и одного канала SCI между узлами.

Рисунок 6 - Сеть Fast Ethernet (Intel Pentium IV 1,76 ГГц): a - два процессора; б - четыре процессора

M

р, р,

M

Р| р: р:<

M

P| I5? Рз Р4

а)

б)

в)

Рисунок 7 — Конфигурации процессоров при экспериментах на кластере ННГУ (двухпроцессорный

узел: Intel Pentium III Xeon 1000 МГц, четырех-процессорный узел: Intel Pentium III Xeon 700 МГц):

а - два процессора, вариант NN-two; б - два процессора, вариант NN-four; в - четире процессора, ваиант NN-four

Рисунок 8 - Конфигурации процессоров при экспериментах на SCI-кластере (Intel Pentium III Copermine 933 МГц):

а - два процессора, вариант double; б - два процессора, вариант single; в - четыре процессора, вариант double; г - четыре процессора, вариант single

Рисунок 9 — Конфигурации процессоров в экспериментах на CRAY T3E: а - два процессора; б - четыре процессора

10

10

-13

10

-15

t \ l\ l\

\ 2 iV

» / \ ^ Ia ' -

i i V3 ' л jT _

, 1/h

10

10

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

10

10

10

-13

10

-15

11 \i

А/1

\ i \i i у

V х i * ^^

\ V" ~jr

, 1/h

10

10z

10

Рисунок 10 - Погрешности одношаговых блочных методов:

Рисунок 11 - Погрешности многошаговых блочных методов:

1 - метод Рунге-Кутта; 2 - двухточечный; 3 - четырехточечный 1 - метод Рунге-Кутта; 2 - двухточечный; 3 - четырехточечный

Рисунок 12 - Погрешности:

1 - метод Рунге-Кутта четвертого порядка; 2 - многошаговый двухточечный блочный метод; 3 - одношаговый двухточечный блочный метод с шагом А нош = 0, 5^многош

Рисунок 13 - Комбинированный метод:

1 - комбинированный метод; 2 - метод Рунге-Кутта четвертого порядка

На рис. 10-13 представлены результаты исследования характеристик точности.

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

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

ВЫВОДЫ

Разработанная библиотека предназначена для организации параллельного моделирования сложных

3.5

& 3 о

£ 2.5

(D

I 2 f

£

1.5 1

0.5

ЗСИоиЫе 4 SCI-single 4Х CRAY 4 ч

-V

CR \Y2 i \ / /NN4 /

SCI-doubli NN 2 four ч i\V

NN 2two \ X

SCI-single 2 Net4

11QJ 1 1СГ 1 10B 110

Количество вычислительных операций

Рисунок 14 - Зависимость коэффициента ускорения

динамических систем в реальном и ускоренном времени, поддерживает работу на параллельных и распределенных компьютерных системах на базе опера-цион-ных платформ Windows, Linux, Unix. Библиотека может быть использована в бортовых и встроенных мультипроцессорных системах управления динамическими объектами и технологическими процессами, а также сверхоперативных системах поддержки принятия решений для управления динамическими объектами.

ПЕРЕЧЕНЬ ССЫЛОК

1. Фельдман Л. П., Дмитриева О. А. Разработка и обоснование параллельных блочных методов решения обыкновенных дифференциальных уравнений на SIMD-структурах // Науков1 прац Донецького нацюнального техшчного ушверситету. - Донецьк, 2001. - Вип. 29. -С. 70-79.

2. Пиза Н. Д., Кудерметов Р. К. Решение задачи моделирования движения космического аппарата на параллельных вычислительных системах // Высокопроизводительные параллельные вычисления на кластерных системах. Материалы IV международного научн.-прак-тич. семинара / Под ред. чл.-кор. РАН В. А. Сойфера. -Самара: «Издательство СНЦ РАН», 2004. - С. 226-232.

Надшшла 16.01.06 Шсля доробки 2.03.06

В статт1 подана б1блютека функцт для моделювання складних динамгчних об'ектгв на паралельних обчислю-вальних системах. Як базов1 алгоритми б1блютека вико-ристовуе паралельт блочт методи. Для оргатзацп об-м\ну даними мгж паралельними процесорами використо-вуеться стандарт MPI.

In the article the software library for the simulation of complicated dynamic objects on parallel computing systems is represented. Parallel block methods are used as base algorithms in the library. MPI standard is applied for implementation of the data exchange among the parallel processors.

УДК 519.2:681.3

Г. В. Табунщик, Е. В. Кирсанова

РОБАСТНОЕ ПЛАНИРОВАНИЕ ЭКСПЕРИМЕНТА В МЕДИЦИНСКИХ

ИССЛЕДОВАНИЯХ

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

ВВЕДЕНИЕ

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

Однако развитие информационных технологий стимулирует развитие таких статистических методов как ПЭ, так как снижается трудоемкость выполняемых вычислений [1]. Примером может служить робастное

© Табунщик Г. В., Кирсанова Е. В., 2006

планирование эксперимента (РПЭ) [2], которое значительно расширяет область применения классической теории ПЭ.

1 ПОСТАНОВКА ЗАДАЧИ ИССЛЕДОВАНИЯ

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

Кроме района проживания в качестве исследуемых факторов были выбраны: возраст и пол детей. В качестве отклика решено рассматриваеть условный показатель здоровья - индекс напряженности.

На основе алгоритма нейросетевой оценки информативности признаков среди здоровьеформирующих, экологических и социально-бытовых, были определены наиболее значимые [3].

Среди значимых социально-бытовых признаков для дальнейших исследований были выбраны следующие: занимается ли ребенок спортом (1 - да, 2 - нет); средний доход на 1 члена семьи в месяц (1 - до 100 грн;

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