Понедельник, 29.04.2024
Ukrainiancontet.at.ua
Меню сайта
Категории раздела
Програмування [35]
Мови веб-програмування [5]
О компании [0]
Новости игры
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Главная » 2015 » Октябрь » 25 » Паралелізм (інформатика)
23:15
Паралелізм (інформатика)
В інформатиці паралелізм — це властивість систем, при якій кілька обчислень виконуються одночасно, і при цьому, можливо, взаємодіють один з одним. Обчислення можуть виконуватися на декількох ядрах одного чіпа витісняють з поділом часу потоків на одному процесорі, або виконуватися на фізично окремих процесорах. Для виконання паралельних обчислень розроблено ряд математичних моделей, у тому числі мережі Петрі, обчислення процесів, моделі паралельних випадкових доступів до обчислень і моделі акторів.

Слід зазначити, що в англомовній літературі для опису поняття паралелізму в комп'ютерних науках використовуються два терміни: Concurrency (одночасність) і Parallelism (паралелізм). Між ними є деяка відмінність, про що буде сказано нижче. У російськомовній літературі для обох цих термінів використовується тільки один переклад: паралелізм, що створює певні термінологічні труднощі.

Оскільки обчислення в паралельних системах взаємодіють один з одним, число можливих шляхів виконання може бути надзвичайно велика, і результуючий підсумок може стати недетерминированным. Паралельне використання загальних ресурсів може стати одним з джерел недетерминированности, що призводить до таких проблем, як взаємне блокування або фатальний недолік ресурсів.[]

Побудова паралельних систем вимагає пошуку надійних методів координації виконуваних процесів, обміну, розподілу пам'яті і планування для мінімізації часу відгуку і збільшення пропускної здатності.

Теорія паралельних обчислень є активною областю досліджень теоретичної інформатики. Одним з перших пропозицій в цьому напрямку була плідна робота Карла Адама Петрі мереж Петрі на початку 1960-х. У наступні роки був розроблений широкий спектр формалізмів для моделювання і опису паралельних систем.

Зараз розроблено велике число формальних методів для моделювання та розуміння роботи паралельних систем, в тому числі:[2]
Паралельний випадковий доступ до комп'ютера[3]
Модель акторів
Обчислювальні пов'язані моделі, наприклад, модель масового синхронного паралелізму
Мережі Петрі
Обчислення процесів
Простір кортежів, наприклад, Linda
SCOOP (Simple Concurrent Object-Oriented Programming — Просте паралельне об'єктно-орієнтоване програмування)

Деякі з цих моделей паралелізму призначені в першу чергу для логічних умовиводів і опису специфікацій, тоді як інші можуть бути використані протягом всього циклу розробки, включаючи проектування, впровадження, доказ істинності результатів, тестування і моделювання паралельних систем.

Поширення різних моделей паралелізму спонукало деяких дослідників розробити способи об'єднання цих теоретичних моделей. Наприклад, Чи і Санджованни-Винсентелли показали, що так звану модель «мічених сигналів можна використовувати для створення загальної основи для опису денотаційної семантики різних моделей паралелізму,[] а Нільсен, Сассун і Винскль показали, що теорія категорій може бути використана для забезпечення єдиного розуміння різних моделей.[]

Теорема подання паралелізму з моделі актора забезпечує досить загальний спосіб опису паралельних систем, замкнутих в тому сенсі, що вони не отримують повідомлень ззовні. Інші методи опису паралелізму, як, наприклад, обчислення процесів, можуть бути описані через модель актора, використовуючи двофазний протокол фіксації.[] Математичні позначення, які використовуються для опису замкнутої системи S, забезпечують більшою мірою хороше наближення, якщо вони будуються на основі початкового поведінки, позначуваного ⊥S, з використанням апроксимуючої функції поведінки прогресії.[] Тоді для позначення S будуються наступним чином:

DenoteS ≡ ⊔i∈ω progressionSi(⊥S)

Таким чином, S може бути виражена математично за допомогою всіх його можливих поводжень.

Щоб забезпечити логічні міркування про паралельних системах, можна використовувати різні види темпоральних логік[]. Деякі з них, як, наприклад, лінійна темпоральна або логіка обчислювального дерева, дозволяють робити твердження про послідовності станів, через які паралельна система може пройти. Інші ж, такі як логіка дій обчислювального дерева, логіка Хеннессі-Мілнера або темпоральна логіка дій Лэмпорта, будують свої твердження від послідовності дій (зміни станів). Основне застосування цих логік полягає в запису специфікацій для паралельних систем

У цьому розділі буде використовуватися два поняття паралельності, властиві англомовній літературі, оскільки мова піде про порівняння їх один з одним. Термін Concurrency буде переводитися «одночасність», а термін Parallelism буде переводитися «паралелізм».

Одночасне програмування включає в себе мови програмування та алгоритми, що використовуються для реалізації одночасних систем. Одночасне програмування зазвичай вважається більш загальним поняттям, ніж паралельне програмування, оскільки воно може містити довільні динамічні моделі спілкування і взаємодії, тоді як паралельні системи найчастіше реалізують визначені заздалегідь і добре структуровані моделі зв'язків. Основними цілями одночасного програмування є коректність, ефективність, стійкість. Одночасні системи, такі як операційні системи та системи управління базами даних призначені насамперед для роботи в невизначених умовах, у тому числі з урахуванням автоматичного відновлення після збою, вони не повинні несподівано припиняти роботу. Деякі одночасні системи здійснюють роботу у вигляді прозорої одночасності, при якій одночасні обчислювальні сутності можуть конкурувати за використання одного і того ж ресурсу, але суть цієї конкуренції прихована для програміста.

Оскільки одночасні системи використовують загальні ресурси, вони зазвичай вимагають наявність будь-якого арбітра, вбудованого в їх реалізацію (часто в базове обладнання) для управління доступом до цих ресурсів. Використання арбітрів створює ймовірність невизначеності в одночасних обчисленнях, яка має велике значення для практики, в тому числі для забезпечення коректності та ефективності. Наприклад, арбітраж не виключає необмежений індетермінізм, який пов'язаний з проблемою перевірки моделей, що є причиною вибухового характеру простору станів і може навіть стати причиною утворення моделі з нескінченним числом станів.

Деякі одночасні моделі програмування включають створення сопроцессов і детермінованою одночасності. У цих моделях потоки виконання по управлінню процесами явно віддають своє кванти часу небудь системі, або іншого процесу.
Категория: Програмування | Просмотров: 435 | Добавил: Admin | Теги: Паралелізм (інформатика) | Рейтинг: 0.0/0
Всего комментариев: 0
avatar
Вход на сайт

Поиск
Интернет
Здоровье
Афиша
Ситуация на восток
Религия
Архив записей
Каталог сайтов Всего.RU
Рейтинг@Mail.ru
Copyright Ukrainiancontet.at.ua © 2024
uCozЯндекс.Метрика