Как стать автором
Обновить

Комментарии 14

Вообще, строго говоря, «редукционные вычисления» сейчас не просто реализуемы, а работают и успешно используются. Потому что когда компилятор увидит подобную конструкцию, он развернет её в такую последовательность команд, которая будет загружена на конвейеры (см. суперскалярность), параллельно выполнит входящие подвыражения, на одном из этапов загрузив данные из памяти. Да, это не совсем честные «редукционные вычисления», но только для их реализации сам процессор будет гораздо сложнее, а выигрыша по сравнению с текущим положением будет не много.
А работает ли это с мультипроцессорными или хотя бы многоядерными архитектурами? Или еще круче, с GPU?
Суперскалярность да. А специальным образом скармливать ей данные — задача программиста (компилятора). Более того, прикинул тут — вы, в общем то, все равно не сможете посчитать сумму, не посчитав отдельные слагаемые. Идея же заключается в том, чтобы процессор самостоятельно выбирал это? хм, а какой смысл в этом? для этого есть ЯП, где такое делать в разы проще, а выигрыш вообще не понятно в каком месте.

К слову, опять же — мультипроцессорное. Если у вас подобный подход будет работать так, что части выражения будут считаться на других пусть даже ядрах, я уже молчу про отдельные сопроцессоры — проигрыш от синхронизации будет в разы, а то и в десятки раз превышать преимущество.

P.S. Суперскалярность работает с многоядерными архитектурами в том смысле, что у каждого ядра по своему конвейеру, а не что общий конвейер раскидывает по разным ядрам. Впрочем, наверное, если сильно постараться, такое тоже можно найти, но не понятно зачем выносить это на хардварный уровень, когда программно делается в разы проще, а результат такой же.
в теории оно понятно, меня больше текущая практическая возможность интересует :)

p.s. мое мнение — синхронизация это упрощение, огрубление технологии. в теории возможна синхронизация доступа на уровне компилятора! а это на порядок быстрее.
… успешно используются
Векторизация и суперскалярность к редукционной модели вычислений не относятся. Если же вы имели в виду оптимизации на основе редукции при компиляции, то при чём тут аппаратная редукционная машина?
… сам процессор будет гораздо сложнее, а выигрыша по сравнению с текущим положением будет не много.
До сих пор данное направление не блистало, но давайте не будем так будем его так безапелляционно отправлять в корзину. Попыток было не так много, и до сих пор альтернативные подходы имели мало шансов на фоне бурного развития традиционной архитектуры. Я надеюсь, что редукционные машины ещё найдут свою нишу, и даже сам пилю свой проект на эту тему.
Давай те порассуждаем. Сразу оговорюсь: вполне возможно я просто не проникся идеей, либо не улавливаю какую-то суть, но тут лишь прикидки.

Первое, что приходит в голову — как программы под такие решения будут храниться в памяти? Как процессор будет понимать, как он должен посчитать то или иное? И если с точки зрения схемотехники в общем то такое реализовать не самое сложное, то с точки зрения микроархитектуры, организации памяти (а именно хранения программ) и собственно написание самих программ становится сложнее и в большинстве случаев будет скатываться к тому, что мы используем сейчас.

Второе. На сколько я понимаю — идея в том, что он будет получать на вход какое-то уравнение и его слагаемые будет вычислять по-отдельности, запрашивая переменные по мере необходимости? Ну я в упор не вижу зачем этим нагружать процессор, когда это вполне эффективно реализуется программно.

Третье. Для графических чипов или обсчета аэродинамики в этом может и есть какой смысл, и то я убежден, что гораздо эффективнее просто заранее грамотно подготавливать данные для фон-неймовской архитектуре (а наиболее часто используемые выражения реализовывать аппаратно). Но при обычном использовании ЦП последнее, чем нагружен — сложной математикой. Большую часть времени он пересылает данные, крутит счетчики и делает сравнение. Большинство из этого при переходе к редукционной модели только потеряют в вычислительной мощности.

Что касается искусственного интеллекта и нейронных сетей — я бы тут вообще начал с того, что называть и как реализовывать искусственный интеллект, а нейронная сеть, ИМХО, будет иметь самую эффективную структуру как раз в виде нейронной сети, которая даже близко не напоминает ни фон-неймовскую, ни гарвардскую, ни редукционную.
Первое, что приходит в голову — как программы под такие решения будут храниться в памяти?
Это может быть обычная память, содержимое которой последовательно сканируется на предмет поиска редексов, может быть что-то более специальное, интеллектуальная память способная к простой обработке содержимого.
Как процессор будет понимать, как он должен посчитать то или иное?

В смысле? Ищем ближайший или наиболее приоритетный редекс, применяем преобразование, повторяем пока не достигли конечного условия или не осталось редексов.
Второе. Насколько я понимаю — идея в том, что он будет получать на вход какое-то уравнение и его слагаемые будет вычислять по-отдельности, запрашивая переменные по мере необходимости? Ну я в упор не вижу зачем этим нагружать процессор, когда это вполне эффективно реализуется программно.
Например, можно обрабатывать несколько частей программы параллельно. Ещё можно использовать такую машину для выполнения функциональных программ, сделать лисп-машину.
Для графических чипов или обсчета аэродинамики в этом может и есть какой смысл,
Вот как раз такие задачи требуют матричных цифромолотилок. Для редукционных машин подходят скорее символьные вычисления, бинарная трансляция и т.п.
> Очевидно, что компьютеры, созданные по таким технологиям превзойдут все современные
Кому очевидно, если не секрет? Мне лично — нет.
По поводу превосходства квантовых и фотонных компьютеров над современными — моё субъективное мнение. По крайне мере, практически, все источники преподносят это именно так. Хотя, действительно, пока сам не увидишь своими глазами и не сравнишь сделать однозначные и достоверные выводы сложно.
А можно ссылку на эти источники?
Просто квантовый компьютер теоретически предназначен для решения очень специфических задач, типа алгоритма Шора, и не предназначен для выполнения программ в общепринятом понимании. Практически же попытки его создания сталкиваются с непреодолимыми (в настоящее время) трудностями.
Что вы имеете в виду под фотонным компьютером, я не знаю, но действительно существуют оптические вычислительные устройства, предназначенные для решения очень специфических задач, и не предназначенные для выполнения программ. Замена электронных логических элементов на их оптические эквиваленты возможна, но технологически это будет огромный шаг назад в силу их больших размеров, ограниченных снизу длиной волны.
Вот ссылка на видео: www.youtube.com/watch?v=MRuhy3QFOIA — но это больше для обывателя. Вот ещё ссылки: www.lookatme.ru/mag/how-to/inspiration-howitworks/212579-quantum-computers-explained, или вот: compress.ru/article.aspx?id=17653.
Что же касается фотонных компьютеров, то первое упоминание о них я встретил на страницах журнала «Техника молодёжи»: Понкратов Б. Фотонный мозг. Техника молодёжи, 1990 №10, стр. 10 — 12. С того момента технологии шагнули вперёд и уже появились реальные оптические сигнальные процессоры: www.eplast1.ru/forum/63/1976, dkws.narod.ru/linux/etc/optical/cpu.html.
ОК, вот на compress.ru очень грамотная и подробная статья. В ней упоминается только вышеупомянутый алгоритм Шора, факторизация чисел, и больше ничего. В компьютерре тоже когда-то были хорошие статьи про квантовые компьютеры.

Сигнальный процессор по ссылке — это специализированный вычислитель, выполняющий умножение матриц, и больше ничего. Там нет никакой программы, никаких алгоритмов, ничего этого.

А в журнале «Техника-Молодёжи» и про НЛО писали, и про всякий прочий оккультизм, это весьма недостоверный источник информации.
НЛО прилетело и опубликовало эту надпись здесь
И очевидно, что процессорам работающим по таким принципам до возможностей того самого терминатора ещё дальше чем медному котелку до Китая пешком. И тут же возникает вопрос: «А существует ли альтернатива такому способу реализации программных алгоритмов, которые смогли вывести бы машинные вычисления на принципиально новый уровень, не выходя за рамки возможностей современной электроники?»
А возможно ли сделать такие транзисторы и микросхемы в телевизоре, которые бы смогли сами рекомендовать программы по ТВ, вырезали бы рекламу и рассуждали бы о достоинстве ведущей? Между «вычислениями, алгоритмами» и «формализацией искусственного интеллекта» непреодолимая пропасть, которая должна быть наполнена решениями и знаниями самого разного уровня и никак не относящихся напрямую к вычислениям и алгоритмам.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории