Содержание
1.Введение
2.Модели параллельного программирования
2.1Модель передачи сообщений MPI
2.2Другие модели
3.Отладка параллельных программ
3.1Обзор методик отладки
3.2Обзор существующих средств отладки
3.3.1LockInt (Sun)
3.3.2MAD EMU и ATTEMPT (Johannes Kepler University Linz)
3.3.3Total View (Etnus LLC), Prism(Sun), p2d2(NAS Ames), Ladebug(Compaq), GDB(GNU), DBX(Sun)
3.3.4Assure(Intel), DVM debugger(KIAM RAS), UMPIRE (LLNL)
3.3.5DejaVu (IBM)
3.3.6Guard( Monash University ), DVM debugger(KIAM RAS), NASA/Ames support for debugging automatically parallelized programs
3.3.7HOWCOME demonstrator, DD.py ( Saarland University )
4.Пользовательский интерфейс
4.1Создание интерфейса
4.2Современные подходы к созданию пользовательского интерфейса
5.Диалоговая оболочка отладчика MPI-программ.
5.1Постановка задачи
5.2Общая схема использования
5.3Входная информация
5.4Основные объекты визуализации
5.5Основные функции визуализатора
5.6Общая схема визуализации
5.7Окно состояния задачи (Taskstate)
5.8Окно обобщенных ошибок (Errorlocation)
5.9Окно топологии процессоров (Topologycontrol)
5.10Окно конкретных ошибок (Errorslist)
5.11Окно событий (Event line)
5.12Окно просмотра стека и исходных текстов (Textcontrol)
5.13Окно просмотра трасс (Tracecontrol)
Заключение
Литература
2. Модели параллельного программированияПараллельные программы выполняются не многопроцессорных ЭВМ, поэтому необходимы механизмы для взаимодействия процессоров между собой. Существуют две основных модели такого взаимодействия: через общую память, либо посредством передачи сообщений. Обе это модели являются низкоуровневыми и поэтому крайне неудобны и непривычны для программистов, разрабатывающих параллельные программы.
Системы автоматического распараллеливания могут вполне успешно использоваться на мультипроцессорах, в то же время их использования на распределенных системах существенно затруднено.
2.1 Модель передачи сообщений MPI
В модели передачи сообщений параллельная программа выполняется на множестве процессов, каждый из которых имеет свое собственное адресное пространство. Обмен данными и синхронизация между процессами производится посредством передачи сообщений. В 1993 году был разработан стандарт передачи сообщений MPI (MessagePassingInterface) [2]. Внедрение этого стандарта позволило увеличить возможность переносимости программ, разрабатываемых в рамках разных подходов, с использованием модели передачи сообщений.
Достоинства MPI :
· Возможность использования в языках Фортран, Си, Си++;
· Предоставление возможностей для совмещения обменов сообщениями и вычислений;
· Предоставление режимов передачи сообщений, позволяющих избежать излишнего копирования информации для буферизации;
· Широкий набор коллективных операций (например, широковещательная рассылка информации, сбор информации с разных процессоров), допускающих гораздо более эффективную реализацию, чем использование соответствующей последовательности пересылок точка-точка;
· Широкий набор редукционных операций (например, суммирование расположенных на разных процессорах данных, или нахождение их максимальных или минимальных значений), не только упрощающих работу программиста, но и допускающих гораздо более эффективную реализацию, чем это может сделать прикладной программист, не имеющий информации о характеристиках коммуникационной системы;
· Удобные средства именования адресатов сообщений, упрощающие разработку стандартных программ или разделение программы на функциональные блоки;
· Возможность задания типа передаваемой информации, что позволяет обеспечить ее автоматическое преобразование в случае различий в представлении данных на разных узлах системы.
Тем не менее, интерфейс библиотеки MPI получился достаточно громоздким, не только для использования программистом, но и для реализации. В настоящее время не существует реализаций MPI, в которых в полной мере обеспечивается совмещение обменов с вычислениями.
В 1997 году появился стандарт MPI-2 [2]. На сегодняшний день существует, хотя и не полная, реализация стандарта MPI-2. Он предусматривает развитие в следующих направлениях:
· Динамическое создание и уничтожение процессов;
· Односторонние коммуникации и средства синхронизации для организации взаимодействия процессов через общую память (для эффективной работы на системах с непосредственным доступом процессоров к памяти других процессоров);
· Параллельные операции ввода-вывода (для эффективного использования существующих возможностей параллельного доступа многих процессоров к различным дисковым устройствам).
2.2 Другие модели
Модель неструктурированных нитей. Программа представляется как совокупность нитей (threads), способных выполняться параллельно и имеющих общее адресное пространство. Имеющиеся средства синхронизации нитей позволяют организовывать доступ к общим ресурсам. Многие системы программирования поддерживают эту модель: Win32 threads, POSIXthreads, Javathreads.
Модель параллелизма по данным. Основным её представителем является язык HPF [3]. В этой модел
Одними из наиболее популярных услуг на рынке IT-технологий являются создание и продвижение лендингов. Они способны положительно влиять на деятельность любого бизнес-проекта в интернете. Судя по многочисленным отзывам, заказавшие создание лендингов люди ни разу не пожалели о потраченных деньгах. Они вложили в будущее, которое неразрывно связано с интернетом. Всё больше и больше предпринимателей обращаются к услугам разных агентств, веб-студий, чтобы заказать создание лендинга у профессионалов.