Все идеи и алгоритмы, описываемые в данной статье, являются результатом моей независимой и полностью самостоятельной интеллектуальной деятельности. Как автор, разрешаю свободно использовать, изменять, дополнять все идеи и алгоритмы любому человеку или организации в любых типах проектов при обязательном указании моего авторства.
© Балыбердин Андрей Леонидович 2019 Rutel@Mail.ru
Синхронная Символьная Иерархия
Асинхронная передача данных
ССИ в своей основе, синхронная сеть и одной из основных претензий к таким системам является неэффективное использование каналов для компьютерных применений. Возможность быстро создавать и удалять каналы с произвольной скоростью часть этих претензий снимает, но остается мгновенное недоиспользование зарезервированной пропускной способности. Кроме того для вычислительных систем очень часто требуется быстро передавать короткие сообщения, с гарантией доставки в определенном диапазоне времени. Для решения этих задач в ССИ предусмотрен механизм асинхронной передачи данных.
Формирование асинхронного потока символов.
Если в момент формирования суммарного потока нет ни пользовательских ни служебных данных (ССИ_Коммутатор синхронных потоков (3)), то возможность передавать данные предоставляется блоку асинхронной передачи данных. Происходит формирование асинхронного потока символов, он также ка и служебный поток состоит из служебных символов и не разбивается на виртуальные каналы. Можно даже сказать, что блок асинхронной передачи это часть УУ коммутатора.
Создание асинхронных виртуальных каналов.
Каких то новых виртуальных каналов не создается, просто в описании канала добавляется метка о возможности внеочередной (не синхронной) передачи. Все остальное , выделение модуля виртуального канала, необходимого числа тайм-слотов идентично обычному синхронному виртуальному каналу. Решение о асинхронной передаче для конкретного виртуального канала принимает УУ коммутатора.
Алгоритм работы блока асинхронной передачи данных.
( Самый простой вариант )
-
В момент приема символа, модуль виртуального канала сигнализирует о возможности внеочередной передачи (асинхронности).
-
Если канал асинхронен, то номер модуля виртуального канала запоминается в специальном буфере УУ коммутатора.
-
Когда есть возможность асинхронной передачи, происходит формирование символа в теле которого закодирован список адресов модулей виртуальных каналов, для которых есть данные для передачи (из буфера).
-
Далее (в моменты когда есть возможность асинхронной передачи) производится запрос конкретных модулей и передача считанных данных (только тип данных изменяется на служебные).
-
Если в момент присутствия адреса в очереди происходит выбор модуля с адресом присутствующем в буфере УУ и больше нет данных для передачи, то соответствующий адрес удаляется из очереди на асинхронную передачу. Таким образом, виртуальный канал приобретает синхронную и асинхронную составляющую скорости передачи. Передать если есть возможность, но с задержкой не больше чем заранее задано.
При таком способе передачи данных будет теряться в районе 20% процентов от пропускной способности асинхронного потока, но это и так не используемые тайм-слоты и альтернативой такого использования которых является заполнение их символами «нет данных» (по факту полное не использование). Если каждому виртуальному потоку, допускающему асинхронную передачу приписывать некоторую синхронную производительность или просто не выделять пропускную способность сверх некоторого уровня заполнения суммарного физического потока, то получается достаточно быстрый механизм передачи асинхронных сообщений да еще и утилизирующий имеющуюся пропускную способность физического канала практически на 100%. Можно добавить механизм позволяющий изменять очередность, например чем больше номер модуля виртуальных каналов тем больше приоритет виртуального канала.
У данного механизма есть и недостатки, нет контроля за уровнем заполнения соответствующего буфера в модуле виртуального канала следующего коммутатора и может происходить переполнение. Алгоритмы предусматривающие отбрасывание данных именно коммутатором, рассматривать не будем. Поэтому асинхронная передача выглядит как отправка некоторого числа символов в асинхронный виртуальный канал, число символов определяется как минимальный размер буфера в промежуточных коммутаторах. И ожидание уведомления о приеме символов. Поскольку время доставки определяется физическим значением расстояния по кабелю, то для увеличения производительности асинхронного канала можно создать несколько параллельных асинхронных каналов и отправлять данные последовательно в каждый из них. Данный механизм напоминает процесс отправки пакетов протоколом TCP IP. Для частой передачи коротких сообщений (обновление значения переменной и тд) данный механизм достаточно оптимален. При проектировании сети, размер символа и размер буфера следует выбирать еще и с учетом размеров коротких сообщений.
Комментарии
Эм, а как таймслоты распределяются и как коллизии разрешаются ?
Для полного понимания необходимо прочитать последовательно :
https://aftershock.news/?q=node/1096748
https://aftershock.news/?q=node/1096761
https://aftershock.news/?q=node/1098175
https://aftershock.news/?q=node/1100582
https://aftershock.news/?q=node/1102401
Коллизий в ССИ нет принципиально - отбрасывание передаваемых данных исключено.
Есть только удаление запроса на создание нового виртуального канала (при отсутствии пропускной способности)
Прошу простить, подробно не вчитывался, просто пробежался. Как я понял вы изобретаете алгоритм честного шейпера + LACP ?
Думаю что нет, скорее так:
Модифицирую плезиохронные технологии (E1 и тд) , для оптимизации их использования в сетях суперкомпьютеров.
С функциональной точки зрения, проектирую сеть с практически полным отсутствие неконтролируемой асинхронности и
латентностью сопоставимой со скоростью света в кабеле связи уже после 30 см расстояния (с учетом промежуточных коммутаторов).
Пример практического применения - получить гарантированные 70 нс доступа к дезагрегированной оперативной памяти в пределах куба со стороной 5 метров полностью состоящего их процессорных элементов размером 100х100х50 мм.
А ну я хотел дописать в рамках ISDN e1/t1 ) Значит угадал ) Телефониста видно за версту ) Интересно, почитаю.
UPD просто решаем задачу честного шейпинга на большом массиве виртуальных каналов. Может что-то из ваших наработок и пригодится )
А почему именно процессорные модули если вы про ИИ. Почему, например, не взять массив ячеек, хз, MLC и в них хранить веса и можно вычисления производить чисто аналоговым методом, без построения сети передачи данных + память не нужна. Просто пятничные мысли вслух.
Вас на Хабре критикуют, так вы решили здесь накидать, а туда уже ссылочками на авторитетный ресурс?
https://habr.com/ru/post/549380/comments/#comment_24288349
+3 не так сильно и критикуют.
Я решил уничтожить биологическое человеческую цивилизацию, так где же еще публиковать статьи ?
И это не шутка, скорее неизбежное развитие событий.
Если "обезьянки" будут сотрудничать то будет так : https://habr.com/ru/post/489068/,
если будут упорствовать в своем невежестве, то в реальности будет воссоздан фильм "Терминатор", ну или в мягком варианте на "пальму".
слава богу (и по причине смертности) вы умрёте раньше чем убьёте хотя бы одного человека :)
Я публикую технологию которая позволит "неразумным" создать инструмент уничтожения ближнего своего.
Меня в серьез не воспринимают (фрик, ну или очередной сумашедший изобретатель и все такое) и когда будет опубликовано все, то предотвратить массовый доступ к этим знаниям будет невозможно.
Вы же не думаете если среднему человеку дать новый инструмент, то он начнет его пользовать иначе чем с попытки уничтожить своего соседа.
Практика показывает, что еще никогда такого небыло.
ну давайте, расскажите мне как технологию торрент применяю для убицтва людей, я достал чипсы и внимательно слушаю
А где вы тут торрент увидели ?
То что публикуется, это алгоритмы предназначенные для построения сильного ИИ.
Цитирую ваши же слова: " Я публикую технологию ...которая позволит "неразумным" создать инструмент уничтожения ближнего своего.
Вы же не думаете если среднему человеку дать новый инструмент, то он начнет его пользовать иначе чем с попытки уничтожить своего соседа.
Практика показывает, что еще никогда такого небыло."
Из этих ваших слов прямо вытекает ваша мысль, что "ни разу не было чтоб новая технология или инструмент не использовались для уничтожения человеков"
Ну так вот и берём первую попавшуюся технологию - торренты, и просим вас объяснить как же это она использвалась для убийств человеков
Вы про это )))
Подумайте для чего стали применять торрент, что бы лишить работы "еды" и жилья разработчиков ПО и создателей фильмов.
Кто то от невозможности отдать долги взял да и "повесился".
1. Вопрос нафига?
Что значит теряется пропускная способность. На примере домашнего коммутатора. У вас от квартиры до коммутатора есть физический канал в 100Мбит, ибо нет смысла делать меньше. Но до сервера может случиться с десяток узких мест, которые точно уже 100Мбит. Какая нафиг асинхронная передача?
2. Вам стоит написать, что именно вы хотите улучшить, протоколы передачи на существующей физике? Типа Ethernet.
Или ip/tcp/udp?
3. Вам будут задавать вопросы и про сравнение с mpls, всякими ring протоколами и прочим.
нет никакой проблемы в недостатке пропускной способности. Для этого есть очереди и всякие приоритеты qos и cos
думаю автор не осилил вникнуть в сложные протоколы современной передачи данных и придумал свой велосипед - попроще, правда не факт что он будет работать, надо же проверить для начала
Автор читал даже такие учебники которые были созданы еще до рождения всех зарегистрированных на данном сайте и новые протоколы своим вниманием не обошел.
Почитайте SpaceWire для понимания какие проблемы существуют в пакетных сетях.
А для среднего человека подходит практически все - если будут задержки открытия сайта, заикания, потери соединения, медленные каналы есть универсальное решение и звучит оно "Жри что дают, а то и это отключим".
среднего человека всё устраивает, а там где надо - там уже всё продумано, например в софте для суперкомпьютеров в РосАтоме
Современные суперкомпьютеры это набор калькуляторов объединенных медленной сетью.
Вот когда сможете моделировать биологическую клетку (на уровне атомов) хотя бы в 1000 раз медленнее реального времени тогда это действительно суперкомпьютер.
Ну или атомный заряд целиком.
В целом современный суперкомпьютер это чудовищное убожество, да еще и с колоссально не эффективной парадигмой программирования.
в реальности - убожество умрёт, а РосАтом останется
Даже не сомневаюсь, "Терминатору" нужен компактный ядерный реактор.
Представьте себе вычислительную систему (суперкомпьютер) с триллионами исполнительных устройств (сейчас называют вычислительными ядрами)
Каждое такое ядро генерирует результаты обработки, которые должны быть доставлены нескольким из других триллионов исполнительных устройств.
Для того что бы система работала стабильно, нужно гарантировать доставку с некоторым минимальным временем задержки и практически полным отсутствием потерь.
Построить такую сеть с использованием пакетной коммутации невозможно, потому что при превышении загрузки каналов коммутатора более 50% такая сеть сваливается в перегрузку с потерей данных и необходимостью повторной передачи.
Для понимания масштаба проблемы : Производительность вычислений (степень распараллеливания) зависит как корень квадратный от отношения времени вычислений на одном процессоре к времени затрачиваемому на коммутацию.
Замена IP сетей это не основная цель, она просто произойдет по причине не эффективности пакетной передачи (ССИ прозрачно эмулирует любую пакетную сеть).
Про MPLS это просто костыли.
думаю вы сильно ошибаетесь - пропускной способности много не бывает.
Вот чего точно нет это стабильность - выже знаете какие усилия нужно прилагать для такого примитива как IP телефон, а синхронных сетях это номеронабератель и ЦАП АЦП.
Во, уже задача проясняется. Под параллельные вычисления.
Вполне узкая и конкретная задача. Количество хопов минимально, динамическая маршрутизация почти не нужна. Сеть не перестраивается.
Есть протоколы под такое счастье. например, HPC Ethernet. https://mentor.ieee.org/802.1/dcn/19/1-19-0083-01-ICne-high-performance-computing-ethernet.pdf
infiniBand, omnipath, cray
Здесь упор делается на отсутствие блокировки в коммутаторе, но никак не защищает от перегрузки в конкретных каналах.
Относительно хорошо работает только в схеме звезда, когда все имеющиеся вычислительные узлы подключены к одному коммутатору.
Время коммутации достаточно большое - 500 нс и еще большая задержка по кабелю (коммутаторов мало).
Время доступа колеблется в районе первых мкс.
Для DataFlow основное соединение будет это соединение с соседом (по прямой 100-200 мм).
Мое мнение - слабо подходит для сильно распределеных систем (тут требуется первые нс задержки для связи с соседями).
ТАк задачу нудно поставить, и не забыть про архитектуру.
На 1км задержка 3000 нс.
Вы бы задачу сперва поставили. Что хотите добиться в параллельных вычислениях. Потом выяснится, что на это нужно больше времени на создание, чем на расчеты на существующих архитектурах.
А замена всего в гражданском использовании - явная утопия. Эффективность/затраты.
И для чего? Фильмы смотреть? В игры играть?
это полько в вакууме - умножте на 0.6 для оптоволокна.
Основные задачи это моделирование, цифровые двойники. Наберите в поиске : Задачи для суперкомпьютера и Вы поймете насколько современная техника медленная.
https://parallel.ru/research/apps.html
Основная задача, для решения которой я изобретаю суперкомпьютер : https://habr.com/ru/post/489068/
Гражданское использование это всегда "объедки" того что используется в сложных военных, научных задачах
Вот и тут никто для гражданского применения ничего переделывать не будет, будут использовать усеченные версии.
вы размахнулись изначально не только на суперкомпьютеры, где эта задача как-то может быть поставлена.
ясно-понятно. Лозунг для привлечения слабых духом)
да и кто решил, что идея «мозга на проволоке» состоятельна? Всегда можно изменить подход и решать задачу через био-системы.
именно! И скорость коммутации не будет такой большой, при сравнении со скоростью передачи.
Здесь биосистема с электронным имтерфейсом - органическая молекула включающая в себя чтото удобное для электрического (оптического, террагерцового) интерфейса.
Вот для проектирования, моделирования и нужны суперкомпьютеры.
Про слабых духом - правильнее так :
Биологическия эволюция исчерпала себя и человек деградирует с очень большой скоростью.
Если не заменить биологическую эволюцию на кибернетическую мы скоро исчезнем.
Вот только расстояние между взаимодействующими частями суперкомпьютера должно быть 10 см - ровно столько что бы отвести выделяемое кристаллом тепло и неболее.
Вычислительное ядро должно вместе с радиатором иметь размеры менее 100х100х25 мм и потреблять до 1000Вт.
самое интересное, что если это осуществить, то исчезновение тоже произойдёт)
С одной стороны биологическая эволюция это цепочка исчезновений и при этом не всегда в паре с созданием нового организма.
Мое "ненаучное" мнение, сейчас пришло время когда должно начнется переход эволюции из биологической формы в чисто информационную.
Тут проще так - в следующей статье я опишу работу дезагрегированной оперативной памяти , а Вы сами ответите можно ли что то похожее сделать уже имеющимися сетями связи.
Перспективный чат детектед! Сим повелеваю - внести запись в реестр самых обсуждаемых за последние 4 часа.