Це команда ibdm-ibnl-file, яку можна запустити в постачальнику безкоштовного хостингу OnWorks за допомогою однієї з наших численних безкоштовних робочих станцій, таких як Ubuntu Online, Fedora Online, онлайн-емулятор Windows або онлайн-емулятор MAC OS.
ПРОГРАМА:
ІМ'Я
ibnl - загальний формат IB netlist
ОПИС
Файл топології IBDM ibdm-topo-файл забезпечують засоби для опису IB тканини за допомогою набору
заздалегідь визначені системи. Системне визначення надається в одному файлі у форматі IBNL
описує внутрішнє підключення InfiniBand системи з точки зору плат і
пристроїв. Коли IBDM запускається, він аналізує всі доступні файли визначення системи перед ним
обробляє файл топології. Файли розташовані в наступному каталозі відносно
префікс встановлення: /lib/ibdm1.0/ibnl.
Ця довідкова сторінка описує формат файлу IBNL, який використовується для визначення довільної системи IB
внутрішнє підключення IB. У ньому викладено основні поняття, які використовуються у файлі, наведені деталі
як написати такий файл і надає формальне визначення синтаксису файлу в BNF
подібний формат (YACC/Bison читається).
1. головний Поняття
Описаний формат файлу для визначення зв’язку загальної системи IB використовує наступне
термінологія:
НАЗВ
Примірник пристрою IB може бути комутатором або канальним адаптером
ПІДСИСТЕМА
Створення екземпляра плати або модуля в системі
SYSTEM
Визначення плати або модуля
ТОПСИСТЕМА
Найвища система, визначена у даному файлі
МОДИФІКАТОР ПІДСИСТЕМИ
Багато систем допускають кілька варіацій своєї підсистеми, наприклад 12X-версію a
листова плата в MTS9600. Модифікатор є суфіксом до назви плати. Формат IBNL
підтримує присвоєння кількох імен одній платі.
2. Файл сформований
Точний формат файлу наведено в розділі 4. Цей розділ містить лише додаткові
інформацію про специфічну семантику різних розділів.
Файл IBNL чутливий до рядка, оскільки для початку з нового рядка потрібні різні розділи.
Файл розбитий на кілька розділів SYSTEM (необов'язково) і один TOPSYSTEM. У кожного по одному
або більше імен.
З'єднання визначаються лише всередині розділу SYSTEM/TOPSYSTEM і, таким чином, можуть бути двома
типи:
1. Між будь-яким вузлом або підсистемою до іншого вузла чи підсистеми
2. Від будь-якого вузла або підсистеми до роз'єму системи.
ПРИМІТКА-1. Верхня система може визначати порти, які можуть бути надлишковими і ні до яких не підключені
роз'єм плати нижнього рівня. У цих випадках порти просто опускаються з
результуюча система. Ця функція дозволяє визначити порти на передній панелі такого пристрою 12X/4X
що якщо вибрано аркуш 12X, використовуються лише порти передньої панелі 12X.
ПРИМІТКА-2. Ширина порту та швидкість, надані на найнижчому рівні, мають пріоритет перед
визначення, надані на верхніх рівнях ієрархії.
3. керівні вказівки та цінності лист a SYSTEM ІБНЛ Файл
Щоб надати нову систему IBNL, слід дотримуватися наступної процедури:
а) Назвіть файл за системною назвою: .ibnl
b) Визначте розділ СИСТЕМА для кожної плати, включеної в систему
в) Назви портів плат - це просто рядки, ми використовуємо простий формат Pn, де N
це просто серійний номер, але ви можете вибрати будь-яку назву. Просто переконайтеся, що це так
унікальний.
d) Коли існують різні смаки дощок, наприклад, коли у вас є варіанти 4x та 12x для
дошка називає додаткові дошки з постфіксом модифікатора. Приклад такої системи
яка підтримує плату LEAF типу 12x і 4x, означає визначити дві СИСТЕМИ:
СИСТЕМА ЛИСТ, ЛИСТ: 4x, ЛИСТ: 4X
...
ЛИСТ СИСТЕМИ: 12x, ЛИСТ: 12X
...
ПРИМІТКА-3: Примірники плат LEAF в іншій платі або верхній системі
не потрібно вказувати постфікс і вирішуються лише тоді, коли топологія
файл розбирається. "СИСТЕМНИЙ ЛИСТ" без постфікса буде використовуватися за замовчуванням.
Щоб продовжити приклад, ось як створюються екземпляри LEAF у верхній системі:
TOPSYSTEM MyIbSystem
ЛИСТ лист 1
...
ЛИСТ лист 2
...
Фактичну версію плати LEAF 4x або 12x можна вказати в
Розділ файлу топології CFG, щоб вибрати правильну комбінацію додаткових плат
система. Прикладом буде:
MyIbSystem N001 CFG: leaf2=12x
У цьому випадку leaf1 буде 4x, оскільки для нього не визначено спеціальний модифікатор (і
LEAF за замовчуванням є 4x листом). Leaf2 буде 12x, як визначено в CFG
.
e) Особливі міркування слід звернути на проектування верхньої секції системи, коли
існує кілька додаткових типів плат. Верхній системний розділ може включати кілька
визначення штекерів передньої панелі, таких як P1-4x і P1-12x (так, це просто
назви, які мають слідувати за написом на передній або задній панелях). Як
різні смаки дощок не потрібні для визначення однакових назв
їхні порти, включаючи порт 12x, можуть залишити деякі з'єднання верхнього рівня
звисають (не підключені) і, таким чином, порти передньої панелі іншого типу
буде вилучено з остаточного визначення системи. Як приклад наведемо
розглянемо просту плату LEAF з 3 варіантами 4-х портів і одним 12-кратним портом.
Ми рекомендуємо підключати його на верхньому рівні за такою схемою:
ЛИСТ СИСТЕМИ: 4x
ВУЗЛ U1
1 -4x-> 4XP1
2 -4x-> 4XP2
3 -4x-> 4XP3
...
ЛИСТ СИСТЕМИ: 12x
ВУЗЛ U1
1 -12x-> 12XP1
...
TOPSYSTEM myIbSystem
ПІДСИСТЕМА ЛИСТ листок1
4XP1 -> L1/P1
4XP2 -> L1/P2
4XP3 -> L1/P3
12XP1 -> L1/P1-12x
f) Помістіть файл у /lib/IBDM/ibdm1.0/ibnl каталог
g) Перевірте новий синтаксис файлу, розмістивши його в каталозі ibnl, як описано
вище, створюючи просту топологію (ibdm-topo-файл файл з одним таким
система і працює ibdmtr утиліта для його розбору, простежуючи простий шлях
крізь це.
4. Формальний визначення in YACC Синтаксис:
INT ::= ([1-9][0-9]*⎪0) ;
ШИРИНА ::= (4x⎪8x⎪12x) ;
ШВИДКІСТЬ ::= (2.5G⎪5G⎪10G) ;
NODETYPE ::= (SW⎪CA⎪HCA) ;
НАЗВА ::= ([\[\]\\\*/A-Za-z0-9_.:%@~]+) ;
NL: ЛІНІЯ ⎪ NL ЛІНІЯ;
ONL: ⎪ NL;
ibnl: топсистема систем ONL;
системи: ⎪ системна система ;
sub_inst_attributes: ⎪ sub_inst_attributes sub_inst_attribute NL;
sub_inst_attribute: NAME '=' NAME '=' NAME ⎪ NAME '=' NAME '=' INT ⎪ NAME '=' NAME ;
topsystem: TOPSYSTEM system_names NL sub_inst_attributes insts ;
система: SYSTEM system_names NL insts ;
імена_системи: ім'я_системи ⎪ імена_системи ',' ім'я_системи ;
ім'я_системи: NAME ;
insts: ⎪ вузол insts ⎪ підсистема insts ;
вузол: node_header NL node_connections ;
node_header: NODE NODETYPE INT NAME NAME ;
node_connections: ⎪ node_connections node_connection NL ;
підключення вузла: посилання вузла на вузол ⎪ посилання на вузол;
node_to_node_link: INT '-' WIDTH '-' SPEED '-' '>' НАЗВА ⎪ INT '-' WIDTH '-' '>' НАЗВА INT ⎪
INT '-' SPEED '-' '>' НАЗВА INT ⎪ INT '-' '>' НАЗВА INT ;
node_to_port_link: INT '-' WIDTH '-' SPEED '-' '>' НАЗВА ⎪ INT '-' WIDTH '-' '>' НАЗВА ⎪ INT
'-' SPEED '-' '>' NAME ⎪ INT '-' '>' NAME ;
підсистема: subsystem_header NL subsystem_connections ;
subsystem_header: НАЗВА ПІДСИСТЕМИ ;
підсистемні_підключення: ⎪ підсистемні_підключення підсистемні_підключення NL ;
підсистема_підключення: підсистема_посилання_підсистема ⎪ підсистема_посилання_порту ;
subsystem_to_subsystem_link: НАЗВА '-' WIDTH '-' SPEED '-' '>' NAME NAME ⎪ NAME '-' WIDTH
'-' '>' НАЗВА НАЗВА ⎪ НАЗВА '-' ШВИДКІСТЬ '-' '>' НАЗВА НАЗВА ⎪ НАЗВА '-' '>' НАЗВА НАЗВА ;
subsystem_to_port_link: НАЗВА '-' WIDTH '-' SPEED '-' '>' NAME ⎪ NAME '-' WIDTH '-' '>'
НАЗВА ⎪ НАЗВА '-' ШВИДКІСТЬ '-' '>' НАЗВА ⎪ НАЗВА '-' '>' НАЗВА ;
Використовуйте ibdm-ibnl-file онлайн за допомогою служб onworks.net