- •Введение
- •1 Параллельные и распределенные вычислительной системы
- •1.1 Понятие параллельной и распределенной вычислительной системы
- •1.2 Архитектура параллельной и распределенной вычислительной системы
- •1.3 Программное обеспечение для различных высокопроизводительных систем
- •1.4 Языки высокопроизводительных вычислений
- •1.5 Интегрированная среда разработки многопоточных приложений
- •2.1 Общие сведения об Oracle Solaris Studio ide
- •2.2 Профилировщик Performance Analyzer.
- •2.3 Профилирование приложений в Oracle Solaris Studio.
- •Заключение
- •Список используемых источников
- •Приложение а
- •Приложение б
МИНОБРНАУКИ РОССИИ
Санкт-Петербургский государственный
электротехнический университет
«ЛЭТИ» им. В.И. Ульянова (Ленина)
Кафедра Вычислительная Техника
Реферат
по дисциплине «Вычислительные системы»
Тема: Oracle Solaris Studio как пример интегрированной среды для разработки параллельных и распределенных программ
Студент гр. 2309 |
|
Томышев А.А. |
Преподаватель |
|
Лебедев С.В. |
Санкт-Петербург
2016
Оглавление
Введение 3
1 Параллельные и распределенные вычислительной системы 4
1.1 Понятие параллельной и распределенной вычислительной системы 4
1.2 Архитектура параллельной и распределенной вычислительной системы 5
1.3 Программное обеспечение для различных высокопроизводительных систем 7
1.4 Языки высокопроизводительных вычислений 8
1.5 Интегрированная среда разработки многопоточных приложений 9
2 Oracle Solaris Studio IDE 11
2.1 Общие сведения об Oracle Solaris Studio IDE 11
2.2 Профилировщик Performance Analyzer. 12
2.3 Профилирование приложений в Oracle Solaris Studio. 13
Заключение 17
Список используемых источников 18
Приложение А 19
Приложение Б 21
Введение
В настоящее время круг задач, требующих для своего решения применения мощных вычислительных ресурсов, все время расширяется. Высокопроизводительные вычисления в настоящее время не мыслятся без распараллеливания, ибо наиболее мощные вычислительные системы имеют сотни и тысячи процессоров, работающих одновременно и в тесном взаимодействии, т.е. параллельно.
При организации проведения высокопроизводительных вычислений стало обычным использование многозадачности и мультипрограммности, мультимедийных средств, компьютерных локальных сетей, а также глобальных сетей, таких, как Интернет. Это показывает, что серьезное изучение вопросов распараллеливания и высокопроизводительных вычислений чрезвычайно важно.
Разработка программного обеспечения для высокопроизводительных вычислений это сложный процесс, который трудно организовать без надежного, эффективного и обладающего удобным интерфейсом набора инструментов. Этим набором инструментов выступает интегрированная среда разработки. К ней предъявляют различные требования для параллельного и распределенного программирования.
Целью написания реферата стало исследование интегрированной среды разработки 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). В данную категорию относятся мультипроцессоры – один компьютер со многими процессорами. Главными представителями являются:
SMP архитектура (symmetric multiprocessing) — симметричная многопроцессорная архитектура. Особенностью систем с архитектурой SMP является наличие общей физической памяти, разделяемой всеми процессорами. В данную категорию относятся мультипроцессоры – один компьютер со многими процессорами [3].
Гибридная архитектура NUMA (nonuniform memory access) – неоднородный доступ к памяти. Суть этой архитектуры – в особой организации памяти, а именно: память физически распределена по различным частям системы, но логически она является общей, так что пользователь видит единое адресное пространство [3].
Рисунок 1.
Системы с распределенной памятью (Рис. 2). К этой категории относятся мультикомпьютеры – вычисления проводятся на относительно независимых компьютерах. Основными представителями являются:
MPP (massive parallel processing) – массивно-параллельная архитектура. Главная особенность такой архитектуры состоит в том, что память физически разделена.
Кластер представляет собой два или более компьютеров (часто называемых узлами), объединяемых при помощи сетевых технологий на базе шинной архитектуры или коммутатора и предстающих перед пользователями в качестве единого информационно-вычислительного ресурса. В качестве узлов кластера могут быть выбраны серверы, рабочие станции и даже обычные персональные компьютеры [3].
Рисунок 2.
