Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ВС13 / ЛабРаб / Диплом.doc
Скачиваний:
36
Добавлен:
17.03.2015
Размер:
1.48 Mб
Скачать

4 Руководство по эксплуатации кластерной системы

4.1 Руководство программиста

4.1.1 Среда разработки

Для написания параллельных программ используют языки С и Фортран. В данной работе программные реализации алгоритмов были выполнены на языке С++ в среде разработки MS Visual C++ 6.0.

Язык С++ более распространен для параллельного программирования. Так «существуют С++-компиляторы, которые работают практически на всех извест­ных платформах и в операционных средах. Национальный Институт Стандарти­зации США (American National Standards Institute — ANSI) и Международная ор­ганизация по стандартизации (International Organization for Standardization — ISO) определили стандарты для языка C++ и его библиотеки. Существуют устойчиво работающие, так называемые открытые (open source) (т.е. лицензионные про­граммы вместе с их исходными текстами, не связанные ограничениями на даль­нейшую модификацию и распространение с сохранением информации о первич­ном авторстве и внесенных изменениях), а также коммерческие реализации этого языка. Язык C++ был быстро освоен научными работниками, проектировщиками и профессиональными разработчиками всего мира. Его использовали для реше­ния самых разных (по объему и форме) проблем: для написания как отдельных драйверов устройств, так и крупномасштабных промышленных приложений. Язык C++ поддерживает мультипарадигматический подход к разработке про­граммных продуктов и библиотек, которые делают средства параллельного и распределенного программирования легко доступными.

Язык C++ не содержит никаких синтаксических примитивов для параллелизма. С++-стандарт ISO также отмалчивается на тему многопоточности. В языке C++ не предусмотрено никаких средств, чтобы указать, что заданные инструкции должны выполняться параллельно. Включение встроенных средств параллелизма в других язы­ках представляется как их особое достоинство. Бьерн Страуструп, создатель языка C++, имел свое мнение на этот счет:

Можно организовать поддержку параллелизма средствами библиотек, которые будут приближаться к встроенным средствам параллелизма как по эффективности, так и по удобству применения. Опираясь на такие библиотеки, можно поддерживать различные модели, а не только одну, как при использования встроенных средств параллелизма. Именно такое направление (создание набора библиотек поддержки параллелизма) позволит ре­шить проблемы переносимости, используя тонкий слой интерфейсных классов.

Более того, Страуструп говорит: "Я считаю, что параллелизм в C++ должен быть представлен библиотеками, а не как языковое средство". Позиция Страуструпа и его рекомендации по реализации параллелизма в качестве библиотечного средства являются наиболее подходящими с практической точки зрения. Такой выбор объясняется доступностью высококачественных библиотек, которые успешно можно использовать для реше­ния задач параллельного и распределенного программирования. Библиотеки, которыми пользуются для усиления языка C++ с этой целью, реализуют национальные и между­народные стандарты и используются тысячами С++-программистов во всем мире.

«Для параллельного программирования на основе C++ используются такие библиотеки, как MPICH (реализация библиотеки MPI), WMPI, PVM и Pthreads (POSIX' Threads). Для распределенного программирования применяется библиотека MICO (С++-реализация стандарта CORBA).»[1]