|
||||||||||||
|
Наиболее популярный способ написания параллельных программ это создание параллельного программного кода с использованием таких библиотек как MPI и OpenMP. Эти библиотеки позволяют создавать высокоэффективные параллельные программы. Однако при написании параллельной программы для обеспечения эффективности работы полученной реализации и достижения сбалансированности нагрузки на процессоры и коммуникационную среду многопроцессорной системы приходится учитывать массу деталей. C целью облегчения человеку написания параллельной программы популярен подход создания программных надстроек над MPI и OpenMP. К таким средствам можно отнести DVM, Cilk, PETSc, а также создаваемое автором в коллективе разработчиков инструментальное средство для написания программы как графа зависимости по данным Parus. Алгоритм решаемой задачи представляется в виде ориентированного графа, где в вершинах сосредоточены вычислительные операции (действия над данными), а рёбра задают зависимости по данным. Предполагается, что вершина, принимающая данные, будет как-то их использовать и вырабатывать, на основе полученных, новые данные, которые затем будут использоваться другими вершинами графа. Граф затем преобразуется в программу на C++ с MPI-вызовами. Полученная таким образом программа в процессе исполнения на многопроцессорной системе будет пытаться минимизировать как накладные расходы на передачу данных, так и время исполнения своего кода путём выбора процессора для каждой вершины графа. Система Parus была протестирована на следующих многопроцессорных системах: MBC-1000M (768 процессоров Alpha), IBM pSeries690 (16 процессоров Power4+ ), Sun Fujitsu PRIMEPOWER 850 Server (12 процессоров SPARC64-V). На данных машинах были созданы: параллельная реализация 3-слойного перцептрона, параллельная реализация Window-sync частотного фильтра звуковых сигналов, параллельная реализация программы, осуществляющей множественное выравнивание нуклеотидных последовательностей на основе пакета MUSCLE (http://www.drive5.com/muscle). Проведено исследование эффективности полученных реализаций. Приглашаются аспиранты и стажеры программистских кафедр. |
|||||||||||
|