Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ВС13 / ЛабРаб / Диплом.doc
Скачиваний:
36
Добавлен:
17.03.2015
Размер:
1.48 Mб
Скачать

1 Параллельная обработка данных в вычислительных системах кластерного типа

1.1 Параллельная обработка данных

1.1.1 Основные определения

“Два события называют одновременными, если они происходят в течение одного и того же временного интервала. Если несколько задач выполняются в течение одного и того же временного интервала, то говорят, что они выполняются параллельно. Для нас термин параллельно необязательно означает "точно в один момент". Например, две задачи могут выполняться параллельно в течение одной и той же секунды, но при этом каждая из них выполняется в различные доли этой секунды. Так, первая задача может отработать в первую десятую часть секунды и приостановиться, затем вторая может отработать в следующую десятую часть секунды и приостановиться, после чего первая задача может возобновить выполнение в течение третьей доли секунды, и т.д. Таким образом, эти за­дачи могут выполняться по очереди, но поскольку продолжительность секунды с точки зрения человека весьма коротка, то кажется, что они выполняются одновременно.

По­нятие одновременности (параллельности) можно распространить и на более длинные ин­тервалы времени. Так, две программы, выполняющие некоторую задачу в течение одно­го и того же часа, постепенно приближаясь к своей конечной цели в течение этого часа, могут (или могут не) работать точно в одни и те же моменты времени. Мы говорим, что данные две программы для этого часа выполняются параллельно, или одновременно. Другими словами, задачи, которые существуют в одно и то же время и выполняются в течение одного и того же интервала времени, являются параллельными. Параллельные задачи могут выполняться в одно- или многопроцессорной среде. В однопроцессорной среде параллельные задачи существуют в одно и то же время и выполняются в течение одного и того же интервала времени за счет контекстного переключения. В многопро­цессорной среде, если свободно достаточное количество процессоров, параллельные задачи могут выполняться в одни и те же моменты времени в течение одного и того же периода времени. Основной фактор, влияющий на степень приемлемости для паралле­лизма того или иного интервала времени, определяется конкретным приложением.

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

Обычно не слишком полезно (или эффективно) выполнять одну подзадачу в один период времени, а другую - совер­шенно в другой. Именно параллельность обоих процессов дает естественную форму ис­комого решения проблемы. Иногда к параллельности прибегают, чтобы увеличить бы­стродействие программы или приблизить момент ее завершения. В других случаях па­раллельность используется для увеличения продуктивности программы (объема выполняемой ею работы) за тот же период времени при вторичности скорости ее рабо­ты. Например, для некоторых Web-сайтов важно как можно дольше удерживать пользо­вателей. Поэтому здесь имеет значение не то, насколько быстро будет происходить под­ключение (регистрация) и отключение пользователей, а сколько пользователей сможет этот сайт обслуживать одновременно. Следовательно, цель проектирования программ­ного обеспечения такого сайта — обрабатывать максимальное количество подключений за как можно больший промежуток времени. Наконец, параллельность упрощает само программное обеспечение. Зачастую сложную последовательность операций можно уп­ростить, организовав ее в виде ряда небольших параллельно выполняемых операций. Независимо от частной цели (ускорение работы программ, обработка увеличенной на­грузки или упрощение реализации программы), наша главная цель — усовершенство­вать программное обеспечение, воспользовавшись принципом параллельности.”[15]