Татарин>> Безумные скорости и частоты сверхмощных процессоров расходуются на совершенно банальные строковые операции при парзе какого-нить ХТМЛ. Почему? Почему нет текстового сопроцессора?
Jerard> А что мешает сейчас сделать? Как раз по примеру шейдер-процессоров. Но, почему-то никто не делает. Тот же МЦСТ.
В общем-то, делают - см. т.н. "сетевые процессоры" (да, для процессора там прям вот железо на сетевой плате разбирает протоколы верхнего уровня - не только TCP/IP, но и HTTP(S)).
Но это частные-дорогие и малораспространённые решения, индустрия в целом не может развиваться такими рывками.
Вот сколько было в 80-90-00 "ускорителей" с массивной параллельностью? Ну, PCI-платы, на которых понатыкано процессоров для ускорения каких-нить физических вычислений или нейросетей? Ну, много было. И что толку? Почти ноль, всё забыто, никакого индустриального стандарта из этого не вылезло.
Зато - внезапно - когда на массовых компутерных игрушках понадобилось 3д-ускорение, на них шейдеры, а на массово-дешёвых видеокартах с шейдерами, как оказалось, энтузиасты смогли проводить те же массивно-параллельные вычисления, вот тут-то всё и заверте. Сейчас, реально, суперкомпутеры состоят из (бывших) видеокарточек, которые уже даже не притворяются видеокарточками а по сути - те самые блоки для массивно-параллельных вычислений, которые пытались-пытались ввести в индустрию через всякие транспутеры, ускорители и т.п.
Неважно, насколько извилист был путь к нынешним суперкомпам на чипах нВидиа, важно, что каждый шаг был небольшим и каждый шаг был прибыльным, нёс большую выгоду всей отрасли (во всех смыслах).
Для текстовых сопроцессоров сейчас уже очень поздно: есть технические традиции решать этот вопрос так, а не иначе, есть огромная инерция программистов и пользователей индустрии, и переломить это можно только предложив не что-то лучше имеющегося, а только что-то РАДИКАЛЬНО лучше имеющегося, желательно уже массовым, везде и сейчас. См. пример с массивно-параллельными задачами и видеокарточками. ПК очень плохо справлялся с массивно-параллелизуемыми задачами, выгоды от ускорителя были очень большие... но несмотря на все попытки в жизнь это так и не пошло. Нужен был заход в ту же нишу с очень глубокого тыла, чтобы всё реально поехало.
А все текстовые задачи нынешние ЦПУ решают, конечно, очень плохо, но, увы, уже
недостаточно плохо, чтобы дать шанс альтернативам (ну, кроме, реально мест, где вот кровь из носу, нужна максимальная производительность, типа топовых веб-серверов с хайлоадом). Да и текстовых задач не прям уж так очень много.
Вот если бы такие системы развивались бы понемногу, сейчас уже были бы библиотечные функции, развитое железо, куча наворотов вокруг этого, традиции использовать. Языки создавались бы с оглядкой на это железо, железо создавалось бы с оглядкой на языки, и вот чёрт его знает, куда бы оно вывезло (опять же см. 3д-видеокарты, которые начинались-то с ускорения задачи "намазать битмап на полигон", а сейчас делают рейтрейсинг в реальном времени, переключаясь на него незаметно для пользователя, потому что нынешние драйвера могут сильно побольше и оперируют абстракциями повыше, чем когда-то игровой движок).
Ну вот сделают какой-нить
XML-ускоритель, кому он нужен без экосистемы, решающий узкую конкретную задачу но с кучей геммороя для потенциального пользователя и по конской цене? Если б это получилось как частный случай при развитии повсеместного, в каждой машине присутствующего, аппаратного РЕФАЛа (вложенные форматы вообще - идеально ложатся на функциональные описания обработки и стековые системы) - ну, это было бы совсем иное.
Я же как раз об возможности строить независимые альтернативные пути развития изначально, когда выгода этого была очевидна, и были все возможности проложить альтернативное русло (не отказываясь от имеющихся). Может, к той же массивной параллельности мы бы пришли как раз оттуда, а не из игрушек, и пришли бы быстрее и много лучше? Гилбертова алгебра куда приятнее и ближе для тех же нейросетей, чем расчёт вокселей и колебаний воды. Может быть, нам нафиг не потребовались SIMD-расширения, потому что работа со строками подразумевает SIMD на произвольный вектор как частность.
Я мог бы предложить и предположить, как это могло бы развиваться, но это имеет смысл только при начале развития ТОГДА.