Pull to refresh

Comments 55

Красиво, конечно, но наверняка имеет ту же болезнь, что и их прообраз-транспьютер — неэффективные коммуникации.
Тут недавно на хабре предлагали серверную стойку набить под завязку модулями SoC ARM — экономично и недорого; но дело в том, что HyperTransport и сложные протоколы инвалидации кешей далеко не от хорошей жизни придумали…
тут вполне возможно, что имея минус (неэффективные коммуникации) они имеют плюс (например низкое потребление).
А отказоустойчивость такой системы и незначительность отдельного элемента (при его-то характеристиках), возможно, довольно интересны.
Мне кажется, само название «материнская плата» уже вкладывает определенный посыл :)
Не, я не спорю, ARM в своей нише довольно устойчиво себя чувствует. Но по 57$ за модуль на ARM7TDMI — это грабёж! :)
за модуль, а не за проц
Вот если бы их соеденить не между собой а общей шиной как детскую мозаику — это было бы нечто грандиозное, типа мини-блейд-конструктора
Общая шина влечет наличие конфликтов, и, как следствие, необходимость в арбитраже доступа к шине. Несмотря на то, что это может осуществляться как средствами протокола (CAN, например), так и за счет архитектуры (тот же Sony Cell, например, использует 1 из 8 ядер для этих целей), факт остается фактом — чем больше на общей шине устройств, тем больше ресурсов тратится на арбитраж конфликтов.
Как с людьми, в общем-то :) Чем больше народу в коллективе, тем больше времени/других ресурсов тратится на коммуникацию.
Надо закладывать высокую пропускную способность, чтоб при полном заполнении не падала производительность

P.S. Шину может контролировать выделенный контроллер
Вывод-то я и не написал :) — с добавлением новых модулей производительность будет расти далеко не пропорционально количеству устройств: в среднем, стабилизируется где-то на уровне sqrt(N), а потом и вовсе будет уменьшаться.
а можно чуть подробнее про sqrt(N) — что это и почему именно такая формула?
Горячая замена, приводимая в статье, автоматически предполагает, что мы не можем пользоваться эффективными способами арбитража шины в реальном времени — типа виртуального маркера или тайм-фреймов.

Sqrt(N) — это порядок времени, отводимого на непосредственную работу узла. Предположим, что все узлы участвуют в арбитраже, тратя на это часть мощности. При использовании шины произвольной топологии это недалеко от правды, т.к. «паутина» будет неэффективно обеспечивать коммуникацию в случае единого физического арбитра (Cell это уже ощутили, но у них обойдено другим путем)

Вероятность того, что работа узела будет прервана или потрачена на арбитраж, оценивается степенным полиномом, т.е. полкуаем натуральный логарифм. Однако на практике ситуацию спасает локальность сети — (т.е. узлу пофик на другой узел, находящийся достаточно далеко), и получается ~sqrt(N).
Ещё бы IO к нему какое-то, и было бы супер устройство.
UFO just landed and posted this here
Объединить эти процессоры и кубики от робота-гусеницы, которая сама себя конфигурирует, наделать побольше и ждать захвате вселенной.
доступ к IO опять будет слабым местом, хотя тоже возможны варианты.
А что если их немножко раскачать и использовать в военной технике, написать под это все динамическую прошивку, которая верно распределяла бы мощность для выполнения задачи, ну и распихать по всему корпусу.
Что такое «динамическая прошивка»? Гугл тоже не знает :(
Полагаю, что речь идет о неком программном диспетчере задач / нагрузки. Что-то вроде биоса, который будет контролировать всё это железо на низком уровне.
Если я всё правильно понял, то это старая идея. Называется систолическая архитектура. Удобно использовать для операция с матрицами, численных решений дифуров, моделирования химических реакций… В общем штука нужная, но узкоспециализированная…
Автор, а откуда вы взяли 16кб SSD? Зачем там 16кб SSD, если уже есть 128кб EEPROM?
Тем более, что ни на сайте магазина, ни в статье ничего о SSD не упоминалось.
UFO just landed and posted this here
Ну спецификацию я конечно же посмотрел. Но вопрос с SSD это не решило.
В общем — непонятно.
UFO just landed and posted this here
Ну встроенную flash лучше оставить для прошивки, наверное.
Просто непонятно, зачем два хранилища данных, учитывая, что EEPROM там больше и он надежней (в плане количества циклов стирание-записаь), чем flash.
UFO just landed and posted this here
Оно то читается блоками, но обычно во всяких embedded девайсах всё равно используются flash контроллеры с последовательным интерфейсом (SPI или TWI).
Опять же обычно ставят небольшое хранилище на EEPROM для сохранения текущего состояния устройства (на случай сброса) и большую флешку для хранения более-менее постоянных данных. А тут — всё наоборот: маленькая флешка и большой EEPROM
UFO just landed and posted this here
UFO just landed and posted this here
UFO just landed and posted this here
Мне тетрис почему-то напомнило…
Модульных роботов, микросхем и чего только не очень много.
От этой-то какая польза, кроме мигания светодиодами?
Интересный концепт.
Можно распихать таких штук по кузову автомобиля и обрабатывать данные асинхронно по месту поступления(при наличии IO, конечно).

Ведь необязательно, что вычислительная система будет построена только на таких блоках.

Еще бы независимый источник энергии, беспроводные коммуникации с ближайшими соседями, уменьшение размера/стоимости разика в 4 и будущее уже здесь.
:)
Что-то я не понял, а где реально функционал материнской платы? Или это материнка для цветомузыки?
Светодиодами можно и менее мощными процессорами управлять.
Приход репликаторов не за горами?
А по моему здорово!
Вот только развить проект, т.е. увеличить мощностя и уменьшить размеры и можно применять, например в робототехнике.
Для домашнего пользователя это мало интересно, в вот крупным организациям…
Представьте серверную в которой не 10 серваков и каждый занят своим делом, а 1 большой мозг, который можно модернизировать буквально на лету.
Выше на эту тему товарищ sse высказался грамотно по этому поводу.
UFO just landed and posted this here
В видео мат. плата перемигивается только с одной из четырёх соседних плат одновременно.
если бы можно было какнить распаралеливать задачи внутри этой системы…
например выполняется вычисление долго… раз добавил еще платку и система сама распаралелила вычисление…
короче перспективы большие…
Ага, выполняется вычисление долго — бац, система мигает диодом, мол — воткни еще платку, не жлобись, я распараллеливать буду )
Или посылает сигнал ближайшему R2D2, чтобы тот воткнул? :)

Перспектив никаких, читайте пост еще раз
Перспектива (правда доработок должно быть очень много), при условии что можно увеличить частоту и объем памяти:
Изначально каждая плата должна выполнять все функции, какие есть в полноценном компьютере. То есть взял такую платку и у тебя есть «компьютер». Естественно он работает медленно и ты берешь и подключаешь еще одну плату. В это случае платы должны найти друг друга и «договориться» о том какая что делает (например одна отвечает за вычисления, а другая за обработку графики). При такой концепции можно неограниченно наращивать мощности
+ если бы была возможность не только автоматически распределять «обязанности», а еще и вручную то это могло бы ускорить работу (например захотел переконвертировать видео, указал руками что 90% мощности сейчас необходимо использовать для вычислений, закончил конвертировать и захотел поиграть в игру указал что 90% мощности сейчас надо использовать для обработки графики....)
>> доработок должно быть очень много… при условии что можно увеличить частоту и объем памяти:
Ага, а если в слове «хлеб» сделать 4 ошибки, получится слово «пиво»

>> неограниченно наращивать мощности
Да, да, неограниченно. А мужики-то и не знают!

>> а еще и вручную то это могло бы ускорить работу
Если бы была возможность вручную распределять обязанности, то производительность была бы хуже, чем при автоматическом распределении, потому что компьютер может посчитать оптимальную загрузку вернее, чем вы.

Простите, этот разговор ни о чем. Попробуйте для начала что-нибудь спаять на микроконтроллерах или SoC — думаю, вы узнаете много нового для себя.

До свидания
Вы не первые кто додумался до этой идеи, она была реализована еще в СССР. Не помню, увы, название компьютера, но он себя не оправдал. Круг задач, хорошо поддающихся распараллеливанию сильно ограничен(графика — один из «хороших»). Для большей части задач производительность с увеличением количества процессоров растет не значительно. Тем более при условии, что распределение по процессорам происходит в реальном времени. Более удачные результаты возможны при предварительном компилировании с учетом всех процессоров и их архитектуры, но это, в реальном времени сделать не получится, я думаю =)
Простите, я не совсем прав — одно применение указано прямо в статье:
замечательно светятся в темноте
не вполне понятное объяснение того зачем это нужно а — зато купить набор можно… здесь
UFO just landed and posted this here
не «Illuninato», a «Illuminato»
Это как в названии, так и в тексте и в тегах статьи.
Где-то читал подобную историю — какой-то молодой инженер придумал подобное же решение, и им военные заинтересовались. Говорят, вешали такую сборную плату на дерево и расстреливали из автоматов — а она продолжала работать, хоть и уменьшая скорость работы соответственно выбитым модулям. И вроде как разработку вместе с инженером забрали в ЦРУ и засекретили. Но читал давно, пруфлинк, конечно, не дам уже.
Книга «Глубина в небе» Вернора Винжа, погуглите «локализаторы Ларсона». в прошлом году в новостях проскальзывала новость о том, что нечто подобное военные уже тестировали.
Сразу напрашивается решение из институтского курса параллельных вычислений. А как оно будет работать в топологии «кольцо» или «тор»? Соединить можно, а работать как?
Sign up to leave a comment.

Articles