Відображення віртуальних процесорів на фізичні процесори

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

Відображення віртуальних процесорів на фізичні з їхніми зв'язками відбувається непомітно для користувача за допомогою спеціальних апаратних засобів або "інтелігентного компілятора". При цьому треба вирішити такі проблеми:.

- віртуальні процесори мають бути рівномірно розподілені між наявними фізичними процесорами. Ця задача вирішується методом ітерацій спеціальною апаратурою або допоміжними кодами компілятора. Правильне розподілення полегшує побудову потрібних віртуальних зв'язків між процесорами;

- по можливості в разі наявності декількох комутаційних структур треба використовувати найшвидшу структуру зв'язку (здебільшого решітчасту структуру);

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

- якщо кількість потрібних віртуальних процесорів перевищує кількість наявних фізичних ПЕ, то виконання операцій обміну даними можливе тільки через велику буферну область пам'яті, що приводить до суттєвих втрат часу.

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: