- •7.091501 – Комп’ютерні системи та мережі
- •7.091503 – Спеціалізовані комп’ютерні системи
- •7.091501 – Комп’ютерні системи та мережі
- •7.091503 – Спеціалізовані комп’ютерні системи
- •2. Надійність і відмовостійкість
- •3. Масштабованість
- •4. Сумісність і мобільність програмного забезпечення
- •5. Класифікація комп'ютерів по галузям застосування Персональні комп'ютери та робочі станції
- •Сервери
- •Мейнфрейми
- •Кластерні архітектури
- •Контрольні запитання
- •Тести tpc
- •2. Тест tpc-a
- •3. Тест tpc-b
- •4. Тест tpc-c
- •5. Майбутні тести tpc
- •2. Архітектура системи команд. Класифікація процесорів (cisc і risc)
- •3. Методи адресації та типи даних Методи адресації
- •4. Типи команд
- •5. Команди керування потоком команд
- •6. Типи й розміри операндів
- •2. Найпростіша організація конвеєра й оцінка його продуктивності
- •3. Структурні конфлікти й способи їхньої мінімізації
- •4. Конфлікти за даними, зупинка конвеєра й реалізація механізму обходів
- •5. Класифікація конфліктів за даними
- •6. Конфлікти за даними, що призводять до призупинки конвеєра
- •7. Методика планування компілятора для усунення конфліктів за даними
- •Контрольні запитання
- •2. Зниження втрат на виконання команд умовного переходу
- •Метод вичікування
- •Метод повернення
- •Затримані переходи
- •3. Статичне прогнозування умовних переходів: використання технології компіляторів
- •2. Обробка багатотактних операцій і механізми обходів у довгих конвеєрах
- •3. Конфлікти й прискорені пересилання в довгих конвеєрах
- •4. Підтримка точних переривань
- •Контрольні запитання
- •2. Паралелізм рівня команд: залежності й конфлікти за даними
- •Залежності
- •3. Паралелізм рівня циклу: концепції та методи
- •4. Основи планування завантаження конвеєра й розгортання циклів
- •Контрольні запитання
- •2. Динамічна оптимізація із централізованою схемою виявлення конфліктів
- •2. Подальше зменшення зупинок по керуванню: буфера цільових адрес переходів
- •Контрольні запитання
- •Процесор з архітектурою 80x86 і Pentium.
- •Особливості процесорів з архітектурою spark компанії Sun Microsystems.
- •Процесори pa-risc компанії Newlett-Packard
- •2.Особливості процесорів з архітектурою sparc компанії Sun Microsystems
- •Процесори pa-risc компанії Hewlett-Packard
- •Контрольні запитання
- •Процесор mc88110 компанії Motorola.
- •Особливості архітектури mips компанії mips Technology.
- •Особливості архітектури Alpha компанії dec.
- •Особливості архітектури power компанії ibm і power pc компанії Motorola, Apple і ibm.
- •2.Особливості архітектури mips компанії mips Technology
- •3.Особливості архітектури Alpha компанії dec
- •4.Особливості архітектури power компанії ibm і PowerPc компаній Motorola, Apple і ibm
- •Архітектура power
- •Еволюція архітектури power у напрямку архітектури PowerPc
- •Процесор PowerPc 603
- •Контрольні запитання
- •Термінологія в області паралельної обробки .
- •Питання створення програмного забезпечення.
- •Ахітектура паралельної обробки.
- •2.Питання створення програмного забезпечення.
- •1) Язикові розширення.
- •2) Розширення компіляторів.
- •3) Додавання нового язикового рівня.
- •4) Нова мова.
- •3.Архітектура паралельної обробки.
- •4.Елементи теорії конкурентних процесів. Події та процеси
- •Особливості мов конкурентного програмування
- •Моделі конкурентних процесів
- •Взаємодія процесів, синхронізація й передача даних
- •2. Внутрішня архітектура трансп’ютера
- •3. Послідовна обробка
- •Регістри трансп’ютера
- •4. Інструкції
- •Безпосередні функції
- •Непрямі функції
- •Ефективність кодування
- •5. Підтримка паралелізму
- •6. Зв'язок
- •Лінії зв'язку
- •7. Таймер
- •8. Альтернативне виконання
- •9. Інструкції із плаваючою крапкою
- •Контрольні запитання
- •2. Найпростіші процеси-примітиви
- •3. Послідовні процеси-композиції
- •4. Паралельні процеси
- •5. Канали зв'язку
- •6. Конструктор альтернативного процесу
- •7. Описи
- •8. Масиви
- •9. Оголошення процесів
- •10. Цикли і масиви процесів
- •Контрольні запитання
- •2. Структури програмування
- •Прості паралельні процеси
- •Синхронізація за допомогою керуючих сигналів
- •3. Мовні засоби для програмування в реальному масштабі часу
- •4. Використання мови оккам для рішення завдань системного програмування
- •Контрольні запитання
- •Рекомендована література
2.Питання створення програмного забезпечення.
Паралельне програмування може бути ще більше складним процесом, ніж звичайне послідовне, котре в ряді випадків доводить буквально до сліз розроблювачів.
До звичайних проблем тут додаються нові. До них відносяться:
оцінка прискорення виконання програми залежно від числа процесорів;
величина витрат часу на синхронізацію процесів;
вплив розмірів програми на прискорення;
максимальне число процесорів, зайнятих рішенням завдання;
детермінізм виконання програми.
Крім того:
рішення про те, який розмір повинні мати «порції» паралельної програми;
скільки паралельних процесів повинне бути утворене;
який вид синхронізації процесів повинен бути обраний;
яким чином повинен управлятися доступ до поділюваних даних;
як повинні підрозділятися завдання обробки для досягнення найбільшої ефективності використання доступного паралельного устаткування.
Налагодження паралельних програм досить складне. Умови змагань можуть маскуватися під логічні помилки програми.
У ряді випадків дуже важко визначити послідовність подій, які приводять програму в тупикову ситуацію.
Взагалі ж представляється природним дозволити програмістові визначати ті частини програми, які можуть виконуватися одночасно. Однак якщо тільки програміст відповідає за коректність цієї інформації, повинна бути впевненість у тому, що він не помиляється. Із закордонної літератури відомо, що численні спроби ручної переробки звичайних послідовних програм на паралельні (наприклад, написані на Фортрані) привели до наступних виводів:
Надзвичайно ризиковано перетворювати існуючу програму в програму, призначену для виконання в паралельному середовищі, тому що звичайно доводитися вносити невеликі зміни, які легко можуть привести до некоректності в цьому новому середовищі.
Структури даних повинні спільно використатися процесами тільки після ретельного розгляду. Ненавмисне спільне використання даних процесами одна з основних можливостей некоректності.
Перспектива знаходження помилок синхронізації за допомогою звичайних засобів налагодження є сумнівними. При відсутності спеціальних засобів налагодження найбільш корисним методом налагодження є аналіз програми з олівцем у руках.
У паралельній програмі дуже невеликі частини програми, що забезпечують взаємодію процесів, здатні привести до несподіваних змін поведінки програми.
Все це говорить про те, що процес підготовки паралельних програм повинен бути автоматизований.
При такій автоматизації можлива реалізація наступних чотирьох напрямків:
Розширення існуючих мов новими операторами, що дає можливість користувачеві описувати паралельні процеси і їхню синхронізацію.
Розширення існуючих компіляторів засобами виявлення операцій, які паралельно виконуються, де це можливо, і додавання необхідних засобів синхронізації для забезпечення коректності програми.
Додавання нового мовного рівня над існуючою мовою для опису бажаної паралельності й необхідної синхронізації, для того щоб дозволити базовим прикладним програмам залишатися незмінними.
Створення абсолютно нової мови й систем компіляції, у яких інтегруються поняття паралельності й синхронізації з усіма існуючими поглядами на опис обчислювальних алгоритмів.
Розглянемо коротенько ці напрямки.