русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Вопросы по параллельным вычислениям


Дата добавления: 2015-01-16; просмотров: 1516; Нарушение авторских прав


1. Виды параллельной обработки данных, их особенности.

2. История появления параллелизма в архитектуре ЭВМ.

3. Основные классы современных параллельных вычислительных систем.

4. Параллелизм на уровне машинных команд, суперскалярные и VLIW процессоры.

5. Процессы и стратегия управления памятью

6. Потоки и стратегия управления временем процессоров

7. Процессы, потоки и данные

8. Циклы. Чистка цикла. Распараллеливание цикла

9. Потоки и параллельные вычисления!

10. Создание потоков - объектов класса Thread

11. Запуск потока. Состояние "ожидание"!

12. UMA, NUMA и ccNUMA архитектуры, компьютеры Cm*, BBN Butterfly.

13. Соотношение между понятиями: устройство, операция, обработка и их характеристиками: скалярный, векторный, конвейерный.

14. Общая структура компьютера CRAY C90.

15. Закон Амдала, секционирование векторных операций, время разгона конвейера.

16. Вычислительные кластеры: узлы, коммуникационная сеть (латентность, пропускная способность).

17. Метакомпьютер и метакомпьютинг. Отличительные свойства метакомпьютеров.

18. Оценки быстродействия вычислительных систем. Тесты производительности сети. Тесты производительности файловой системы. Тесты производительности процессора. Комбинированные тесты

19. Классификация параллельных вычислительных систем. Классификация Флинна. Дополнения Ванга и Бриггса к классификации Флинна

20. Классификация параллельных вычислительных систем. Классификация Фенга. Классификация Шора. Классификация Хендлера.

21. Классификация параллельных вычислительных систем. Классификация Хокни. Классификация Шнайдера. Классификация Джонсона. Классификация Базу

22. Классификация параллельных вычислительных систем. Классификация Кришнамарфи. Классификация Скилликорна. Классификация Дазгупты. Классификация Дункана.



23. Принципы разработки современных параллельных компьютеров.

24. Параллелизм на уровне команд. Конвейеры.

25. Суперскалярные архитектуры.

26. Параллелизм на уровне процессоров. Массивно-парралельные процессоры.

27. Поддержка параллельного программирования в WIN32API. Многозадачность и средства синхронизации.

28. Архитектура контроллеров памяти и организация доступа к данным в многопроцессорных системах. (EREW, CREW, ERCW, CRCW системы)

29. Умножение матриц. Алгоритм Штрассена. Операции с блочными матрицами.

30. Принципы построения параллельных вычислительных систем. Пути достижения параллелизма

31. Характеристика типовых схем коммуникации в многопроцессорных вычислительных системах

32. Моделирование и анализ параллельных вычислений! Модель вычислений в виде графа "операции-операнды"

33. Описание схемы параллельного исполнения алгоритма!

34. Определение времени выполнения параллельного алгоритма

35. Показатели эффективности параллельного алгоритма!

36. Оценка коммуникационной трудоемкости параллельных алгоритмов. Характеристики топологии сети передачи данных

37. Общая характеристика механизмов передачи данных. Алгоритмы маршрутизации. Методы передачи данных!

38. Анализ трудоемкости основных операций передачи данных.

Передача данных между двумя процессорами сети.

Передача данных от одного процессора всем остальным процессорам сети

Передача данных от всех процессоров всем процессорам

Обобщенная передача данных от одного процессора всем остальным процессорам сети

Обобщенная передача данных от всех процессоров всем процессорам сети

Циклический сдвиг

39. Методы логического представления топологии коммуникационной среды. Представление кольцевой топологии в виде гиперкуба. Отображение топологии решетки на гиперкуб

40. Оценка трудоемкости операций передачи данных для кластерных систем

41. Параллельные численные алгоритмы для решения типовых задач вычислительной математики. Вычисление частных сумм последовательности числовых значений

Последовательный алгоритм суммирования

Каскадная схема суммирования

Модифицированная каскадная схема

Вычисление всех частных сумм

42. Умножение матрицы на вектор

Достижение максимально возможного быстродействия

Использование параллелизма среднего уровня

Организация параллельных вычислений при p = n

Использование ограниченного набора процессоров

43. Матричное умножение

Макрооперационный анализ алгоритмов решения задач

Организация параллелизма на основе разделения данных

44. Сортировка. Параллельное обобщение базовой операции сортировки

Пузырьковая сортировка. Сортировка Шелла. Быстрая сортировка

45. Обработка графов. Нахождение минимально охватывающего дерева. Поиск кратчайших путей

46. Модели функционирования параллельных программ. Концепция процесса. Понятие ресурса!

47. Организация программ как системы процессов. Взаимодействие и взаимоисключение процессов

48. Учебно-практическая задача: Решение дифференциальных уравнений в частных производных. Последовательные методы решения задачи Дирихле

49. Организация параллельных вычислений для систем с общей памятью

Использование OpenMP для организации параллелизма

Проблема синхронизации параллельных вычислений

Возможность неоднозначности вычислений в параллельных программах

Проблема взаимоблокировки

Исключение неоднозначности вычислений

Волновые схемы параллельных вычислений

Балансировка вычислительной нагрузки процессоров

50. Организация параллельных вычислений для систем с распределенной памятью. Разделение данных

Обмен информацией между процессорами

Коллективные операции обмена информацией

Организация волны вычислений

Блочная схема разделения данных

Оценка трудоемкости операций передачи данных

 

Ответы

..Закон Амдала
Перед началом проекта по параллелизации разработчику может быть интересно оценить ускорение, которое он теоретически сможет достичь. Если процент последовательного кода, который можно исполнять параллельно, известен (или оценен), то он может использовать закон Амдала для расчёта верхней границы ускорения приложения без необходимости предварительного написания какого-либо параллельного кода. В литературе присутствуют несколько вариантов формулы закона Амдала. В каждой из них используется процент (предполагаемого) времени параллельного выполнения (pctPar), последовательного выполнения (1 – pctPar), и количество потоков/ядер (p). Ниже приведена простая формулировка закона Амдала для расчёта ускорения параллельного приложения на pядрах:

Данная формула представляет собой время последовательного выполнения, нормализованное до 1 и деленное на расчётное время параллельного выполнения с использованием процента нормализованного времени последовательного выполнения. Время параллельного выполнения рассчитывается как процент последовательного выполнения (1 – pctPar) и процент параллельного выполнения, деленные на количество используемых ядер (pctPar/p). Например, если 95% времени последовательного выполнения может выполняться параллельно на 8 ядрах, то оценочное ускорение, согласно закону Амдала, составит около 6x (1 / (0.05 + 0.95/8) = 5.925).
В дополнение к отношению меньше или равно (≤) в формуле, формулировка закона Амдала подразумевает, что вычисления, которые можно выполнять параллельно, будут делиться на бесконечное количество ядер. Такое предположение удаляет второй член знаменателя, что означает, что наивысшее возможное ускорение просто равно инверсии остаточного последовательного выполнения.
Закон Амдала часто критикуют за игнорирование издержек при коммуникацию, синхронизацию и других действий по управлению потоками, а также за предположение о бесконечном количестве процессоров. В дополнение к игнорированию издержек, присущих параллельным алгоритмам, одним из самых сильных замечаний является то, что при увеличении количества ядер количество обрабатываемых данных также обычно увеличивается. Закон Амдала подразумевает использование фиксированного набора данных при любом количестве ядер, и что процент времени последовательного выполнения останется одним и тем же.

 

#######################################################################################

..Классификация параллельных архитектур по Флинну

Классификация по Флинну
  Одиночный поток команд (Single Instruction) Множество потоков команд (Multiple Instruction)
Одиночный поток данных (Single Data) SISD (ОКОД) MISD (МКОД)
Множество потоков данных (Multiple Data) SIMD (ОКМД) MIMD (МКМД)

Основная статья: Таксономия Флинна

Общая классификация архитектур ЭВМ по признакам наличия параллелизма в потоках команд и данных.Была предложена в 70-е годы Майклом Флинном (Michael Flynn). Все разнообразие архитектур ЭВМ в этойтаксономии Флинна сводится к четырем классам:

· ОКОД — Вычислительная система с одиночным потоком команд и одиночным потоком данных
(SISD, Single Instruction stream over a Single Data stream).

· ОКМД — Вычислительная система с одиночным потоком команд и множественным потоком данных
(SIMD, Single Instruction, Multiple Data).

· МКОД — Вычислительная система со множественным потоком команд и одиночным потоком данных
(MISD, Multiple Instruction Single Data).

· МКМД — Вычислительная система со множественным потоком команд и множественным потоком данных
(MIMD, Multiple Instruction Multiple Data).

Типичными представителями SIMD являются векторные архитектуры. К классу MISD ряд исследователейотносит конвейерные ЭВМ, однако это не нашло окончательного признания, поэтому можно считать, чтореальных систем — представителей данного класса не существует. Класс MIMD включает в себямногопроцессорные системы, где процессоры обрабатывают множественные потоки данных.

Отношение конкретных машин к конкретному классу сильно зависит от точки зрения исследователя. Так,конвейерные машины могут быть отнесены и к классу SISD (конвейер — единый процессор), и к классу SIMD(векторный поток данных с конвейерным процессором) и к классу MISD (множество процессоров конвейераобрабатывают один поток данных последовательно), и к классу MIMD — как выполнение последовательностиразличных команд (операций ступеней конвейера) на множественным скалярным потоком данных (вектором).



<== предыдущая лекция | следующая лекция ==>
Анализ трудоемкости операций над рассеянной таблицей | Классификация Хэндлера


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.629 сек.