Технический прогресс, несомненно, сказывается на увеличении частоты работы
элементной базы, на повышении степени интеграции, но технический же прогресс
приводит к появлению все новых задач, требующих еще более значительного роста
производительности вычислительных средств. Это можно считать законом,
приводящим к новым уловкам при
Под
Важным революционизирующим моментом стал переход на микропроцессорную элементную базу, обусловившую построение мультимикропроцессорных ВС для параллельной обработки информации или компьютерных сетей для распределенной обработки информации.
Основная сложность распараллеливания заключается в соблюдении частичной
упорядоченности распределяемых работ. Поэтому решение
Необходимость оперативного решения сложных задач стимулирует усилия по
разработке дорогих и уникальных
Сетью ЭВМ называется комплекс территориально рассредоточенных ЭВМ и
Сейчас сложилась такая практика, что с сетями ЭВМ связывают более общее понятие — информационная система. Однако изначально целью создания сетей ЭВМ было:
Таким образом, все большую актуальность обретает задача расширения
возможностей сетей ЭВМ за счет возложения на них функций распределенных вычислительных
комплексов для решения задач высокой сложности. На первом этапе речь может идти
о локальных сетях (ЛВС), обладающих наиболее оперативным обменом. По-видимому,
рано говорить о массовом применении сетей для решения задач управления в
реальном масштабе времени, здесь требуемая оперативность обмена может быть не достигнута
на уровне современных сетевых технологий. Однако в рамках современных
представлений о сложности алгоритмов (например, о
Чтобы избежать здесь голословных лозунгов, необходимо создавать и накапливать опыт решения сложных задач в компьютерных сетях. Такой подход позволит выявить и сформировать технологию подготовки и программирования подобных задач, поможет сформулировать требования к развитию аппаратных, программных и языковых средств, покажет область эффективного применения сетевых технологий решения задач.
Сказанное выше тем более важно сейчас, когда умы охватывает идея
Ранее уже использовалось понятие сложности. Рассмотрим его полнее.
Пусть задан некоторый алгоритм A. Почти всегда существует
параметр n, характеризующий объем его данных. Пусть функция T(n) — время
выполнения A, а f —
некоторая функция от n. Говорят, что алгоритм A
имеет теоретическую (асимптотическую) сложность O(f(n)), если
$$\frac{T(n)}{f(n)} \xrightarrow[n\rightarrow\infty]{}k$$,
где k — действительное.
Если алгоритм выполняется за фиксированное время, не зависящее от размера
задачи, говорят, что его сложность равна O (1).
Это определение обобщается в случае, если время выполнения существенно
зависит от нескольких параметров. Например, алгоритм, определяющий, входит ли множество m элементов в множество n элементов, может иметь, в
зависимости от используемых структур данных, сложность O (m n) или O (m+n).
Практически время выполнения алгоритма может зависеть от значений данных. Так, время выполнения некоторых алгоритмов сортировки существенно сокращается, если первоначально эти данные были частично упорядочены. Чтобы учитывать это, сохраняя возможность анализировать алгоритм независимо от их данных, различают:
Tmax(n) — время
выполнения алгоритма, когда выбранный набор n данных порождает наиболее
долгое время выполнения алгоритма;Tср(n) — средним временем
выполнения алгоритма, примененного к n произвольным данным.Эти понятия без труда распространяются на измерение сложности в единицах объема памяти: можно говорить о средней и максимальной пространственной сложности.
Самыми лучшими являются an=b. Они называются также алгоритмами порядка O(n) где n
— размерность входных данных. Такие алгоритмы действительно существуют. Например, сложение двух чисел
столбиком в случае, если одно из них состоит из n, а другое — из m цифр, требует не более max(n, m) сложений и не более max(n, m) запоминаний.
Т.е. данный алгоритм имеет сложность порядка O(n+m). Разумеется, это выражение показывает
только порядок величины — постоянные факторы в нем не учитываются.
Обобщение линейности дает нам первый большой класс алгоритмов —
Полиномиальным (или алгоритмом полиномиальной временной сложности)
называется алгоритм, у которого временная сложность есть O(p(n)), где p(n) — полином от n. Задачи, где для решения известен алгоритм, сложность которого составляет
полином заданной, постоянной и не зависящей от размерности входной величины n степени,
называют "хорошими" и относят их к классу P.
Экспоненциальной по природе считается задача сложностью не менее порядка xn, где x — константа или полином от n. Например, это
задачи, в которых возможное число ответов уже экспоненциально. В частности, к ним относятся задачи, где
требуется построить все подмножества заданного множества или все поддеревья
заданного графа. Экспоненциальные задачи относят к классу E.
Соответственно, и алгоритмы, в оценку сложности которых n
входит в показатель степени, относятся к
Необходимо отметить, что при небольших значениях n
экспоненциальный алгоритм может быть даже менее сложным, чем полиномиальный. Тем не менее, различие между
этими типами алгоритмов весьма велико и проявляется при больших значениях n.
Особую группу по значениям сложности, близким к полиномиальным, составляют
алгоритмы, сложность которых является полиномиальной функцией от log n (поскольку log n растет медленнее, чем n ).
Для большей убедительности и сравнения полиномиальных и экспоненциальных
алгоритмов приведем таблицу, где единица времени — 1 мкс, а сложность
совпадает с необходимым количеством единиц времени для обработки набора n данных:
| Сложность | Размер задачи — n | |||||
|---|---|---|---|---|---|---|
| 10 | 20 | 30 | 40 | 50 | 60 | |
| n | 0.00001 с | 0.00002 с | 0.00003 с | 0.00004 с | 0.00005 с | 0.00006 с |
| n $${}^2$$ | 0.0001 с | 0.0004 с | 0.0009 с | 0.0016 с | 0.0025 с | 0.0036 с |
| n $${}^3$$ | 0.001 с | 0.008 с | 0.027 с | 0.064 с | 0.125 с | 0.216 с |
| n5 | 0.1 с | 3.2 с | 24.3 с | 1.7 мин | 5.2 мин | 13.0 мин |
| 2n | 0.01 с | 1.0 с | 17.9 мин | 12.7 дней | 35.7 лет | 366 веков |
| 3n | 0.59 с | 58 мин | 6.5 лет | 3855 веков | 2x108 веков | 1.3x1013 веков |
Приведенная таблица иллюстрирует причины, по которым полиномиальные алгоритмы считаются более предпочтительными, чем экспоненциальные.
Уточним понятие сложности для итеративных и рекурсивных алгоритмов.
Отнесем к итеративным алгоритмам и те, к которым сводятся рекурсивные
алгоритмы (например, вычисление факториала n!). Тогда время их выполнения
(в случае сходящегося процесса) зависит от главного условия повторения итерации,
например, от требуемой точности. Если мы установим время или сложность одной итерации, то
сможем умножением на число итераций установить максимальную или среднюю
сложность. Число итераций устанавливается теоретически или экспериментально. Например, так
можно сделать при расчете значений функций по их
Однако иногда приходится решать оптимизационную задачу, выбирая между сложностью одной итерации и количеством итераций.
Для большинства конечно-разностных схем O(n2) или O(n x m), где n2 — количество узлов при
равном разбиении по x и по y,
а nx m — то же
количество при различающемся разбиении по осям. Увеличение количества узлов,
покрывающих ту же область, т.е. уменьшение hx и hy, увеличивает скорость
сходимости - и, соответственно, уменьшает число итераций, но сложность каждой
итерации растет квадратично. Значит, необходим компромисс, который достигается
посредством изучения поведения процесса, как на теоретическом, так и на
экспериментальном уровне, вплоть до автоматической коррекции шагов в процессе
вычислений в зависимости от локального поведения аппроксимаций производных.
Т.е. шаги становятся непостоянными во всей области.
Однако по своей природе действительно рекурсивные алгоритмы по сложности относятся к классу экспоненциальных алгоритмов. Как правило, это задачи оптимизации, основанные на переборе (алгоритмы с возвратом, метод "ветвей и границ").
Имеется широко распространенное соглашение, по которому задача не считается
"хорошо решаемой", пока для нее не получен полиномиальный
алгоритм. Задача называется
Эта градация относительна, ибо сложность определяется по наихудшему
варианту. Хотя реализация метода "ветвей и границ" — труднорешаемая задача
(при теоретической оценке по
Однако есть понятие
Полиномиальные по сложности алгоритмы относят к классу P -сложных. Среди экспоненциальных выделяют алгоритмы, основанные на переборе, и их относят
в класс NP -сложных. Т.е. формально возможно существование
экспоненциальных алгоритмов, основанных не на переборе. Например, n!, растущий
быстрее, чем 2n.
К NP -сложным относятся, например, задачи линейного целочисленного
программирования, составление расписания, поиск кратчайшего пути в лабиринте и
т.д. Обратим внимание, что все это так называемые дискретные задачи — на
основе "неделимых" объектов.
В данном контексте мы и будем понимать термин "задача высокой сложности", представляя важность применения методов распараллеливания.
В связи с распространением персональных компьютеров и созданием на их основе автоматизированных рабочих мест (АРМ) возросло значение локальных вычислительных сетей (ЛВС). Правильно организованная и умело эксплуатируемая сеть обеспечивает целый ряд преимуществ по сравнению с отдельным компьютером.
Локальные сети имеют некоторые особенности.
Главная из них — это связь. Она должна быть быстрой, надежной и удобной.
Обычно, локальные сети не выходят за пределы нескольких комнат или одного здания,
поэтому
При построении сетей ЭВМ, в т.ч. локальных, говорят о их топологии.
(рис 3.1) Сеть типа "звезда"
(рис 3.2) "Кольцевая" сеть
Эта топология допускает большое число абонентов, причем возможно изменение
их количества. В кольце происходит автоматическое усиление передаваемого сигнала
каждым абонентом, поэтому его
(рис 3.3) Сеть с общей шиной
Существуют также
| Параметры | Звезда | Кольцо | Шина |
|---|---|---|---|
| 1. Отказоустойчивость | Выход из строя одного PC не влияет на работоспособность сети | Выход из строя одного PC может вывести из строя всю сеть | Выход из строя кабеля останавливает работу многих пользователей |
| 2. Количество абонентов | 16 | 1024 и выше | 1024 и выше |
| 3. Изменение количества абонентов | Возможно | Требует остановки всей сети | Легко изменяется |
| 4. Влияние на общую стоимость сети | Дополнительные затраты на центральный компьютер | Дополнительные затраты на адаптер, выполняющий функции диспетчера сети | Дешевая среда передачи |
| 5. Возможность управления обменом | Централизованное | Централизованное и децентрализованное | Децентрализованное |
| 6. Особенности | Мощность всей сети зависит от сервера | Количество пользователей не оказывает сильного влияния на производительность. Трудно локализовать проблемы | Оптоволоконные кабели не применяются. При значительных объёмах трафика уменьшается пропускная способность. Трудно локализовать проблемы. |
| 7. Протяженность | До нескольких десятков километров | ||
| 8. Применение | В зависимости от предъявляемых требований | ||
Для организации распределенных вычислений необходимо выбрать такую топологию сети, которая поддерживает равноправную, "симметричную" связь "каждый с каждым". Среди рассмотренных топологий таким требованиям в максимальной степени соответствует шинная архитектура. Преимущества этой архитектуры отображены исторически при практическом объединении ЭВМ в распределенные вычислительные комплексы для совместного решения сложных задач.
В этой топологии (рис. 3.4) возможно такое же централизованное управление, как и в "звезде" (т.е. физически сеть — "шина", но логически — "звезда"). При этом один из абонентов ("центральный") посылает всем остальным ("периферийным") запросы, выясняя, кто хочет передать, и затем разрешает передать одному из них. После окончания передачи абонент сообщает "центру", что он закончил, и "центр" снова начинает опрос. Все преимущества и недостатки такого управления - те же, что и в случае "звезды". Единственное отличие в том, что центр не перекачивает информацию от одного абонента другому, а только управляет доступом.
(рис 3.4) Сеть с общей шиной — логическая "звезда"
Однако чаще в "шине" реализуется децентрализованное управление, так как аппаратные средства абонентов одинаковые. При этом все абоненты также имеют равный доступ к сети, и решение, когда можно передавать, принимается каждым абонентом на месте, исходя из анализа состояния сети. Возникает конкуренция между абонентами за захват сети, и, следовательно, возможны конфликты между ними и искажения передаваемых данных из-за наложения пакетов.
Существует множество алгоритмов (сценариев) доступа, часто очень сложных. Их выбор зависит от скорости передачи в сети, от длины шины, загруженности сети (интенсивности обмена или трафика сети). Иногда для управления доступом к шине используется дополнительная линия связи. Это упрощает аппаратуру контроллеров и методы доступа, но заметно увеличивает стоимость сети в целом за счет удвоения длины кабеля и количества приемопередатчиков. Поэтому данное решение не получило широкого распространения.
Можно отметить ряд существующих методов обмена в сетях шинной архитектуры.
Второй метод, используемый в шине, — децентрализованный временной
приоритетный арбитраж или метод доступа (рис. 3.5). Этот 2L/V ( L
— полная длина сети, V — скорость распространения сигнала в используемом кабеле),
или минимальная задержка составит 8 мкс. Следовательно, для абонента с сетевым адресом
255 задержка будет уже равна 255*8мкс=2040 мкс, т.е. около 2 мс, что уже
довольно существенно. Для сравнения: если пакет имеет размер 1 Кбайт, то при
скорости передачи 10 Мбит/с его длительность будет всего 0,8 мс. Данный метод
не имеет жесткой привязки к коду передачи информации (в предыдущем методе
можно было использовать
(рис 3.5) Обмен методом доступа
Третий метод, получивший довольно широкое распространение, можно считать
развитием второго. Называется он CSMA/CD (Carrier-Sense Multiple
Access/
К достоинствам метода CSMA/CD можно отнести полное равноправие всех
абонентов, то есть ни один из них не может надолго захватить сеть. Метод достаточно
надежен: ведь в течение всего времени передачи пакета идет контроль столкновений. К
недостаткам метода относится то, что он не исключает повторения столкновений,
а также плохо держит высокую нагрузку в сети. Обычно считается, что он хорош
только до тех пор, пока нагрузка не превышает 30%, то есть только 30%
времени сеть занята, а 70% времени — свободна. Для сети
В настоящее время разными фирмами разработаны стандарты ЛВС, поддержанные
аппаратно и программно. Наиболее распространенным стандартом, соответствующим
требованиям режима вычислительного комплекса, является локальная сеть
На базе
Применяется топология "шина", т.е.:
Для организации взаимодействия станций в сети используется метод
Распараллеливание метода "сеток" с очевидностью адекватно второму способу распараллеливания, что и должно определить направление поиска. То есть можно с уверенностью заявить, что распределение узлов сетки между процессорами ВС (распараллеливание по информации), ЭВМ вычислительного комплекса или рабочих станций сети является эффективным способом параллельного решения системы дифференциальных уравнений в конечных разностях.
В лекции 1 рассматривался пример решения уравнения в частных производных. Далее на этом примере будут показаны схемы возможной реализации метода сеток в ЛВС.
По рис. 1.12 из курса "Архитектура параллельных вычислительных систем" мы можем полностью представить различные планы параллельного решения рассмотренной задачи.
Другая стратегия распределения узлов между процессорами может быть основана
на делении области задания функции между процессорами. Т.е. вся область D на рис. 1.12 из курса "Архитектура параллельных вычислительных систем" может быть разделена поровну между процессорами ВС или станциями сети.
Третья стратегия может предусматривать нумерацию процессоров, превращение
многомерного (в примере — двумерного) массива узлов сетки в одномерный
линейный и назначение каждого узла на процессор с номером, равным остатку от деления его
номера на число используемых процессоров. Эта стратегия, в наибольшей степени
обеспечивающая инвариантность программы счета относительно числа узлов и числа
используемых процессоров, соответствует рассмотренной ранее
Равноправие процессоров (симметричность) делают целесообразным использование
шинной архитектуры ЛВС. (Отметим, что на ранней стадии построения
вычислительных комплексов применялась именно шинная архитектура, как
наиболее простая и естественная. То же можно отметить и относительно многих
современных и перспективных мультимикропроцессорных систем.) Распространенным
стандартом такой архитектуры, обусловившим разработку широкой номенклатуры
аппаратных средств, является сеть ETHERNET. Параллельный вычислительный
процесс должен воспроизводить технологию
Тогда организация параллельной обработки информации и схема вычислений должна быть следующей.
n " каждый из них оказывается закрепленным
за станцией с тем же номером. Это в точности соответствует технологии Рассмотрим конкретный возможный план решения рассмотренной выше задачи
методом "сеток". Для простоты положим число используемых процессоров
равным 2. В основу плана положим способ D между процессорами
поровну. Зафиксируем hx = hy = h, определив тем самым количество узлов
сетки в каждой строке и в каждом столбце. На рисунке 3.6 отражены выбранные количества узлов
в строках и столбцах. Первая и последняя строка, как и первый и последний
столбец, соответствуют узлам, в которых заданы граничные значения
функции-решения.
(рис 3.6) Распределение данных между двумя процессорами для решения задачи методом "сеток"
Область D1, обрабатываемая процессором 1, определяется
границами индекса i и координаты x:$$\begin{align*}
0 \le i \le \left [\frac{n}{2}\right] \\
0 \le x \le \left [\frac{n}{2}\right]\cdot h
\end{align*}$$
Область D2, обрабатываемая процессором 2, определяется
границами индекса i и координаты x:$$\begin{align*}
\left [\frac{n}{2}\right] + 1 \le i \le - 1 \\
\left (\left [\frac{n}{2}\right] + 1\right)\cdot h \le x \le (n -
1)h = A
\end{align*}$$
По второй координате 0 <= y <=t (m - 1)h = B.
На рисунке показана передача промежуточных значений узлов процессором процессору для счета узлов, использующих эти значения. Такая передача может осуществляться либо непосредственно после нахождения очередного приближения значения функции в узле, либо после очередной итерации — для всех необходимых значений сразу. Второй способ может значительно сократить время выполнения обмена, хотя задерживает использование узлов.
Важен выбор способа нахождения начального значения функции — решения в узлах. Этот выбор влияет на скорость сходимости решения.
В соответствии с граничными условиями
fi0 = f1(ih,0) i = 0, ..., n - 1,
fi,m-1 = f2(ih,(m-1)h=B) i = 0, ..., n - 1,
f0j = f3(0,jh) j = 0, ..., m - 1,
fn-1,j = f4((n-1)h=A,j) j = 0, ..., m - 1.
Нулевое приближение значений fij может быть рассчитано по
формулам интерполяции
с усреднением:$$\begin{align*}
f_{ij} = \frac{1}{2} \left[ \left( \frac {f_{n-1,j}-f_{0,j}}{n-1}\cdot
i+f_{0,j}\right)+\left( \frac {f_{i,m-1}-f_{i,0}}{m-1}\cdot
j+f_{i,0}\right)\right]
\end{align*}$$
для всех 0 < i < A, 0 < j < B.
Итерационная формула имеет общий вид fij = F(fi-1,j,
fi+1,j, fi,j-1, fi,j+1).
Технический прогресс, несомненно, сказывается на увеличении частоты работы
элементной базы, на повышении степени интеграции, но технический же прогресс
приводит к появлению все новых задач, требующих еще более значительного роста
производительности вычислительных средств. Это можно считать законом,
приводящим к новым уловкам при
Под
Важным революционизирующим моментом стал переход на микропроцессорную элементную базу, обусловившую построение мультимикропроцессорных ВС для параллельной обработки информации или компьютерных сетей для распределенной обработки информации.
Основная сложность распараллеливания заключается в соблюдении частичной
упорядоченности распределяемых работ. Поэтому решение
Необходимость оперативного решения сложных задач стимулирует усилия по
разработке дорогих и уникальных
Сетью ЭВМ называется комплекс территориально рассредоточенных ЭВМ и
Сейчас сложилась такая практика, что с сетями ЭВМ связывают более общее понятие — информационная система. Однако изначально целью создания сетей ЭВМ было:
Таким образом, все большую актуальность обретает задача расширения
возможностей сетей ЭВМ за счет возложения на них функций распределенных вычислительных
комплексов для решения задач высокой сложности. На первом этапе речь может идти
о локальных сетях (ЛВС), обладающих наиболее оперативным обменом. По-видимому,
рано говорить о массовом применении сетей для решения задач управления в
реальном масштабе времени, здесь требуемая оперативность обмена может быть не достигнута
на уровне современных сетевых технологий. Однако в рамках современных
представлений о сложности алгоритмов (например, о
Чтобы избежать здесь голословных лозунгов, необходимо создавать и накапливать опыт решения сложных задач в компьютерных сетях. Такой подход позволит выявить и сформировать технологию подготовки и программирования подобных задач, поможет сформулировать требования к развитию аппаратных, программных и языковых средств, покажет область эффективного применения сетевых технологий решения задач.
Сказанное выше тем более важно сейчас, когда умы охватывает идея
Ранее уже использовалось понятие сложности. Рассмотрим его полнее.
Пусть задан некоторый алгоритм A. Почти всегда существует
параметр n, характеризующий объем его данных. Пусть функция T(n) — время
выполнения A, а f —
некоторая функция от n. Говорят, что алгоритм A
имеет теоретическую (асимптотическую) сложность O(f(n)), если
$$\frac{T(n)}{f(n)} \xrightarrow[n\rightarrow\infty]{}k$$,
где k — действительное.
Если алгоритм выполняется за фиксированное время, не зависящее от размера
задачи, говорят, что его сложность равна O (1).
Это определение обобщается в случае, если время выполнения существенно
зависит от нескольких параметров. Например, алгоритм, определяющий, входит ли множество m элементов в множество n элементов, может иметь, в
зависимости от используемых структур данных, сложность O (m n) или O (m+n).
Практически время выполнения алгоритма может зависеть от значений данных. Так, время выполнения некоторых алгоритмов сортировки существенно сокращается, если первоначально эти данные были частично упорядочены. Чтобы учитывать это, сохраняя возможность анализировать алгоритм независимо от их данных, различают:
Tmax(n) — время
выполнения алгоритма, когда выбранный набор n данных порождает наиболее
долгое время выполнения алгоритма;Tср(n) — средним временем
выполнения алгоритма, примененного к n произвольным данным.Эти понятия без труда распространяются на измерение сложности в единицах объема памяти: можно говорить о средней и максимальной пространственной сложности.
Самыми лучшими являются an=b. Они называются также алгоритмами порядка O(n) где n
— размерность входных данных. Такие алгоритмы действительно существуют. Например, сложение двух чисел
столбиком в случае, если одно из них состоит из n, а другое — из m цифр, требует не более max(n, m) сложений и не более max(n, m) запоминаний.
Т.е. данный алгоритм имеет сложность порядка O(n+m). Разумеется, это выражение показывает
только порядок величины — постоянные факторы в нем не учитываются.
Обобщение линейности дает нам первый большой класс алгоритмов —
Полиномиальным (или алгоритмом полиномиальной временной сложности)
называется алгоритм, у которого временная сложность есть O(p(n)), где p(n) — полином от n. Задачи, где для решения известен алгоритм, сложность которого составляет
полином заданной, постоянной и не зависящей от размерности входной величины n степени,
называют "хорошими" и относят их к классу P.
Экспоненциальной по природе считается задача сложностью не менее порядка xn, где x — константа или полином от n. Например, это
задачи, в которых возможное число ответов уже экспоненциально. В частности, к ним относятся задачи, где
требуется построить все подмножества заданного множества или все поддеревья
заданного графа. Экспоненциальные задачи относят к классу E.
Соответственно, и алгоритмы, в оценку сложности которых n
входит в показатель степени, относятся к
Необходимо отметить, что при небольших значениях n
экспоненциальный алгоритм может быть даже менее сложным, чем полиномиальный. Тем не менее, различие между
этими типами алгоритмов весьма велико и проявляется при больших значениях n.
Особую группу по значениям сложности, близким к полиномиальным, составляют
алгоритмы, сложность которых является полиномиальной функцией от log n (поскольку log n растет медленнее, чем n ).
Для большей убедительности и сравнения полиномиальных и экспоненциальных
алгоритмов приведем таблицу, где единица времени — 1 мкс, а сложность
совпадает с необходимым количеством единиц времени для обработки набора n данных:
| Сложность | Размер задачи — n | |||||
|---|---|---|---|---|---|---|
| 10 | 20 | 30 | 40 | 50 | 60 | |
| n | 0.00001 с | 0.00002 с | 0.00003 с | 0.00004 с | 0.00005 с | 0.00006 с |
| n $${}^2$$ | 0.0001 с | 0.0004 с | 0.0009 с | 0.0016 с | 0.0025 с | 0.0036 с |
| n $${}^3$$ | 0.001 с | 0.008 с | 0.027 с | 0.064 с | 0.125 с | 0.216 с |
| n5 | 0.1 с | 3.2 с | 24.3 с | 1.7 мин | 5.2 мин | 13.0 мин |
| 2n | 0.01 с | 1.0 с | 17.9 мин | 12.7 дней | 35.7 лет | 366 веков |
| 3n | 0.59 с | 58 мин | 6.5 лет | 3855 веков | 2x108 веков | 1.3x1013 веков |
Приведенная таблица иллюстрирует причины, по которым полиномиальные алгоритмы считаются более предпочтительными, чем экспоненциальные.
Уточним понятие сложности для итеративных и рекурсивных алгоритмов.
Отнесем к итеративным алгоритмам и те, к которым сводятся рекурсивные
алгоритмы (например, вычисление факториала n!). Тогда время их выполнения
(в случае сходящегося процесса) зависит от главного условия повторения итерации,
например, от требуемой точности. Если мы установим время или сложность одной итерации, то
сможем умножением на число итераций установить максимальную или среднюю
сложность. Число итераций устанавливается теоретически или экспериментально. Например, так
можно сделать при расчете значений функций по их
Однако иногда приходится решать оптимизационную задачу, выбирая между сложностью одной итерации и количеством итераций.
Для большинства конечно-разностных схем O(n2) или O(n x m), где n2 — количество узлов при
равном разбиении по x и по y,
а nx m — то же
количество при различающемся разбиении по осям. Увеличение количества узлов,
покрывающих ту же область, т.е. уменьшение hx и hy, увеличивает скорость
сходимости - и, соответственно, уменьшает число итераций, но сложность каждой
итерации растет квадратично. Значит, необходим компромисс, который достигается
посредством изучения поведения процесса, как на теоретическом, так и на
экспериментальном уровне, вплоть до автоматической коррекции шагов в процессе
вычислений в зависимости от локального поведения аппроксимаций производных.
Т.е. шаги становятся непостоянными во всей области.
Однако по своей природе действительно рекурсивные алгоритмы по сложности относятся к классу экспоненциальных алгоритмов. Как правило, это задачи оптимизации, основанные на переборе (алгоритмы с возвратом, метод "ветвей и границ").
Имеется широко распространенное соглашение, по которому задача не считается
"хорошо решаемой", пока для нее не получен полиномиальный
алгоритм. Задача называется
Эта градация относительна, ибо сложность определяется по наихудшему
варианту. Хотя реализация метода "ветвей и границ" — труднорешаемая задача
(при теоретической оценке по
Однако есть понятие
Полиномиальные по сложности алгоритмы относят к классу P -сложных. Среди экспоненциальных выделяют алгоритмы, основанные на переборе, и их относят
в класс NP -сложных. Т.е. формально возможно существование
экспоненциальных алгоритмов, основанных не на переборе. Например, n!, растущий
быстрее, чем 2n.
К NP -сложным относятся, например, задачи линейного целочисленного
программирования, составление расписания, поиск кратчайшего пути в лабиринте и
т.д. Обратим внимание, что все это так называемые дискретные задачи — на
основе "неделимых" объектов.
В данном контексте мы и будем понимать термин "задача высокой сложности", представляя важность применения методов распараллеливания.
В связи с распространением персональных компьютеров и созданием на их основе автоматизированных рабочих мест (АРМ) возросло значение локальных вычислительных сетей (ЛВС). Правильно организованная и умело эксплуатируемая сеть обеспечивает целый ряд преимуществ по сравнению с отдельным компьютером.
Локальные сети имеют некоторые особенности.
Главная из них — это связь. Она должна быть быстрой, надежной и удобной.
Обычно, локальные сети не выходят за пределы нескольких комнат или одного здания,
поэтому
При построении сетей ЭВМ, в т.ч. локальных, говорят о их топологии.
(рис 3.1) Сеть типа "звезда"
(рис 3.2) "Кольцевая" сеть
Эта топология допускает большое число абонентов, причем возможно изменение
их количества. В кольце происходит автоматическое усиление передаваемого сигнала
каждым абонентом, поэтому его
(рис 3.3) Сеть с общей шиной
Существуют также
| Параметры | Звезда | Кольцо | Шина |
|---|---|---|---|
| 1. Отказоустойчивость | Выход из строя одного PC не влияет на работоспособность сети | Выход из строя одного PC может вывести из строя всю сеть | Выход из строя кабеля останавливает работу многих пользователей |
| 2. Количество абонентов | 16 | 1024 и выше | 1024 и выше |
| 3. Изменение количества абонентов | Возможно | Требует остановки всей сети | Легко изменяется |
| 4. Влияние на общую стоимость сети | Дополнительные затраты на центральный компьютер | Дополнительные затраты на адаптер, выполняющий функции диспетчера сети | Дешевая среда передачи |
| 5. Возможность управления обменом | Централизованное | Централизованное и децентрализованное | Децентрализованное |
| 6. Особенности | Мощность всей сети зависит от сервера | Количество пользователей не оказывает сильного влияния на производительность. Трудно локализовать проблемы | Оптоволоконные кабели не применяются. При значительных объёмах трафика уменьшается пропускная способность. Трудно локализовать проблемы. |
| 7. Протяженность | До нескольких десятков километров | ||
| 8. Применение | В зависимости от предъявляемых требований | ||
Для организации распределенных вычислений необходимо выбрать такую топологию сети, которая поддерживает равноправную, "симметричную" связь "каждый с каждым". Среди рассмотренных топологий таким требованиям в максимальной степени соответствует шинная архитектура. Преимущества этой архитектуры отображены исторически при практическом объединении ЭВМ в распределенные вычислительные комплексы для совместного решения сложных задач.
В этой топологии (рис. 3.4) возможно такое же централизованное управление, как и в "звезде" (т.е. физически сеть — "шина", но логически — "звезда"). При этом один из абонентов ("центральный") посылает всем остальным ("периферийным") запросы, выясняя, кто хочет передать, и затем разрешает передать одному из них. После окончания передачи абонент сообщает "центру", что он закончил, и "центр" снова начинает опрос. Все преимущества и недостатки такого управления - те же, что и в случае "звезды". Единственное отличие в том, что центр не перекачивает информацию от одного абонента другому, а только управляет доступом.
(рис 3.4) Сеть с общей шиной — логическая "звезда"
Однако чаще в "шине" реализуется децентрализованное управление, так как аппаратные средства абонентов одинаковые. При этом все абоненты также имеют равный доступ к сети, и решение, когда можно передавать, принимается каждым абонентом на месте, исходя из анализа состояния сети. Возникает конкуренция между абонентами за захват сети, и, следовательно, возможны конфликты между ними и искажения передаваемых данных из-за наложения пакетов.
Существует множество алгоритмов (сценариев) доступа, часто очень сложных. Их выбор зависит от скорости передачи в сети, от длины шины, загруженности сети (интенсивности обмена или трафика сети). Иногда для управления доступом к шине используется дополнительная линия связи. Это упрощает аппаратуру контроллеров и методы доступа, но заметно увеличивает стоимость сети в целом за счет удвоения длины кабеля и количества приемопередатчиков. Поэтому данное решение не получило широкого распространения.
Можно отметить ряд существующих методов обмена в сетях шинной архитектуры.
Второй метод, используемый в шине, — децентрализованный временной
приоритетный арбитраж или метод доступа (рис. 3.5). Этот 2L/V ( L
— полная длина сети, V — скорость распространения сигнала в используемом кабеле),
или минимальная задержка составит 8 мкс. Следовательно, для абонента с сетевым адресом
255 задержка будет уже равна 255*8мкс=2040 мкс, т.е. около 2 мс, что уже
довольно существенно. Для сравнения: если пакет имеет размер 1 Кбайт, то при
скорости передачи 10 Мбит/с его длительность будет всего 0,8 мс. Данный метод
не имеет жесткой привязки к коду передачи информации (в предыдущем методе
можно было использовать
(рис 3.5) Обмен методом доступа
Третий метод, получивший довольно широкое распространение, можно считать
развитием второго. Называется он CSMA/CD (Carrier-Sense Multiple
Access/
К достоинствам метода CSMA/CD можно отнести полное равноправие всех
абонентов, то есть ни один из них не может надолго захватить сеть. Метод достаточно
надежен: ведь в течение всего времени передачи пакета идет контроль столкновений. К
недостаткам метода относится то, что он не исключает повторения столкновений,
а также плохо держит высокую нагрузку в сети. Обычно считается, что он хорош
только до тех пор, пока нагрузка не превышает 30%, то есть только 30%
времени сеть занята, а 70% времени — свободна. Для сети
В настоящее время разными фирмами разработаны стандарты ЛВС, поддержанные
аппаратно и программно. Наиболее распространенным стандартом, соответствующим
требованиям режима вычислительного комплекса, является локальная сеть
На базе
Применяется топология "шина", т.е.:
Для организации взаимодействия станций в сети используется метод
Распараллеливание метода "сеток" с очевидностью адекватно второму способу распараллеливания, что и должно определить направление поиска. То есть можно с уверенностью заявить, что распределение узлов сетки между процессорами ВС (распараллеливание по информации), ЭВМ вычислительного комплекса или рабочих станций сети является эффективным способом параллельного решения системы дифференциальных уравнений в конечных разностях.
В лекции 1 рассматривался пример решения уравнения в частных производных. Далее на этом примере будут показаны схемы возможной реализации метода сеток в ЛВС.
По рис. 1.12 из курса "Архитектура параллельных вычислительных систем" мы можем полностью представить различные планы параллельного решения рассмотренной задачи.
Другая стратегия распределения узлов между процессорами может быть основана
на делении области задания функции между процессорами. Т.е. вся область D на рис. 1.12 из курса "Архитектура параллельных вычислительных систем" может быть разделена поровну между процессорами ВС или станциями сети.
Третья стратегия может предусматривать нумерацию процессоров, превращение
многомерного (в примере — двумерного) массива узлов сетки в одномерный
линейный и назначение каждого узла на процессор с номером, равным остатку от деления его
номера на число используемых процессоров. Эта стратегия, в наибольшей степени
обеспечивающая инвариантность программы счета относительно числа узлов и числа
используемых процессоров, соответствует рассмотренной ранее
Равноправие процессоров (симметричность) делают целесообразным использование
шинной архитектуры ЛВС. (Отметим, что на ранней стадии построения
вычислительных комплексов применялась именно шинная архитектура, как
наиболее простая и естественная. То же можно отметить и относительно многих
современных и перспективных мультимикропроцессорных систем.) Распространенным
стандартом такой архитектуры, обусловившим разработку широкой номенклатуры
аппаратных средств, является сеть ETHERNET. Параллельный вычислительный
процесс должен воспроизводить технологию
Тогда организация параллельной обработки информации и схема вычислений должна быть следующей.
n " каждый из них оказывается закрепленным
за станцией с тем же номером. Это в точности соответствует технологии Рассмотрим конкретный возможный план решения рассмотренной выше задачи
методом "сеток". Для простоты положим число используемых процессоров
равным 2. В основу плана положим способ D между процессорами
поровну. Зафиксируем hx = hy = h, определив тем самым количество узлов
сетки в каждой строке и в каждом столбце. На рисунке 3.6 отражены выбранные количества узлов
в строках и столбцах. Первая и последняя строка, как и первый и последний
столбец, соответствуют узлам, в которых заданы граничные значения
функции-решения.
(рис 3.6) Распределение данных между двумя процессорами для решения задачи методом "сеток"
Область D1, обрабатываемая процессором 1, определяется
границами индекса i и координаты x:$$\begin{align*}
0 \le i \le \left [\frac{n}{2}\right] \\
0 \le x \le \left [\frac{n}{2}\right]\cdot h
\end{align*}$$
Область D2, обрабатываемая процессором 2, определяется
границами индекса i и координаты x:$$\begin{align*}
\left [\frac{n}{2}\right] + 1 \le i \le - 1 \\
\left (\left [\frac{n}{2}\right] + 1\right)\cdot h \le x \le (n -
1)h = A
\end{align*}$$
По второй координате 0 <= y <=t (m - 1)h = B.
На рисунке показана передача промежуточных значений узлов процессором процессору для счета узлов, использующих эти значения. Такая передача может осуществляться либо непосредственно после нахождения очередного приближения значения функции в узле, либо после очередной итерации — для всех необходимых значений сразу. Второй способ может значительно сократить время выполнения обмена, хотя задерживает использование узлов.
Важен выбор способа нахождения начального значения функции — решения в узлах. Этот выбор влияет на скорость сходимости решения.
В соответствии с граничными условиями
fi0 = f1(ih,0) i = 0, ..., n - 1,
fi,m-1 = f2(ih,(m-1)h=B) i = 0, ..., n - 1,
f0j = f3(0,jh) j = 0, ..., m - 1,
fn-1,j = f4((n-1)h=A,j) j = 0, ..., m - 1.
Нулевое приближение значений fij может быть рассчитано по
формулам интерполяции
с усреднением:$$\begin{align*}
f_{ij} = \frac{1}{2} \left[ \left( \frac {f_{n-1,j}-f_{0,j}}{n-1}\cdot
i+f_{0,j}\right)+\left( \frac {f_{i,m-1}-f_{i,0}}{m-1}\cdot
j+f_{i,0}\right)\right]
\end{align*}$$
для всех 0 < i < A, 0 < j < B.
Итерационная формула имеет общий вид fij = F(fi-1,j,
fi+1,j, fi,j-1, fi,j+1).
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.