Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BC.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
728.34 Кб
Скачать

Титульный лист

Реферат на тему

«Oracle Solaris Studio как пример интегрированной среды разработки многопоточных программ на языках C, C++ и Fortran»

Оглавление

Введение

В настоящее время круг задач, требующих для своего решения применения мощных вычислительных ресурсов, все время расширяется. Высокопроизводительные вычисления в настоящее время не мыслятся без распараллеливания, ибо наиболее мощные вычислительные системы имеют сотни и тысячи процессоров, работающих одновременно и в тесном взаимодействии, т.е. параллельно. Благодаря распараллеливанию удается достичь производительности в тысячи терафлопс.

При организации проведения высокопроизводительных вычислений стало обычным использование многозадачности и мультипрограммности, мультимедийных средств, компьютерных локальных сетей, а также глобальных сетей, таких, как Интернет. Это показывает, что серьезное изучение вопросов распараллеливания и высокопроизводительных вычислений чрезвычайно важно.

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

Целью написания реферата стало исследование интегрированной среды разработки Oracle Solaris Studio для разработки многопоточных программ.

1 Параллельные и распределенные вычислительной системы

1.1 Понятие параллельной и распределенной вычислительной системы

Однопроцессорная машина состоит из нескольких компонентов: Центрального процессорного устройства (ЦПУ), первичной памяти, одного или нескольких уровней кэш-памяти, вторичной памяти и набора периферийных устройств. В современном мире мощности однопроцессорной системы будет недостаточно для высокопроизводительных вычислений. К таким вычислениям относятся [1]:

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

  • сейсморазведка;

  • проектирование электронных устройств;

  • синтез новых материалов;

  • и многие другие.

Для решения подобных задач используются параллельные и распределенные вычислительные системы с различными архитектурами и необходимым программным обеспечением.

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

Распределенная вычислительная система – это набор независимых компьютеров, представляющийся их пользователям единой объединенной системой. [2]

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

1.2 Архитектура параллельной и распределенной вычислительной системы

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

Классификация архитектур вычислительных систем, предложенная в 1966 году М. Флинном, базируется на понятии потока, под которым понимается последовательность элементов, команд или данных, обрабатываемая процессором. Флинн выделяет четыре класса архитектур [3]:

  • SISD = Single Instruction Single Data (Один поток команд ­– один поток данных). В таких машинах есть только один поток команд, все команды обрабатываются последовательно друг за другом, и каждая команда инициирует одну операцию с одним потоком данных.

  • MISD = Multiple Instruction Single Data (Множественный поток команд – один поток данных). Определение подразумевает наличие в архитектуре многих процессоров, обрабатывающих один и тот же поток данных. Однако ни Флинн, ни другие специалисты в области архитектуры компьютеров до сих пор не смогли представить убедительный пример реально существующей вычислительной системы, построенной на данном принципе.

  • SIMD = Single Instruction Multiple Data (Один поток команд – множественный поток данных). В архитектурах подобного рода сохраняется один поток команд, включающий, в отличие от предыдущего класса, векторные команды. Это позволяет выполнять одну арифметическую операцию сразу над многими данными – элементами вектора.

  • MIMD = Multiple Instruction Multiple Data (Множественный поток команд – множественный поток данных). Этот класс предполагает, что в вычислительной системе есть несколько устройств обработки команд, объединенных в единый комплекс и работающих каждое со своим потоком команд и данных.

В категории MIMD проводят еще одну классификацию архитектуры, представленную на рисунке 1 – на мультипроцессоры (один компьютер со многими процессорами) и мультикомпьютеры (вычисления проводятся на относительно независимых компьютерах) [1].

Рисунок 1.

SMP архитектура (symmetric multiprocessing) — симметричная многопроцессорная архитектура. Главной особенностью систем с архитектурой SMP является наличие общей физической памяти, разделяемой всеми процессорами (Рис. 2). Память служит, в частности, для передачи сообщений между процессорами, при этом все вычислительные устройства при обращении к ней имеют равные права и одну и ту же адресацию для всех ячеек памяти. Основное преимущество SMP-систем это простота и универсальность для программирования. Архитектура SMP не накладывает ограничений на модель программирования, используемую при создании приложения: обычно используется модель параллельных ветвей, когда все процессоры работают независимо друг от друга.

SMP системы плохо масштабируются – это главный недостаток системы.

Рисунок 2.

Гибридная архитектура NUMA (nonuniform memory access) – неоднородный доступ к памяти. Гибридная архитектура совмещает достоинства систем с общей памятью и относительную дешевизну систем с раздельной памятью. Суть этой архитектуры – в особой организации памяти, а именно: память физически распределена по различным частям системы, но логически она является общей, так что пользователь видит единое адресное пространство. Система построена из однородных базовых модулей (плат), состоящих из небольшого числа процессоров и блока памяти. Модули объединены с помощью высокоскоростного коммутатора. Поддерживается единое адресное пространство, аппаратно поддерживается доступ к удаленной памяти, т.е. к памяти других модулей. При этом доступ к локальной памяти осуществляется в несколько раз быстрее, чем к удаленной. [3]

Рисунок 3.

MPP (massive parallel processing) – массивно-параллельная архитектура. Главная особенность такой архитектуры состоит в том, что память физически разделена. В этом случае система строится из отдельных модулей, содержащих процессор, локальный банк операционной памяти (ОП), коммуникационные процессоры (рутеры) или сетевые адаптеры, иногда – жесткие диски и/или другие устройства ввода/вывода. По сути, такие модули представляют собой полнофункциональные компьютеры. Главным преимуществом систем с раздельной памятью является хорошая масштабируемость. Недостатки:

  • отсутствие общей памяти заметно снижает скорость межпроцессорного обмена, поскольку нет общей среды для хранения данных, предназначенных для обмена между процессорами;

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

Кластер представляет собой два или более компьютеров (часто называемых узлами), объединяемых при помощи сетевых технологий на базе шинной архитектуры или коммутатора и предстающих перед пользователями в качестве единого информационно-вычислительного ресурса. В качестве узлов кластера могут быть выбраны серверы, рабочие станции и даже обычные персональные компьютеры. Узел характеризуется тем, что на нем работает единственная копия операционной системы. Преимущество кластеризации для повышения работоспособности становится очевидным в случае сбоя какого-либо узла: при этом другой узел кластера может взять на себя нагрузку неисправного узла, и пользователи не заметят прерывания в доступе.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]