Введение к работе
Актуальность
Одной из фундаментальных проблем параллельного программирования является проблема организации высокопродуктивных вычислений. При этом важным является не только достижение минимизации времени выполненияы программ, но и минимизации ресурсов, затрачиваемых на их разработку.
В настоящее время обеспечение высокой эффективности разработки программ существенно осложняется тем, что промышленная разработка прикладных параллельных программ для систем с распределенной памятью (кластеры) ведется на последовательных языках программирования с явным использованием обращений к коммуникационной библиотеке MPI, что связано с необходимостью ручной доводки программ (распределение данных, шаблоны коммуникаций и др.).
Актуальной является задача создания методологии поддержки и реализующих ее инструментальных средств разработки параллельных программ, позволяющих сократить неприемлемо высокие затраты времени и человеческих ресурсов на разработку приложений.
Конечно, наиболее кардинальным решением было бы создание нового языка высокого уровня, который обеспечил бы возможность разрабатывать параллельные программы с помощью оптимизирующих компиляторов. Но, к сожалению, исследования по высокоуровневым языкам параллельного программирования, проводившиеся, начиная с 1988 года, не увенчались успехом. Разрабатываемые языки: HPF (и его Jurra-версия HPJava), Cilk, UPC (и его Jurra-версия Titanium) и другие - не сумели решить поставленных перед ними задач. Основная причина неудачи в том, что, несмотря на значительные усилия, до сих пор не удалось разработать компиляторные технологии, позволяющие генерировать эффективный параллельный код. Отметим также, что надежды, связанные с созданием языков нового поколения XI0, Chapel, Fortress, даже, несмотря на то, что эти языки
требуют более детально описывать структуру параллельной вычислительной среды, пока не оправдываются.
В отличие от разработки последовательных программ, где достаточно хорошо развиты технологические средства, в настоящее время не существует устоявшихся технологических процессов, позволяющих разрабатывать параллельные программы гарантированного качества. Поскольку целевая аппаратура является системой коллективного пользования, доступ к ней, как правило, часто бывает связан с потерями времени, и, как следствие, снижения эффективности разработки. А модель позволяет существенно снизить количество выходов на целевую аппаратуру, экономя вмемя разработки.
Цель диссертационной работы.
Целью диссертационной работы является исследование и создание методологии поддержки разработки параллельных программ и реализация ее в рамках среды Par Java, которая разрабатывается в Институте системного программирования РАН. Также целью диссертационной работы является реализация и апробирование методологии и соответствующих инструментальных средств на классе численных приложений, связанных с решением сильно нелинейных многокомпонентных трехмерных систем уравнений в частных производных смешанного типа.
Научная новизна
Научной новизной обладают следующие результаты диссертационной работы:
Исследована, разработана и апробирована методология поддержки создания масштабируемых параллельных программ решения задач математической физики в среде ParJava.
Разработан и реализован в среде ParJava механизм оптимальной организации контрольных точек.
В рамках предлагаемой методологии разработан масштабируемый
параллельный алгоритм численного моделирования процессов и условий
генерации интенсивных атмосферных вихрей (ИАВ) в модели трехмерной
сжимаемой атмосферы.
Практическая значимость работы определяется тем, что разработанные инструментальные средства позволяют существенно уменьшить накладные расходы на разработку параллельных приложений, как по времени разработки, так и по используемым ресурсам. С использованием предложенной методологии была реализована масштабируемая параллельная программа, моделирующая развитие интенсивных атмосферных вихрей в трехмерной сжимаемой сухоадиабатической атмосфере, которая позволила физикам проверять, исследовать и развивать теорию ИАВ. При этом, за счет того, что разработка велась в среде Par Java на инструментальной машине, удалось значительно сократить время разработки.
Апробация работы и публикации
По теме диссертации опубликовано семь работ [1-7], в том числе две - в изданиях по перечню ВАК.
Основные положения и результаты диссертации докладывались и обсуждались на следующих научных конференциях:
Всероссийская научная конференция «Научный сервис в сети ИНТЕРНЕТ: технологии параллельного программирования», г. Новороссийск, 18-23 сентября 2006.
Международный научно-практический Семинар и Молодежная школа «Высокопроизводительные Параллельные Вычисления на Кластерных Системах» 12-17 декабря 2006 года.
International Conference on the Methods of Aerophysical Research - Novosibirsk, 2007.
Sixth International Conference on Computer Science and Information Technologies (CSIT'2007), 24-28 September, Yerevan, Armenia
MTPP 2007 Parallel Computing Technologies First Russian-Taiwan Symposium Pereslavl-Zalesskii (Russia), September 2-3, 2007
V Всероссийская межвузовская конференция молодых ученых, г. Санкт-Петербург , 15-18 апреля 2008 г .
Международная научная конференция «Космос, астрономия и программирование» (Лавровские чтения), 20-22 мая 2008 г. Санкт-Петербург
Структура и объем диссертации