От Павел Чайлик
К Alex~1
Дата 20.01.2009 17:48:59
Рубрики Экономика & финансы; Управление & методология;

Re: Alex~1-у и...


>>В качестве отдельной темы было бы интересно обсудить (в том числе с позиций полилогии) некоторые, с одной стороны, узкоспециальные технические темы, с другой стороны выводящие на эти самые универсальные технобионты.
>
>Да, интересно.

>>Интересно обсудить перспективы развития вычислительной техники с позиции текущего состояния дел в процессорной технике.
>
>Да, интересно. Но пока ситуация довольно тупиковая.

>>Как мы знаем началом были теоретические работы в области математики и т.н. машина Тюринга и ее более приземленный вариант (это конечно примитивизированное мной утверждение) – машина фон Неймана. (
http://ru.wikipedia.org/wiki/%D0%9C%D0%B0%D1%88%D0%B8%D0%BD%D0%B0_%D1%84%D0%BE%D0%BD_%D0%9D%D0%B5%D0%B9%D0%BC%D0%B0%D0%BD%D0%B0)
>
>Все-таки "архитектура фон Неймана". Машина Тьюринга (а также эквивалентные математические конструкты Черча и Маркова) - это немного другое. Это, скорее, математическое определение того, что такое "алгоритм" в современном понимании.

Да. Все именно так.


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

>>Итак, процессор (вопрос много-ядерности в одном кристалле тоже пока без разницы) – фиксированный набор аппаратно реализованных средств (алгоритмов) выполнения последовательностей команд.
>
>Да, конечно. Но при этом не надо забывать, что это алгоритмы очень, очень высокой степени универсальности (хотя очень простые), и рассматриваются не как "конечный алгоритм", а как элемент можного, очень мощного конструктора, реализуемого не на аппаратном уровне.

Универсальность тут обратно пропорциональна производительности. Задача - снять такую зависимость. (м1)

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

см. (м1) - это отдельная, другая, параллельная задача.

>>Проблема в том, что все выпускаемые устройства «идут с мусор» уже через совсем небольшой промежуток времени, безнадежно отставая от программных средств.
>
>Ну и хорошо, что отстают.
>Человек вообще мыслит "медленно" в "аппартаном смысле". Не в этом дело.

Да. Дело не в этом. Но и этот вопрос, вроде по идее частично решаем.

>>Теперь немного переключимся на так называемые ASIC схемы ( http://ru.wikipedia.org/wiki/ASIC). Основная идея – для решения узкоспециальной задачи бывает экономически оправдано разработать интегральную схему для решения этой задачи с наилучшими временными и пр. показателями. Очевидно, что масштабы использования этих устройств определят себестоимость производства одной единицы.
>
>Это, скорее, чисто экономическая задача. Иногда такой подход используется для повышения надежности.

Я привел ASIC схема в качестве рабочего примера и элемента на который можно стать в построении образа проекта.

>>Теперь вопрос. Не нашел такой его постановки, наверное по причине «недостаточно усердных» поисков (может кто знающий подскажет).
>>Возможна ли такая (конечно на данный момент нет таких технологий) организация электронного микро- или нано-устройства, в котором базовые элементы, посредством какого-то «внешнего» («над», «само») управления способны образовывать структуры, эквивалентные некоторым ASIC-схемам.
>
>Безусловно, возможна. Хотя бы потому, что в такой постановке задаче нет НИКАКИХ принципиальных технических ограничений.

Зато полно технологических.
Я пока себе даже представить ничего конкретного не могу.

>>Конечно же эта постановка вопроса узка в научном смысле, но я ее сформулировал в таком виде для указания «откуда ноги растут» или точнее «откуда ноги могут расти».
>
>Ага, ага, "элементы искусственного интеллекта"? :)

Если юмор относится к подражанию "кибер-шибер", то я как раз свою идею строю как эволюционную от текущих процессорных решений. Есть же еще и всякие био-вычисления на ДНК вроде Адельмана. :))

>>В более общем виде речь идет о «матрице» элементов (пока можно абстрагироваться от их внутренней, кстати, совсем не простой организации), способных выполнять целый набор функций (в отличии от триггеров, способных находиться в ряде состояний), переключаться между режимами-состояниями внешними «командами», образовывать различные конфигурации, топологии по форме и характеру связи с другими элементами. Такая матрица, превращается в реагирующий на сигналы по возможности максимально многоканально «мозг». Нейронная сеть, например, – это лишь одна из возможных организаций (и топологий) внутри такой матрицы.
>
>И?

>>При этом вопрос разработки более производительных процессоров и программ уже переходит в другую плоскость. Это уже другие 2 вопроса: а) производство более объемных матриц или организация возможности «сцепления» большого количества таких матриц в одну распределенную вычислительную систему; б) разработка схем, оптимально распараллеливающих процедуру обработки «сигналов» (запросов, и прочих средств заставить работать программу) и средств компиляции алгоритмов высокого уровня в такие структурные, топологические, логические схемы.
>>Второй вопрос – разработка алгоритмов компиляции программ на языках высокого уровня в схемы может быть отдельной теоретической и творческой областью не связанной жестко даже с внутренней организацией матрицы и тем более с технологией ее производства. И еще, вторую задачу как научную и технологическую можно формулировать и разрабатывать даже в отсутствии элементной базы, с «положительной обратной связью» стимулирующей и корректирующей разработки таковой в качестве «квалифицированного постановщика задачи». Такое вот разделение задачи с «вывертом наоборот» формулирования технологических требований мне кажется интересным и перспективным подходом.
>
>Я, возможно, не понял постановки задачи. Какой смысл связывать это с хитрой "технологической" структурой? Почему бы не пойти гораздо более естественным (для начала) путем - работать на уровне организации супер-взаимодействия программных конструктов?
>Такая тенденция, кстати, просматривается довольно отчетливо.

То что вы говорите о параллелизме и кластерных решениях (или вы об ARM-процессорах) оно тоже как-то побоку самой идее такой вот предложенной мной архитектуре. Одно другому не помеха. Просто в такой постановке задачи большую часть вычислительных проблем возможно будет решать именно что написанием новых алгоритмов без столь частой замены элементной базы.

Вот тут поподробнее. Вся эвлюция (ой замахнулся...) реально работающих вычислительных средст (а я тут пока именно о средствах а не о программах и не аппаратно-программных) являет собой (почему бы не посмотреть на это и так) сначала движение к упрощению базовых элементов лежащих в основе технологического изделия и наращивания их количества (то есть усложнение архитектуры), потом упор в технологические барьеры, и тут дорога "раздвояивается" :))
Либо идет возврат к перепроектированию лежащих в основе элементов (основ тут тоже несколько пластов), например усложнение конвейеров в CPU, либо по пути изменения технологий с целью повышения тактовой частоты (это уже не архитекрурные решения). А вот в архитектурных прослеживается что-то вроде унификации самих методов пронизыващих все более высокие пласты проектирования.
Пример, сначала пихали много конвейеров в процессор, теперь уже много ядер (процессоров) в кристалл. Вон у Sun аж 8 ядер по 8 конвейеров. Следующим этапом, думаю, всю эту накопившуюся сложность начнут унифицировать (сначала рефлексируя методики потом перестраивая архитектуру). Стержнем всей этой ветви развития вычислительной техники является универсальность, но неперестраиваемость внутренней архитектуры.

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

То есть центральная мысль именно (м1).

От Лом
К Павел Чайлик (20.01.2009 17:48:59)
Дата 23.01.2009 15:33:23

Где-то я уже такое видел... :)


>Пример, сначала пихали много конвейеров в процессор, теперь уже много ядер (процессоров) в кристалл. Вон у Sun аж 8 ядер по 8 конвейеров. Следующим этапом, думаю, всю эту накопившуюся сложность начнут унифицировать (сначала рефлексируя методики потом перестраивая архитектуру). Стержнем всей этой ветви развития вычислительной техники является универсальность, но неперестраиваемость внутренней архитектуры.

>Ведь борьба (за время) идет именно что для конкретных (программных) алгоритмов и ценой за универсальность вычислительного устройства является его относительно невысокая производительность.

Дальнейшая миниатюризация и замена "неуменьшаемых" компонентов нанотехнологиями уже тянет всех в этом направлении. Вон грядет очередная революция в RAM за счет исключения контроллера шины памяти в современном виде. А направление большая универсальность-малая производительность мне кажется уже не остановить. В ближайшей перспективе мне кажется, будет некая двухуровневая схема. Много процессоров (слабых и универсальных) собранных в блок и работающих в пределах локального устройства с микрозадачами и алгоритмами способными "на лету" задействовать другой процессорный блок (в пределах того же локального устройства) Не путать с современными блэйдами. И второй уровень алгоритсов и вычислений - сетевой распределенный, где универсальные алгоритмы выделяют более крупные порции вычислений и раскидывают их по скоростным каналам между такими локальными устройствами(эти технологии уже есть, но только на зачаточном уровне универсализации и стандартизации). Очень интересно также сращивание этих технологий с технологиями виртуализации (кто балуется). Там можно сделать так, чтобы "virtualization layer" подбирал себе необходимые ресурсы, как по количеству процессоров, так и по их удаленности.

А вот пара ссылочек:

http://www.nvidia.com/object/tesla_8_series.html

http://www.nvidia.com/object/cuda_what_is.html

http://www.nvidia.com/object/tesla_computing_solutions.html

В верхней части экрана попытался переключить на русский... А там - "Быстрые и свирепые". Видеокарточки.. :)

От Павел Чайлик
К Лом (23.01.2009 15:33:23)
Дата 26.01.2009 13:07:26

Буду "гнуть" свое. :))

>А вот пара ссылочек:

>
http://www.nvidia.com/object/tesla_8_series.html

> http://www.nvidia.com/object/cuda_what_is.html

> http://www.nvidia.com/object/tesla_computing_solutions.html

>В верхней части экрана попытался переключить на русский... А там - "Быстрые и свирепые". Видеокарточки.. :)

но выше в ветке, что бы не распыляться.