Координація процесів - Економічна ефективність розподілених систем і паралельних обчислень
Очевидно, що при програмуванні для однопотокового середовища в будь-який момент часу звертається до об'єкту лише 1 потік, то є гарантія що кожний метод завершиться до виклику наступного. Це значить, що об'єкт для своїх клієнтів знаходиться в дійсному стані. А при багатопотоковому програмуванні трапляються ситуації, коли потоки звертаються до об'єкту, що знаходяться в недійсному стані. Результат виконання не передбачено.
Термін безпека потоків означає підтримку об'єктів в дійсному стані при одночасному звертанні до них декількох потоків. Стандартний засіб уникнення непередбачених ситуацій - це синхронізація. Синхронізація дозволяє задавати критичні секції. Критичні секції коду - в кожен окремий момент часу може входити 1 потік, гарантуючи, що будь-які тимчасові недійсні стани об'єкту будуть невидимі його клієнтам.
Дві типові проблеми, з якими програміст може зіткнутися при роботі з потоками:
Тупіки(Deadlocks);
Гонки (Race conditions).
Тупіки
Тупік має місце тоді, коли потік чекає ресурс, який в даний момент належить іншому потоку. Розглянемо приклад: Потік 1 захоплює об'єкт А і, для того, щоб продовжувати роботу, чекає можливості захопити об'єкт Б. В той же час Потік 2 захоплює Об'єкт Б і чекає можливості захопити Об'єкт А. Розвиток цього сценарію заблокує обидва потоки; жоден з них не виконуватиметься.
В ролі ресурсів виступають довільні спільно використовувані об'єкти, а саме файли, масиви в пам'яті.
Гонки
Ситуація гонок виникає, коли два або більш потоків намагаються дістати доступ до загального ресурсу і змінити його стан. Розглянемо наступний приклад. Хай Потік 1 дістав доступ до ресурсу і змінив його в своїх інтересах; потім активізувався Потік 2 і модифікував цей же ресурс до завершення Потоку 1. Потік 1 вважає, що ресурс залишився в тому ж стані, що і був до перемикання. Залежно від того, коли саме був змінений ресурс, результати можуть варіюватися -- іноді код виконуватиметься нормально, іноді - ні.
Ситуації гонок і тупіків можна уникнути, якщо використовувати такі прийоми:
Взаємне виключення. Дозволяє тільки одному потоку за один раз володіти об'єктом.
Характеризується:
Тільки 1 процес знаходиться в середині критичного інтервалу
Якщо жоден процес не знаходиться в критичному інтервалі то довільний інший процес, яки бажає отримати доступ до об'єкту повинне отримати дозвіл без жодної затримки
Не повинно існувати жодних домовленостей про швидкість процесу
Семафори. Семафор (semaphore) подібний взаємному виключенню. Різниця між ними у тому, що семафор може управляти кількістю потоків, які мають до нього доступ.
Семафор встановлюється на граничне число потоків, яким доступ дозволений. Коли це число досягнуте, подальші потоки будуть припинені, поки один або більш потоків не від'єднаються від семафора і не звільнять доступ. Семафор - невід'ємна ціла змінна, яка може змінюватись і перевірятись лише двома функціями:
P(s): [<if<умова>|знач.|><звільнити><s:=s-1>]
V(s): [<if<умова>|знач.|><зайняти><s:=s+1>]
Блокування процесу і перемикання на інший не ефективно, коли семафор захоплюється на дуже короткий час. Очікування звільнення таких семафорів може бути реалізовано в ОС завдяки циклічним опитуванням значень семафору. Недоліки такого "активного очікування" - не продуктивна витрата часу, навантаження на загальну пам'ять і можливість практично заблокувати роботу процесу, що знаходиться в критичному інтервалі. Тобто, якщо об'єкт використовується великою кількістю потоків, використання семафорів не доцільне.
Подія - змінна, яка показує що відбулася певна подія.
Для об'явлення події використовується оператор: Post(ім'я змінної) , для очікування : Wait(ім'я змінної). Для очищення (привласнення 0 значення): clear(ім'я змінної).
Критична секція. Критичні секції подібні взаємним виключенням по суті, проте між ними існують дві головні відмінності:
Взаємні виключення можуть бути спільно використані потоками в різних процесах, а критичні секції -- ні;
Якщо критична секція належить іншому потоку, чекаючий потік блокується аж до звільнення критичної секції. На відміну від цього, взаємне виключення дозволяє продовження після закінчення тайм-ауту.
Обмін повідомленнями. "Взаємодія паралельних процесів".1978р., Хоар.
Мета: позбутись проблему розподілу пам'яті і запропонувати модель взаємодії процесів у розподілених системах.
Використовуються основні функції:
Send (destination, message, size)
Receive (source, message, size)
Адресатом виступає процес, відправник не специфікується, в його ролі виступає довільний об'єкт.
Механізм семафорів та взаємодії процесів семантично взаємнозаміняються. Тому на мультипроцесорах використовується один через інший.
Процес розподілу обчислень на менші частини, деякі або всі з яких можуть бути виконані паралельно, називається декомпозицією.
При цьому способі основне завдання розподіляється певним способом на невелику кількість незалежних задач. На наступному кроці отримані задачі знову декомпонуються, рекурсивно застосовуючи вищезазначений спосіб і т. д.
Цей спосіб призводить до виявлення природного паралелізму системи.
Приклад. Швидке сортування набору чисел : 5 12 11 1 10 6 8 2 7 4 9 3
Вибирається основний елемент Х і основна послідовність А розбивається на дві послідовності А0 і А1, такі що всі елементи послідовності А0 є меншими за Х, а всі елементи А1 є більшими за Х і т. д.
Методологія оцінювання економічної ефективності розподілених систем
Розподілені обчислення -- спосіб вирішення трудомістких обчислювальних завдань з використанням декількох комп'ютерів, об'єднаних в паралельну обчислювальну систему.
Розподілені обчислення є частковим випадком паралельних обчислень, тобто одночасного рішення різних частин одного обчислювального завдання декількома процесорами (чи ядрами одного процесора) одного або декількох комп'ютерів. Тому необхідно, щоб вирішувану задачу було сегментовано, тобто розділено на підзадачі, які можуть обчислюватися паралельно.
При цьому для розподілених обчислень доводиться також враховувати можливу відмінність в обчислювальних ресурсах, які будуть доступні для розрахунку різних підзадач. Більше того, не всяке завдання можна розділити на підзадачі, які можна вирішувати паралельно.
Реальна продуктивність обчислювальної системи визначається як продуктивність, якої сягає обчислювальна система при виконанні конкретної задачі.
Пікова продуктивність - сумарна продуктивність АЛП.
Ефективність системи - відношення реальної продуктивності до пікової. Якщо продуктивність системи < 0.5, то система працює незадовільно.
Оцінювання ефективності розподіленої системи пропонується здійснювати за допомогою наведеного нижче математичного апарату.
Час однієї ітерації визначається як:
Де -- час рахунку однієї ітерації при використанні N процесів, с; Tex -- час граничного обміну між вузлами кластерів, с, Tex визначається із наступного виразу:
У цьому виразі E -- об'єм даних в області граничного обміну (Гбіт), V -- пропускна спроможність мережі кластера (Гбіт/с). В умовах, коли область обчислень максимально завантажена і рівномірно розподілена між вузлами кластера, можна визначити формулу для обчислення об'єму даних граничного обміну:
Продуктивність мережі визначається таким чином:
Де Vn -- пропускна спроможність мережі кластера, Гбіт/с, k -- кількість каналів зв'язку обчислювальної мережі, d -- напівдуплексний (d = 1), або дуплексний (d = 2).
Оцінка ефективності кластерної системи:
Розрахуємо ефективність. Припустимо пропускна спроможність мережі кластера Vn = 1 Гбіт/с, час ітерації один процес Tit = 3600 c, об'єм оперативної пам'яті вузла кластера r = 8 Гбіт, кількість каналів зв'язку обчислювальної мережі k = 20, режим дуплексний d = 2, m = 2, кількість процесів N = 20.
Для порівняння розрахуємо ситуацію в якій час однієї ітерації малий. Припустимо, що пропускна спроможність мережі кластера Vn = 1 Гбіт/с, час ітерації один процес Tit = 3,6 c, об'єм оперативної пам'яті вузла кластера r = 8 ГБіт, кількість каналів зв'язку обчислювальної мережі k = 20, режим дуплексний d = 2, m = 2, кількість процесів N = 20.
Отже, з порівняння видно, що ефективність зростає при збільшенні часу ітерації і спадає при збільшенні кількості процесів.
Похожие статьи
-
Основна ідея розпаралелювання обчислень - мінімізація часу виконання задачі за рахунок розподілу навантаження між декількома обчислювальними пристроями....
-
Операційна система планує час процесора відповідно до пріоритету потоків. Коли потік створюється, йому призначається пріоритет, відповідний пріоритету...
-
Анализ эффективности систем массового обслуживания с ожиданием - Теория массового обслуживания
Система с ограниченной длиной очереди. Рассмотрим n - канальную СМО с ожиданием, на которую поступает поток заявок с интенсивностью л=14/час;...
-
Характеристика існуючої системи управління обіговими коштами Системи управління обіговими коштами базується на системі обліку, яка є джерелом інформації....
-
Кредитна система Російської Федерації - Еволюція грошово-кредитної системи Росії
Традиційне уявлення про банк тільки як про кредитний і розрахунково-платіжний інститут нині суттєво змінилося. Сучасний комерційний банк -- це...
-
Моделирование динамики рыночной системы
Введение В современных условиях динамичного развития рыночной системы экономика, испытывающая многочленные подъемы и спады, требует внешнего воздействия,...
-
Применение нейронных сетей в финансовой сфере - Прогнозирующие системы
Характерный пример успешного применения нейронных вычислений в финансовой сфере - управление кредитными рисками. Как известно, до выдачи кредита банки...
-
Например, если изучается модель спроса как соотношение цен и количества потребляемых товаров, то одновременно для прогнозирования спроса необходима...
-
Розвиток будь-якого підприємства потребує визначення його реального планування та ефективності його фінансово-господарської діяльності, у зв'язку з чим...
-
Разработка алгоритма нахождения входного потока заявок в имитационной модели контрольно-пропускной системы на основе статистических данных В наши дни...
-
Отсутствие моделей и количественных методик, позволяющих оценить эффект от намеченных интеграционных процессов и степень их влияния на экономическую...
-
Системы уравнений используемые в экономике - Эконометрика как наука
Объектом статистического изучения в социальных науках являются сложные системы. Измерение тесноты связей между переменными, построение изолированных...
-
Взаимосвязи случайных событий - Основы теории систем и системного анализа
Вернемся теперь к вопросу о случайных событиях. Здесь методически удобнее рассматривать вначале простые события (может произойти или не произойти)....
-
Менделеев Д. И., его жизнь и система элементов
Менделеев Сколько химиков до него пыталось привести в систему все многообразие элементов, которые создали удивительный мир вокруг человека и которые...
-
В данном случае анализируемые системы характеризуются не одним набором показателей эффективности, а несколькими: (18) Где - группа показателей...
-
Понятие и структура экономической системы. - Моделирование экономических систем
Употребление понятия системы имеет долгую историю, уходящую в античную эпоху. В переводе с греческого "система" означает некое целое, состоящее из...
-
К моделированию теплообменника с псевдоожижаемой насадкой для систем аспирации стройиндустрии
К моделированию теплообменника с псевдоожижаемой насадкой для систем аспирации стройиндустрии Модернизация предприятий строительного комплекса на основе...
-
В настоящей работе предлагается классификация задач многокритериальной оценки эффективности систем различного назначения. В качестве факторов...
-
В состав системы эконометрических уравнений входят множество зависимых или эндогенных переменных и множество предопределенных переменных (лаговые и...
-
Моделирование в условиях противодействия, игровые модели - Основы теории систем и системного анализа
Как уже неоднократно отмечалось, системный анализ невозможен без учета взаимодействий данной системы с внешней средой. Ранее упоминалась необходимость...
-
Принципы декомпозиционного анализа экономической системы
Принципы декомпозиции Декомпозиция исходной системы или глобальной задачи производится путем применения принципов декомпозиции и координации. Первые...
-
Система "Диспетчер" апробирована на реальных исходных данных двух регионов Нефтяной Компании "Юкос" (Липецкая и Воронежская области) и показала свою...
-
Кривые сложения . Диаграмма цветности - Основные колориметрические системы
Кривые сложения, и представляют собой распределение по спектру цветовых координат монохроматических излучений мощностью 1 Вт(). Поэтому значения ординат...
-
ДВОИЧНАЯ СИСТЕМА СЧИСЛЕНИЯ - Системы счисления
Особая значимость двоичной системы счисления в информатике определяется тем, что внутреннее представление любой информации в компьютере является...
-
В настоящее время нельзя назвать область человеческой деятельности, в которой в той или иной степени не использовались бы методы моделирования. Особенно...
-
Моделирование процессов управления предполагает последовательное осуществление трех этапов исследования. Первый - от исходной практической проблемы до...
-
В данной главе мы обсуждаем некоторые общие аспекты разработки прогнозирующих систем: понятие прогноза и цели его использования, основные понятия и...
-
Введение - Моделирование систем
Изобретение и дальнейшее развитие персонального компьютера значительно упростило жизнь человека. Микро ЭВМ постепенно начали входить в нашу повседневную...
-
Модель в общем смысле (обобщенная модель) есть создаваемый с целью получения и (или) хранения информации специфический объект (в форме мысленного образа,...
-
Рассмотрим две проблемы сравнительной оценки эффективности различных подходов к оптимизации управления экономическими системами. Сравнение по...
-
Основные понятия теории экономико-математического моделирования Кибернетический подход к исследованию экономико-математических систем Обычно...
-
Наиболее ранним способом формализации экономико-математических и ТС является представление физических явлений с помощью систем дифференциальных...
-
Метод Монте-Карло используют для вычисления интегралов, в особенности многомерных, для решения систем алгебраических уравнений высокого порядка, для...
-
Системы основанные на концепции PR - Зарубежный опыт применения логистических систем
В начале 60-х гг. в связи с ростом популярности вычислительных систем возникла идея использовать их для планирования производственных процессов....
-
В литературе подобные системы часто называют системами одновременных уравнений, имея в виду, что здесь зависимая переменная одного уравнения может...
-
Проблема идентифицируемости - Системы эконометрических уравнений, их применение в эконометрике
Идентификация - это единственность соответствия между приведенной и структурной формами модели. При переходе от приведенной формы модели к структурной...
-
Вопросы: 1. Общее понятие о системах одновременных уравнений. 2. Структурная и приведенная формы модели. 3. Проблема идентификации. 4. Оценивание...
-
СПОСОБЫ ОПИСАНИЯ СТРУКТУР. МОРФОЛОГИЯ СОЦИАЛЬНО-ПОЛИТИЧЕСКОЙ И ЭКОНОМИЧЕСКОЙ СФЕР Структурное моделирование. Структурный анализ Основная цель...
-
В даній роботі ми досліджували асинхронний двигун 4А112МА8У3. З механічних характеристик було помічено, що при швидкостях та, критичний момент АД...
-
Основные направления совершенствования организационной структуры предприятия ОАО "Огонек". Любую перестройку структуры управления необходимо оценивать, в...
Координація процесів - Економічна ефективність розподілених систем і паралельних обчислень