В общем, квадратик/кристалл процессора очень маленький. А корпус большой. Можно увеличить кристалл раз в 1000 минимум а если сделать в несколько слоев -- то в несколько миллионов раз. Увеличить количество транзисторов до триллиона и более.
Зачем? А встроить прямо в процессор десятки гигабайт кэша + реализовать модули для конкретных алгоритмов. К примеру реализовать аппаратно все алгоритмы криптографии, поиска, сортировки и пр.
Причем такая архитектура не приведет к увеличению мощности процессора -- нужные модули можно включать и отключать по требованию.
Здравствуйте, Shmj, Вы писали:
S>В общем, квадратик/кристалл процессора очень маленький. А корпус большой. Можно увеличить кристалл раз в 1000 минимум а если сделать в несколько слоев -- то в несколько миллионов раз. Увеличить количество транзисторов до триллиона и более. S>Зачем? А встроить прямо в процессор десятки гигабайт кэша + реализовать модули для конкретных алгоритмов. К примеру реализовать аппаратно все алгоритмы криптографии, поиска, сортировки и пр. S>Причем такая архитектура не приведет к увеличению мощности процессора -- нужные модули можно включать и отключать по требованию. S>Почему еще не пошли по этому пути?
Думаю процент брака таких здоровенных щтук будет около 100. Где-то из-за дефекта отключат блок криптографии, где-то поиска, а где-то сортировки и т.д. И каждый проц получится не похожий на сошедший с того же конвейера.
Здравствуйте, Shmj, Вы писали:
S>В общем, квадратик/кристалл процессора очень маленький. А корпус большой. Можно увеличить кристалл раз в 1000 минимум а если сделать в несколько слоев -- то в несколько миллионов раз. Увеличить количество транзисторов до триллиона и более.
Охлаждать сложнее.
S>Зачем? А встроить прямо в процессор десятки гигабайт кэша + реализовать модули для конкретных алгоритмов. К примеру реализовать аппаратно все алгоритмы криптографии, поиска, сортировки и пр.
"Мысль свежая, а главное — оригинальная" ((с) ПНВС, Стругацкие)
Кто этими алгоритмами будет пользоваться из существующего софта? Да и поиск с сортировкой у программ, где это важно — уже свои. Возьмите тот же постгрес.
Здравствуйте, Shmj, Вы писали:
S>Почему еще не пошли по этому пути?
Принципиальных возможностей улучшить производительность в рамках того же транзисторного бюджета полно, но все они разбиваются о маленький нюанс: совместимость.
Например, для предложенного варианта узкое место — затраты на синхронизацию. Чтоб обойти нужно полностью менять модель вычислений и переходить к акторам аля erlang/scala/orleans и, скорее всего, к stm (неплохой ликбез от автора Functors, Applicatives, And Monads In Pictures и grokking alghorithms). Это, в свою очередь, потребует отказа от фон-неймана и кучи неимоверной работы по переизобретению _всего_ что наработано за последние полвека для "традиционных" вычислительных машин. Что самое забавное, в итоге мы не добьёмся повышения производительности ни для единичного потока вычислений, ни для распараллеленного — закон Амдалла в помощь. Зато появится возможность повысить _общую_ производительность системы за счёт более эффективного использования простаивающих блоков.
И тут мы с интересом соображаем, что для легко распараллеливающихся вещей у нас уже есть gpgpu/fpga/etc. Для акторов — довольно эффективные софтварные реализации вплоть до embedded-систем + arm-кластеры, влезающие в 2u-blade. Для более эффективного использования железа — аналоги intel speed step / hyperthreading.
И наконец, что производительность настолько перестала быть проблемой, что идея распространять приложения в виде контейнеров-VM выглядит вполне здравой идеей. И из всего этого возникает резонный вопрос: а собственно нафига?
P.S. И да, не переехать ли в философию программирования? Тема не сильно флеймовая, как по мне. Бомбочку навесил, поддерживайте.
Здравствуйте, Shmj, Вы писали:
S>Можно увеличить кристалл раз в 1000 минимум S>Почему еще не пошли по этому пути?
Элементарная жадность. Пластина — одна, делать из неё один проц или семь шапочек 100 — что выгоднее?
По этой же причине мы до сих пор сидим на бестолковой меди, когда давно уже можно было соединять ВСЕ компоненты компа оптоволокном.
Ну и раз уж пошла такая пьянка, ОПТИЧЕСКИЕ ВЫЧИСЛЕНИЯ были возможны ещё 20 лет назад. Очевидно, со скоростью света. Не пошло — проще играть с ножками процессора! (плюнул в спину главы Intel)
Здравствуйте, Shmj, Вы писали:
S>Почему еще не пошли по этому пути?
Потому, что чем больше транзисторов, тем больше вероятность, что какой-то из них получится бракованным. Если структора слишком сложная, выход годных кристаллов будет слишком маленький. А поскольку в цену годных заложена и цена негодных, годные будут стоить слишком дорого.
S>В общем, квадратик/кристалл процессора очень маленький. А корпус большой. Можно увеличить кристалл раз в 1000 минимум а если сделать в несколько слоев -- то в несколько миллионов раз. Увеличить количество транзисторов до триллиона и более.
Тут идет борьба за то чтобы размер чипа уменьшить на несколько процентов, и даже не из-за потребления.
А просто потому что можно нарезать больше, цена меньше. А тут предлагаю в 1000 раз увеличить.
Ну и будет он в миллион раз дороже. Тысяча за размер, да тысяча за то что годных выход уменьшится
Здравствуйте, Pzz, Вы писали:
Pzz>Потому, что чем больше транзисторов, тем больше вероятность, что какой-то из них получится бракованным. Если структора слишком сложная, выход годных кристаллов будет слишком маленький. А поскольку в цену годных заложена и цена негодных, годные будут стоить слишком дорого.
Дык... Можно чуть увеличить размер транзистора, не пытаться сделать самыми маленькими. Ну если кристалл будет 100*100*5 мм -- разве это много? В любой ноутбук влезет.
Сделать резерв -- если один блок не получился -- отключаем его и подключаем резервный.
Здравствуйте, Sinix, Вы писали:
>идея распространять приложения в виде контейнеров-VM выглядит вполне здравой идеей
вы, товарищ, много нафонтанировали в своём посте, но о наиболее вопиющем я всё-таки намекну. Контейнеры как раз и появились потому, что производительность таки проблема. Но что самое интересное, контейнеры не имеют абсолютно никакого отношения к виртуальным машинам.
Здравствуйте, antropolog, Вы писали:
>>идея распространять приложения в виде контейнеров-VM выглядит вполне здравой идеей A>Но что самое интересное, контейнеры не имеют абсолютно никакого отношения к виртуальным машинам.
Ага, налажал. Там по задумке было "в VM в облаке", сформулировал криво. Есть свой вариант ответа на "а нафига?" — велкам.
Здравствуйте, Shmj, Вы писали:
S>Зачем? А встроить прямо в процессор десятки гигабайт кэша + реализовать модули для конкретных алгоритмов. К примеру реализовать аппаратно все алгоритмы криптографии, поиска, сортировки и пр.
Сферические алгоритмы в вакууме бывают только в книжках. В реальной жизни алгоритмы неотделимы от структур данных.
Здравствуйте, Kolesiki, Вы писали:
K>Ну и раз уж пошла такая пьянка, ОПТИЧЕСКИЕ ВЫЧИСЛЕНИЯ были возможны ещё 20 лет назад. Очевидно, со скоростью света. Не пошло — проще играть с ножками процессора! (плюнул в спину главы Intel)
Оптические _аналоговые_ вычисления. Маленький такой нюанс.
Здравствуйте, Shmj, Вы писали:
S>Здравствуйте, Pzz, Вы писали:
Pzz>>Потому, что чем больше транзисторов, тем больше вероятность, что какой-то из них получится бракованным. Если структора слишком сложная, выход годных кристаллов будет слишком маленький. А поскольку в цену годных заложена и цена негодных, годные будут стоить слишком дорого.
S>Дык... Можно чуть увеличить размер транзистора, не пытаться сделать самыми маленькими. Ну если кристалл будет 100*100*5 мм -- разве это много? В любой ноутбук влезет.
Будет больше площадь нагревания, нужна будет больше система охлаждения и т.п.
Здравствуйте, Pzz, Вы писали:
Pzz>Здравствуйте, Shmj, Вы писали:
S>>Почему еще не пошли по этому пути?
Pzz>Потому, что чем больше транзисторов, тем больше вероятность, что какой-то из них получится бракованным. Если структора слишком сложная, выход годных кристаллов будет слишком маленький. А поскольку в цену годных заложена и цена негодных, годные будут стоить слишком дорого.
Думается, что и валидация всего этого дела на одном кристалле становится существенно дороже, с большей вероятностью налажать.
Здравствуйте, Sharov, Вы писали:
S>Думается, что и валидация всего этого дела на одном кристалле становится существенно дороже, с большей вероятностью налажать.
Никто не говорит что сразу. Постепенно увеличить размер кристалла, повышать точность печати.
Здравствуйте, Shmj, Вы писали:
S>Причем такая архитектура не приведет к увеличению мощности процессора -- нужные модули можно включать и отключать по требованию. S>Почему еще не пошли по этому пути?
Потому что это никому не нужно. Криптография, всякие SSE и виртуализация есть давно. А за пределами этого получается формула "ускорить среднюю производительность на 0.1% ценой увеличения стоимости на 10% и снижения надежности на 1%". Нафиг-нафиг.
Здравствуйте, bazis1, Вы писали:
B>Потому что это никому не нужно. Криптография, всякие SSE и виртуализация есть давно. А за пределами этого получается формула "ускорить среднюю производительность на 0.1% ценой увеличения стоимости на 10% и снижения надежности на 1%". Нафиг-нафиг.
Кеш в десятки гигабайт все изменит. Алгоритмы работают со структурами данных.
Вы привели только AES, а почему нет SHA256, ECDSA и пр? Это только криптография, но ведь при большом кеше можно добавить и поиск/сортировку. Можно сделать аппаратные видео-кодеки и пр.
Здравствуйте, Shmj, Вы писали:
S>Кеш в десятки гигабайт все изменит. Алгоритмы работают со структурами данных.
Ага, ускорит в 10 раз 0.01% программы. S>Вы привели только AES, а почему нет SHA256, ECDSA и пр?
Потому что AES — это реальный bottleneck при работе с SSL и во всяких encrypted storage. Хэширование именно bottleneck-ом не является. S>Это только криптография, но ведь при большом кеше можно добавить и поиск/сортировку.
Сильное ускорение поиска/сортировки актуально только для спецефических data-центров. И для них может быть дешевле просто купить больше железа, чем заморачиваться с аппаратной сортировкой и странными кэшами. S>Можно сделать аппаратные видео-кодеки и пр.
Зачем? Какие задачи это ускорит? Ну будет у юзеров при воспроизведении видео не 1% CPU usage, а 0.1%. И? Реально от этого выиграют только какие-нибудь видеохостинги или студии, но опять же им проще докупить железа.
Здравствуйте, Sinix, Вы писали:
S>Принципиальных возможностей улучшить производительность в рамках того же транзисторного бюджета полно, но все они разбиваются о маленький нюанс: совместимость.
Не совместимость, а законы физики. Например один только отвод тепла мешает всунуть в кристалл сразу все подряд, как предлагает ТС.
S>Например, для предложенного варианта узкое место — затраты на синхронизацию. Чтоб обойти нужно полностью менять модель вычислений и переходить к акторам аля erlang/scala/orleans и, скорее всего, к stm (неплохой ликбез от автора Functors, Applicatives, And Monads In Pictures и grokking alghorithms). Это, в свою очередь, потребует отказа от фон-неймана и кучи неимоверной работы по переизобретению _всего_ что наработано за последние полвека для "традиционных" вычислительных машин.
Я сколько ни смотрел этот "неплохой ликбез", так и не понял:
1 как работает STM
2 почему переход от картинки-детям сразу к Хаскелю это неплохо
Здравствуйте, Shmj, Вы писали:
S>Причем такая архитектура не приведет к увеличению мощности процессора -- нужные модули можно включать и отключать по требованию.
S>Почему еще не пошли по этому пути?
Есть принципиально неустранимые проблемы
1 отвод тепла — _очень_ нелинейная проблема
2 количество выводов кристалл — еще одна сильно нелинейная проблема
3 время переключения транзистора ограничено свойствами полупроводника
4 уменьшение размеров транзистора ограничено размером атома
Грубо говоря, в единицу объема ты можешь напихать только фиксированое количество устройств. Это значит, что разные устройства все равно будут общаться по общей шине. Отсюда ясно, что эта шина и будет узким местом.
Собственно, отчасти прогресс и пошел по тому пути, что ты предложил, только более прозаично — процессорный кристал вбирает в себя самые разные устройства, только сортировок всяких там нет. Если устройство сортировки будет работать через некотороую шину, то нам абсолютно по барабану насколько быстро работает сортировщик — все равно предел будет равен пропускной способности шины, а это значит, что обычный код справится не хуже.
I>Грубо говоря, в единицу объема ты можешь напихать только фиксированое количество устройств. Это значит, что разные устройства все равно будут общаться по общей шине. Отсюда ясно, что эта шина и будет узким местом.
Замечание. Общих шин уже нет. В грубом приближении матрица.
Здравствуйте, Ikemefula, Вы писали:
S>>Принципиальных возможностей улучшить производительность в рамках того же транзисторного бюджета полно, но все они разбиваются о маленький нюанс: совместимость. I>Не совместимость, а законы физики. Например один только отвод тепла мешает всунуть в кристалл сразу все подряд, как предлагает ТС.
Микроканалы, как вариант. Теоретический запас емнип до киловатта тепловой мощности с см2.
I>Я сколько ни смотрел этот "неплохой ликбез", так и не понял: I>1 как работает STM
Если интересуют кишки, то проще всего начать с вот этой пары презентаций https://www.cs.princeton.edu/courses/archive/fall10/cos597C/docs/TM-Impl-1.pptx + https://www.cs.princeton.edu/courses/archive/fall10/cos597C/docs/TransactionalMemoryLectureII.pptx
, дальше только гугль по конкретным вопросам.
I>2 почему переход от картинки-детям сразу к Хаскелю это неплохо
Потому что все остальные ещё хуже.
Здравствуйте, gardener, Вы писали:
I>>Грубо говоря, в единицу объема ты можешь напихать только фиксированое количество устройств. Это значит, что разные устройства все равно будут общаться по общей шине. Отсюда ясно, что эта шина и будет узким местом.
G>Замечание. Общих шин уже нет. В грубом приближении матрица.
Матрицу тоже не получится сделать произвольной мощности, а то бы твой комп состоял из одной лишь видеокарты
Здравствуйте, Shmj, Вы писали:
Pzz>>Потому, что чем больше транзисторов, тем больше вероятность, что какой-то из них получится бракованным. Если структора слишком сложная, выход годных кристаллов будет слишком маленький. А поскольку в цену годных заложена и цена негодных, годные будут стоить слишком дорого.
S>Дык... Можно чуть увеличить размер транзистора, не пытаться сделать самыми маленькими. Ну если кристалл будет 100*100*5 мм -- разве это много? В любой ноутбук влезет.
Здравствуйте, Ikemefula, Вы писали:
I>3 время переключения транзистора ограничено свойствами полупроводника
это не особо страшная проблема , есть уже транзюки на 1 ТГц
проблема в сложности проца — а именно в том скока транзюков в цепях соединено последовательно
а еще уже говорили, но на частоте всего лишь 1 ГГц импульс тока проходит всего лишь 30 см
а на 10 ГГц — 3 см — вот это уже печаль реальная
Я изъездил эту страну вдоль и поперек, общался с умнейшими людьми и я могу вам ручаться в том, что обработка данных является лишь причудой, мода на которую продержится не более года. (с) Эксперт, авторитет и профессионал из 1957 г.
S>В общем, квадратик/кристалл процессора очень маленький. А корпус большой. Можно увеличить кристалл раз в 1000 минимум а если сделать в несколько слоев -- то в несколько миллионов раз.
Удачи сделать фотолитографией многоэтажные транзисторы.
S>Увеличить количество транзисторов до триллиона и более.
Выход годных при нынешнем уровне технологий будет стремиться к нулю, а себестоимость таки рабочих экземпляров — к бесконечности.
S>Зачем? А встроить прямо в процессор десятки гигабайт кэша + реализовать модули для конкретных алгоритмов. К примеру реализовать аппаратно все алгоритмы криптографии, поиска, сортировки и пр.
Аппаратная криптография уже есть, где требуется. Аппаратная сортировка/поиск не нужны в системах общего назначения так как предикаты нужны софтовые, а аппаратная сортировка с софтовым предикатом будет не сильно быстрее своего полностью софтового аналога. Для всех остальных случаев давно используют ПЛИС.
S>Причем такая архитектура не приведет к увеличению мощности процессора -- нужные модули можно включать и отключать по требованию.
Чтото я не видел чтоб хотябы модули памяти включали/выключали в ноутбуках. А ведь могли бы этим сэкономить пару-тройку ватт в простое.
S>Почему еще не пошли по этому пути?
Как минимум некоторые распберри сделаны на SoC с памятью на борту.
Как много веселых ребят, и все делают велосипед...
Здравствуйте, ononim, Вы писали:
S>>Увеличить количество транзисторов до триллиона и более. O>Выход годных при нынешнем уровне технологий будет стремиться к нулю, а себестоимость таки рабочих экземпляров — к бесконечности.
Значит есть куда расти
То есть еще не все возможности для роста исчерпаны.
S>>Зачем? А встроить прямо в процессор десятки гигабайт кэша + реализовать модули для конкретных алгоритмов. К примеру реализовать аппаратно все алгоритмы криптографии, поиска, сортировки и пр. O>Аппаратная криптография уже есть, где требуется. Аппаратная сортировка/поиск не нужны в системах общего назначения так как предикаты нужны софтовые, а аппаратная сортировка с софтовым предикатом будет не сильно быстрее своего полностью софтового аналога. Для всех остальных случаев давно используют ПЛИС.
Скорее всего проблема в том что пока технически не возможно реализовать то что я хочу.
А вот алгоритмы найдутся. Можно и нейронные сети напихать в кристалл.
S>>Причем такая архитектура не приведет к увеличению мощности процессора -- нужные модули можно включать и отключать по требованию. O>Чтото я не видел чтоб хотябы модули памяти включали/выключали в ноутбуках. А ведь могли бы этим сэкономить пару-тройку ватт в простое.
Здравствуйте, Shmj, Вы писали:
S>В общем, квадратик/кристалл процессора очень маленький. А корпус большой. Можно увеличить кристалл раз в 1000 минимум а если сделать в несколько слоев -- то в несколько миллионов раз. Увеличить количество транзисторов до триллиона и более.
Представим команду программистов из 8 человек, которым дали сделать проект за 3 года. А вот если нанять 8000 человек, то они сделают проект за 1 день.