Презентация Технологии параллельных вычислений онлайн
На нашем сайте вы можете скачать и просмотреть онлайн доклад-презентацию на тему Технологии параллельных вычислений абсолютно бесплатно. Урок-презентация на эту тему содержит всего 52 слайда. Все материалы созданы в программе PowerPoint и имеют формат ppt или же pptx. Материалы и темы для презентаций взяты из открытых источников и загружены их авторами, за качество и достоверность информации в них администрация сайта не отвечает, все права принадлежат их создателям. Если вы нашли то, что искали, отблагодарите авторов - поделитесь ссылкой в социальных сетях, а наш сайт добавьте в закладки.
Презентации » Образование » Технологии параллельных вычислений
Оцените!
Оцените презентацию от 1 до 5 баллов!
- Тип файла:ppt / pptx (powerpoint)
- Всего слайдов:52 слайда
- Для класса:1,2,3,4,5,6,7,8,9,10,11
- Размер файла:195.50 kB
- Просмотров:79
- Скачиваний:0
- Автор:неизвестен
Слайды и текст к этой презентации:
№4 слайд
![Особенности технологий для](/documents_5/6294a2d0d680c04900a8d9028b8b5332/img3.jpg)
Содержание слайда: Особенности технологий для параллельных вычислений
Параллелизм используется для ускорения вычислений
Необходимы технологии, рассчитанные на быстрый обмен данными
Рассмотренные ранее технологии распределенных вычислений могут использоваться, но они на параллелизм как правило не рассчитывались
Параллельные вычисления в масштабах Интернет пока сомнительны
№7 слайд
![Топологии параллельных систем](/documents_5/6294a2d0d680c04900a8d9028b8b5332/img6.jpg)
Содержание слайда: Топологии параллельных систем
Различные устройства связаны между собой
Структура связей между различными устройствами называется топологией параллельной системы
Различают логическую и физическую и виртуальную топологии
Физическая определяется аппаратными связями
Виртуальная – программными связями
Логическая – определяет логику работы алгоритма
№14 слайд
![Процессы Процесс код](/documents_5/6294a2d0d680c04900a8d9028b8b5332/img13.jpg)
Содержание слайда: Процессы
Процесс – код выполняющийся в отдельном адресном пространстве
Множество процессов может выполняться на одной машине параллельно или псевдопараллельно
Каждый процесс имеет доступ к ресурсам
Защищенные ресурсы
ресурсы совместно используемые с другими процессами
средства взаимодействия между процессами
№19 слайд
![Особенности fork exec и spawn](/documents_5/6294a2d0d680c04900a8d9028b8b5332/img18.jpg)
Содержание слайда: Особенности fork+exec и spawn
fork
Порожденный процесс наследует все ресурсы родителя!
Порожденный процесс начинает выполняться с того мести, где был выполнен вызов
Перед вызовом exec порожденный процесс может создать новые ресурсы
eхес
Порожденная программа наследует часть ресурсов родителя
Порожденная программа начинает выполняться сначала
spawn
Порожденная программа наследует часть ресурсов родителя
Порожденная программа начинает выполняться сначала
№24 слайд
![Семафоры Семафор совместно](/documents_5/6294a2d0d680c04900a8d9028b8b5332/img23.jpg)
Содержание слайда: Семафоры
Семафор – совместно используемая атомарная целочисленная переменная
В каждый момент времени изменять значение семафора может только один процесс
Значение семафорам может увеличиваться или уменьшатся на целое число (обычно на 1)
Уменьшение
Если значение семафора становится меньше нуля, то процесс, который выполнил такую операцию останавливается, пока значение семафора не станет >=0
Увеличение
Всегда проходит успешно
Проверка на нуль
Если значение семафора равно 0, то процесс продолжает выполнение
Если не равно нулю, то процесс останавливается, пока значение на станет равным 0
№28 слайд
![Стандарт OpenMP OpenMP](/documents_5/6294a2d0d680c04900a8d9028b8b5332/img27.jpg)
Содержание слайда: Стандарт OpenMP
OpenMP – стандарт который включает директивы компилятора, библиотеки и системные переменные, которые могут быть использованы для указания параллелизма в системах с общей памятью
Для распараллеливания с помощью OpenMP пользователь должен указать, что выполняется параллельно, какие данные совместно используются, а какие нет.
№30 слайд
![Обмен сообщениями Когда](/documents_5/6294a2d0d680c04900a8d9028b8b5332/img29.jpg)
Содержание слайда: Обмен сообщениями
Когда процессы работают на разных машинах, то доступ к одним и тем же данным невозможен
Необходимо организовать передачу данных между процессами параллельной программы
Данные передаются атомарными порциями – сообщениями
Атомарность – сообщение обрабатывается как одно целое
№31 слайд
![Системные API Сокеты](/documents_5/6294a2d0d680c04900a8d9028b8b5332/img30.jpg)
Содержание слайда: Системные API
Сокеты – независимый от протокола интерфейс, который позволяет организовать взаимодействие между процессами в сети
Впервые – BSD 4.2
TCP - гарантированная доставка в потоке
UDP – негарантированная дейтаграмная доставка
RAW – Прямой доступ к заголовкам протоколов
UNIX – сокеты на локальной машине
С сокетами работать также как и с файлами
№32 слайд
![Сокет Серверный процесс](/documents_5/6294a2d0d680c04900a8d9028b8b5332/img31.jpg)
Содержание слайда: Сокет
Серверный процесс
socket() – создание сокета
bind() – назначение адреса
listen() – перевод в режим ожидания входных соединений
accept() – прием входного соединения
Клиентский процесс
socket() – создание сокета
bind() – назначение локального адреса (не обязательно)
connect() – соединение с сервером
Для соединенных сокетов
recv(), read() – получение данных
Send(), write() – отправка данных
№34 слайд
![Синхронный и асинхронный](/documents_5/6294a2d0d680c04900a8d9028b8b5332/img33.jpg)
Содержание слайда: Синхронный и асинхронный обмен
Синхронный вызов –
функции send(), recv(), accept(), connect() блокируются пока не будет выполнена операция
Пока функция не завершится процесс ожидает
При этом снижается эффективность распараллеливания
Асинхронный вызов –
функции send(), recv(), accept(), connect() начинают обмен и передают процессу управление
Процесс сразу же начинает выполнять свои работу
В случае успешного завершения ввода-вывода или ошибки процессу посылается сигнал или процесс сам проверяет состояние операции ввода-вывода
Эффективность параллельной обработки значительно выше
№35 слайд
![API для асинхронных операций](/documents_5/6294a2d0d680c04900a8d9028b8b5332/img34.jpg)
Содержание слайда: API для асинхронных операций ввода-вывода
select(), poll() – проверка состояния сокетов
Функция возвращает может ли блокирующий вызов завершиться без блокировки
Non-block IO – неблокирующий вызов
Сокет переводится в неблокирующее состояние
Функции завершаются сразу же и возвращают состояние операции
Async IO – асинхронный ввод- вывод
Сокет переводится в соответствующее состояние
При возможности неблокирующего ввода-вывода процессу отправляется сигнал
№36 слайд
![Сравнение синхронного и](/documents_5/6294a2d0d680c04900a8d9028b8b5332/img35.jpg)
Содержание слайда: Сравнение синхронного и асинхронного ввода-вывода
Синхронный
Простота программирования
Меньшее количество ошибок
Неэффективен для параллельных программ
Обычно все операции с общей памятью - синхронны
Асинхронный
Сложнее программировать
Больше ошибок
Очень эффективен для параллельных программ
При обмене сообщениями позволяет выполнять вычисления одновременно с передачей
№37 слайд
![Интерфейсы параллельного](/documents_5/6294a2d0d680c04900a8d9028b8b5332/img36.jpg)
Содержание слайда: Интерфейсы параллельного программирования
Часто при написании параллельных программ приходится выполнять сложные операции обмена данными
Передача от одного процесса к другому
Передача от одного процесса всем остальным
Суммирование данных на всех процессах
…
Для этого необходимо разрабатывать свои протоколы и каждый раз программировать сокеты не удобно
Были разработаны специальные интерфейсы, которые рассчитаны на быстрый обмен данными между процессами параллельных программ
№38 слайд
![Message Passing Interface MPI](/documents_5/6294a2d0d680c04900a8d9028b8b5332/img37.jpg)
Содержание слайда: Message Passing Interface (MPI)
MPI - стандарт интерфейса (middleware) обмена сообщениями для компьютеров с распределенной памятью
MPI программа состоит из нескольких процессов, которые взаимодействуют между собой с помощью вызовов библиотечных функций MPI
MPI скрывает от пользователя низкоуровневые детали программирования, такие как программирование сокетов, обработка ошибок приема-передачи, сериализацию и др.
MPI предоставляет функции для осуществления взаимодействия точка-точка, коллективных взаимодействий, других операций ввода-вывода
№40 слайд
![Основные определения Процесс](/documents_5/6294a2d0d680c04900a8d9028b8b5332/img39.jpg)
Содержание слайда: Основные определения
Процесс
Программа, которая выполняет свой код
Процесс характеризуется только своим номером в группе
Группы процессов
Процессы можно группировать по любому признаку
Коммуникаторы
Группы процессов, которые используются для определения номера при взаимодействиях
Вначале определен MPI_COMM_WORLD
Новые коммуникаторы можно создавать используя существующие
Топологии
Соответствие номера процесса в коммуникаторе узлу топологии
№41 слайд
![Разработка и запуск MPI](/documents_5/6294a2d0d680c04900a8d9028b8b5332/img40.jpg)
Содержание слайда: Разработка и запуск MPI программ
Пользователь разрабатывает программу с MPI вызовами
Программа компилируется и компонуется с соответствующими библиотеками
Запуск программ на удаленных машинах выполняется через rsh,ssh
Все программы выполняют один и тот же код, или разный код
№42 слайд
![Пример MPI программы int main](/documents_5/6294a2d0d680c04900a8d9028b8b5332/img41.jpg)
Содержание слайда: Пример MPI программы
int main(int argc, char* argv[]){
int my_number; //Мой номер процесса
int proc_num; //общее количество процессов
int data; //данные, получаемые от других процессов
int i; //парамтер цикла
MPI_Init(&argc, &argv);
MPI_Comm_size(MPI_COMM_WORLD, &proc_num);
MPI_Comm_rank(MPI_COMM_WORLD, &my_number);
printf("I an process %d, sending data\n", my_number);
MPI_Send((void*)&my_number,1,MPI_INT,0,0,MPI_COMM_WORLD);
if(!my_number){
printf ("MPI %d processes\n Am root, reciving data, \n",proc_num);
for (i = 0; i<proc_num; i++){
MPI_Recv((void*)&data,1,MPI_INT,i,0,MPI_COMM_WORLD, NULL);
printf ("Am root, recived data %d from %d \n",data,i);
}
}
MPI_Finalize();
return 0;
}
№43 слайд
![Результат работы MPI](/documents_5/6294a2d0d680c04900a8d9028b8b5332/img42.jpg)
Содержание слайда: Результат работы MPI программы
[saa@cluster mpi]$ mpirun -np 10 ./a.out
I an process 0, sending data
MPI 10 processes
Am root, reciving data,
Am root, recived data 0 from 0
Am root, recived data 1 from 1
Am root, recived data 2 from 2
I an process 1, sending data
I an process 2, sending data
I an process 3, sending data
I an process 4, sending data
I an process 5, sending data
I an process 6, sending data
I an process 8, sending data
I an process 9, sending data
Am root, recived data 3 from 3
Am root, recived data 4 from 4
Am root, recived data 5 from 5
Am root, recived data 6 from 6
Am root, recived data 7 from 7
Am root, recived data 8 from 8
Am root, recived data 9 from 9
I an process 7, sending data
№45 слайд
![Parallel Virtual Machine PVM](/documents_5/6294a2d0d680c04900a8d9028b8b5332/img44.jpg)
Содержание слайда: Parallel Virtual Machine (PVM)
PVM – программные средства для создания параллельных вычислительных комплексов на базе коллекции гетерогенных компьютеров, связанных друг с другом
В отличие от MPI – PVM не только средство взаимодействия, но и средства управления процессами (MPI-2 такж)
№46 слайд
![Основные компоненты](/documents_5/6294a2d0d680c04900a8d9028b8b5332/img45.jpg)
Содержание слайда: Основные компоненты
Платформенно независимый протокол обмена и методы сериализации
Библиотека libpvm3 с которой компилируются программы и которая должна быть скомпилирована под все поддерживаемые платформы
Демон pvmd, работающий на каждой машине
Пользовательские программы, использующие библиотечные вызовы
№48 слайд
![Принцип создания параллельных](/documents_5/6294a2d0d680c04900a8d9028b8b5332/img47.jpg)
Содержание слайда: Принцип создания параллельных программ
Пользователь компилирует для всех платформ одну или несколько программ
Программы помещаются каждая в свой каталог для разных платформ
В каждой программе используются вызовы PVM
Запуск программ выполняется через демона pvmd
Запуск демона pvmd через rsh, ssh
№49 слайд
![Пример запуска машины PVM saa](/documents_5/6294a2d0d680c04900a8d9028b8b5332/img48.jpg)
Содержание слайда: Пример запуска машины PVM
[saa@cluster mpi]$ pvm
pvmd already running.
pvm> conf
conf
1 host, 1 data format
HOST DTID ARCH SPEED DSIG
cluster.univ.kiev.ua 40000 LINUXI386 1000 0x00408841
pvm> add s15
add s15
1 successful
HOST DTID
s15 1c0000
pvm> conf
conf
2 hosts, 2 data formats
HOST DTID ARCH SPEED DSIG
cluster.univ.kiev.ua 40000 LINUXI386 1000 0x00408841
s15 1c0000 LINUXX86_64 1000 0x00408c41
pvm>
№50 слайд
![Пример PVM программы include](/documents_5/6294a2d0d680c04900a8d9028b8b5332/img49.jpg)
Содержание слайда: Пример PVM программы
#include <stdio.h>
#include <pvm3.h>
#include <unistd.h>
int main(int argc, char* argv[]){
int p_tid, c_tid;
int res;
char message[4096];
p_tid = pvm_mytid();
if(argc < 2) { // child
p_tid = pvm_parent();
pvm_initsend(PvmDataDefault);
gethostname(message,4095);
pvm_pkstr(message);
pvm_send(p_tid,1);
pvm_exit();
} else { // parent
p_tid = pvm_mytid();
res = pvm_spawn("test_pvm",NULL,0,"",1,&c_tid);
if(res == 1){
pvm_recv(c_tid,1);
pvm_upkstr(message);
printf("Child is working at %s\n",message);
pvm_exit();
}
}
return 0;
}
№51 слайд
![Языки рассчитанные на](/documents_5/6294a2d0d680c04900a8d9028b8b5332/img50.jpg)
Содержание слайда: Языки рассчитанные на параллельное программирование
Обычно являются расширением к какому-либо из широко используемых языков и использую MPI, PVM, OpenMP
mpC
HPF – High Performance Fortran
Компиляторы с автораспараллеливанием
Модифицируют код
Вставляют библиотечные вызовы в код
Обычно не эффективны
Скачать все slide презентации Технологии параллельных вычислений одним архивом:
Похожие презентации
-
Технологии параллельных и распределенных вычислений
-
Облачные технологии (вычисления)
-
Введение в параллельные и распределенные вычисления
-
Моделирование и анализ параллельных вычислений.
-
Моделирование и анализ параллельных вычислений. Коммуникационная трудоемкость параллельных алгоритмов.
-
Технология разработки параллельных программ для МВС с распределенной памятью
-
Інноваційна діяльність Технологічний та методичний аспекти впровадження інновацій у закладах та установах освітньої галузі - пре
-
Веб 2. 0 – технологии в образовании Введение в проблематику. - презентация
-
1 Эффективные технологии поиска информации в Интернет, средства ее хранения и обработки на компьютере Доцент кафедры «Теплофизика
-
Информационные технологии в образовательном процессе Григорьева Светлана Владиславовна, к. ф. -м. н, доцент. - презентация