WWW.DISSERS.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА

   Добро пожаловать!


Pages:     || 2 | 3 | 4 | 5 |   ...   | 34 |
ПРЕДИСЛОВИЕ Этот сборник приурочен сразу к двум юбилеям, важным для Института системного программирования (ИСП РАН): 275 лет Российской академии наук и пять лет со дня создания Института. Именно поэтому статьи этого сборника подводят итоги исследовательских работ сотрудников Института за пять лет. Немного информации об истории и области деятельности Института. ИСП РАН был образован 25 января 1994 г. в день святой Татьяны, покровительницы Московского государственного университета и всех российских студентов. Несмотря на такой молодой возраст, Институт базируется на группе специалистов, которые работали совместно в течение более 30 лет (ИТМ и ВТ, НИИ "Дельта", ИПК АН). Группа начинала свою активность в области операционных систем (НД-70 для БЭСМ-6, операционная система для АС-6 и т.д.), а также в области компиляторов для различных языков (ассемблер, Фортран, расширенный BCPL, ПЛ/1 и т.д.).

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

Что мы реально делаем Имеются три основных направления:

• Фундаментальные исследования в базовых областях Computer Science • Разработка прототипных и готовых к использованию программных систем • Обучение студентов и аспирантов.

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

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

• использование формальных методов для прямой и обратной инженерии программных систем;

• системы автономного адаптивного управления;

• объектно-ориентированные распределенные информационные системы;

• объектно-ориентированные системы визуализации;

• эффективные вычислительные алгоритмы.

Надеюсь, что содержащиеся в сборнике статьи дадут читателям достаточную информацию об исследовательской деятельности Института.

Директор ИСП РАН, член-корреспондент РАН В.П.Иванников Язык и система программирования для высокопроизводительных параллельных вычислений на неоднородных сетях А.Л. Ластовецкий, А.Я. Калинов, И.Н. Ледовских, Д.М. Арапов, М.А. Посыпкин инициатива, направленная на тысячекратное Аннотация ускорение обмена данными в сети Internet и поддержанная ведущими компаниями В статье описывается язык mpC, (телекоммуникационными и компьютерными), разработанный специально для ясно указывает на наметившийся сдвиг программирования высокопроизводительных высокопроизводительных вычислений в сторону вычислений на неоднородных сетях сетевых вычислений.

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

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

сдерживается лишь отсутствием подходящего 1. Введение программного обеспечения. Дело в том, что, в отличие от суперкомпьютеров, сети по своей Еще 10 лет назад к высокопроизводительным природе неоднородны и состоят из параллельным вычислительным системам разнообразных компьютеров обычно различной относили лишь так называемые суперкомпьютеры производительности, связанных в сеть иногда - мультипроцессоры с общей памятью (SMP) и неоднородным сетевым оборудованием, мультипроцессоры с распределенной памятью предоставляющим разную скорость обмена (MPP). Параллельные вычисления на обычных данными между разными процессорными узлами.

сетях рабочих станций и персональных Как правило, параллельная программа, компьютеров не имели смысла, поскольку не перенесенная с (однородного) суперкомпьютера, могли ускорить решение большинства задач из-за выполняется на неоднородной сети с той же низкой производительности типового сетевого скоростью, с какой она выполнялась бы на оборудования. Однако с начала 1990х годов рост однородной сети, состоящей из процессоров производительности типового сетевого эквивалентных по производительности оборудования уже устойчиво обгоняет рост слабейшему процессору исходной неоднородной производительности процессоров [1], (pp.6-7).

сети, число которых равно числу процессоров Современные сетевые технологии, такие как Fast исходной неоднородной сети. Объясняется это Ethernet, ATM, Myrinet и другие, уже тем, что такие параллельные программы обеспечивают обмен данными между распределяют данные, вычисления и компьютерами на уровне сотен мегабит и даже коммуникации без учета различий в нескольких гигабит в секунду. Это привело к производительности процессоров и ситуации, когда не только специализированные коммуникационных линков. Это резко снижает параллельные компьютеры, но и обычные эффективность использования производительного локальные и даже глобальные сети можно потенциала сетей и приводит к крайне использовать в качестве параллельных незначительному их использованию для вычислительных систем для высокопроизводительных параллельных высокопроизводительных вычислений.



вычислений.

Объявленная президентом США стратегическая В настоящее время основными средствами В статье описывается первый параллельный параллельного программирования для сетей язык, специально спроектированный для являются MPI [2], PVM [3] и HPF [4]. программирования неоднородных сетей, а также PVM (Parallel Virtual Machine) и MPI (Message поддерживающая его система программирования.

Passing Interface) - это библиотеки передачи Этот язык, названный mpC, представляет собой сообщений, являющиеся, по сути, средствами расширение ANSI C. Подобно HPF, он включает уровня ассемблера для параллельного векторное подмножество [6]. Известные языки программирования. Из-за низкого уровня их параллельного программирования ориентированы параллельных примитивов разработка на на программирование регулярных параллельных PVM/MPI не учебных, а практически полезных и архитектур, параметризуемых с помощью сложных программ представляет собой крайне небольшого числа параметров. Регулярность трудную задачу и требует очень высокой целевых архитектур позволяет неявно встраивать квалификации разработчика. Кроме того, эти их в эти языки. Этот традиционный подход библиотеки не проектировались для разработки неприменим к проектированию параллельного адаптивных параллельных программ, то есть языка, ориентированного на неоднородные сети, программ, распределяющих вычисления и поскольку эта архитектура не имеет регулярной коммуникации в зависимости от входных данных структуры. Основная идея, лежащая в основе и особенностей конкретной исполняющей языка mpC, заключается в предоставлении неоднородной сети. Конечно, благодаря их пользователю языковых конструкций, низкому уровню, у пользователя есть позволяющих ему определять абстрактную возможность написать специальную систему неоднородную параллельную машину, наиболее времени выполнения, обеспечивающую подходящую для выполнения его алгоритма. Эта адаптируемость его программы, однако такая информация вместе с информацией о физической система, как правило, настолько сложна, что параллельной системе используется системой необходимость ее разработки способна отпугнуть программирования mpC для обеспечения большинство нормальных пользователей. эффективного выполнения соответствующей HPF (High Performance Fortran) представляет программы на этой физической параллельной собой параллельный язык высокого уровня, системе.

первоначально спроектированный для Статья построена следующим образом. Раздел программирования (однородных) 2 дает введение в mpC. Раздел 3 кратко описывает суперкомпьютеров. Поэтому единственной принципы реализации. В разделе 4 обсуждаются параллельной архитектурой, видимой при проблемы оценки характеристик параллельной программировании на HPF, является однородный вычислительной системы, на которой мультипроцессор с очень быстрыми выполняется программа. Раздел 5 описывает опыт коммуникационными линками между его использования mpC для разработки реальных процессорами. HPF не поддерживает приложений. В разделе 6 описываются похожие нерегулярное распределение данных, работы. Раздел 7 содержит заключение.

неоднородное распределение данных, а также 2. Введение в mpC среднеблочный параллелизм. Типичный компилятор языка HPF транслирует программу на В языке mpC вводится понятие HPF в программу на PVM или MPI, и вычислительного пространства, которое программист не может влиять на определяется как некоторое доступное для сбалансированность процессов целевой управления множество виртуальных процессоров программы передачи сообщений. Кроме того, различной производительности, связанных HPF очень труден для компиляции. Даже лучшие линками с различной скоростью передачи.

компиляторы HPF генерируют код, в среднем в 2Основным понятием mpC является понятие 3 раза медленнее выполняемый на однородных сетевого объекта или просто сети. Сеть состоит из кластерах рабочих станций, чем вручную виртуальных процессоров различной написанный на MPI (по материалам конференции производительности, связанных между собой пользователей HPF [5], состоявшейся в июне линками с различной скоростью передачи. Сеть года в Порто, Португалия). Поэтому HPF также является областью вычислительного не вполне подходит для программирования пространства, которая может быть использована высокопроизводительных вычислений на сетях.

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

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

языке C. Концептуально, создание новой сети инициируется процессором уже существующей координатами [I] и [3]. Отметим, что если сети. Этот процессор называется родителем линк между двумя процессорами не создаваемой сети. Родитель всегда принадлежит специфицирован явно, то это означает наличие создаваемой сети. Единственным процессором, между ними линка с минимальной для данной определенным от начала и до конца выполнения сети скоростью.

программы, является предопределенный Строка 8 содержит объявление родителя. Она виртуальный хост-процессор.

специфицирует, что родительский процессор Любой сетевой объект, объявленный в имеет координату [0] в создаваемой сети.





программе, имеет тип. Тип специфицирует число, Имея объявление сетевого типа, можно типы и производительности процессоров, линки объявить идентификатор сетевого объекта этого между процессорами и их скорости, а также типа. Например, объявление родителя сети. Например, объявление net Rectangle r1;

/* Строка 1 */ nettype Rectangle { вводит идентификатор r1 сетевого объекта типа /* Строка 2 */ coord I=4;

Rectangle.

/* Строка 3 */ node { I>=0 : I+1; };

Понятие распределенного объекта вводится в /* Строка 4 */ link { стиле языков C* [7] и Dataparallel C [8]. По /* Строка 5 */ I>0: [I]<->[I-1];

определению, объект данных, распределенный по /* Строка 6 */ I==0: [I]<->[3];

/* Строка 7 */ }; некоторой области вычислительного /* Строка 8 */ parent [0];

пространства, составляется из обычных /* Строка 9 */ };

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

компоненту. Например, объявления Здесь строка 1 содержит заголовок объявления net Rectangle r2;

int [*]Derror, [r2]Da[10];

сетевого типа. Она вводит имя сетевого типа.

float [host]f, [r2:I<2]Df;

Строка 2 содержит объявление системы repl [*]di;

координат, к которой привязываются процессоры.

вводят:

Она вводит целую координатную переменную I • целую переменную Derror, распределенную со значениями от 0 до 3.

по всему вычислительному пространству;

Строка 3 содержит объявление процессорных • массив Da из десяти целых, распределенный узлов. Оно привязывает процессоры к системе по сети r2;

координат и объявляет их типы и производительности. Строка 3 соответствует • нераспределенную вещественную переменную f, принадлежащую виртуальному хостпредикату для всех I<4 если I>=0, то процессору;

виртуальный процессор с относительной производительностью, определяемой величиной • вещественную переменную Df, I+1, привязывается к точке с координатой [I]. распределенную по подсети сети r2;

Выражение I+1 называется спецификатором • целую переменную di, размазанную по всему производительности. Большее число задает вычислительному пространству.

большую производительность. В примере 0-й По определению, распределенный объект виртуальный процессор в два раза медленней, чем является размазанным, если все его компоненты 1-й, в три раза медленнее, чем 2-й и в четыре раза равны между собой.

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

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

типов, называемое топологией или Строки 4-7 содержат объявление линков. Оно параметризованным сетевым типом. Например, специфицирует линки между процессорами.

объявление /* Строка 1 */ nettype Ring(n, p[n]) Строка 5 соответствует предикату для всех I<{ если I>0 то имеется ненаправленный линк с /* Строка 2 */ coord I=n;

обычной скоростью, связывающий процессоры с /* Строка 3 */ node { координатами [I] и [I-1], а строка /* Строка 4 */ I>=0: p[I];

соответствует предикату для всех I<4 если I==/* Строка 5 */ };

то имеется ненаправленный линк с обычной /* Строка 6 */ link { /* Строка 7 */ I>0: [I]<->[I-1];

скоростью, связывающий процессоры с /* Строка 8 */ I==0: [I]<->[n-1]; /* 12*/ { /* Строка 9 */ }; /* 13*/ double [host]x[N][N], /* Строка 10 */ parent [0]; [host]y[N][N], [host]z[N][N];

/* Строка 11 */ ; /* 14*/ repl int nprocs;

/* 15*/ repl double *powers;

вводит топологию с именем Ring, /* 16*/ Input(x, y);

соответствующую сетям, состоящим из n /* 17*/ MPC_Processors(&nprocs, виртуальных процессоров, связанных в кольцо с &powers);

помощью ненаправленных линков с нормальной /* 18*/ { скоростью.

/* 19*/ repl int ns[nprocs];

Заголовок объявления (строка 1) вводит /* 20*/ MPC_Partition_1b(nprocs, параметры топологии Ring, а именно, целый powers, ns, N);

/* 21*/ { параметр n и векторный параметр p, состоящий /* 22*/ net Star(nprocs, ns) w;

из n целых. Соответственно, координатная /* 23*/ int [w]myn;

переменная I пробегает значения от 0 до n-1, /* 24*/ myn=([w]ns)[I coordof myn];

строка 4 соответствует предикату для всех I

если I>=0, то виртуальный процессор с /* 27*/ double относительная производительностью, [w]dx[myn][N],[w]dy[N][N], специфицируемой значением p[I], [w]dz[myn][N];

привязывается к точке с координатами [I] и /* 28*/ dy[]=y[];

т.п.

/* 29*/ dx[]=::x[];

Имея объявление топологии, можно объявить /* 30*/ for(i=0; i

[0]+j)[]);

/* Вычисление m, n[0],..., n[m-1] /* 33*/ z[]::=dz[];

Pages:     || 2 | 3 | 4 | 5 |   ...   | 34 |










© 2011 www.dissers.ru - «Бесплатная электронная библиотека»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.