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

Транспьютеры — революция многопроцессорных систем, которой не случилось

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров12K
Всего голосов 44: ↑43 и ↓1+60
Комментарии40

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

Помню такую книгу. Получается, что она вышла в России слишком поздно, когда "закат эпохи" уже произошел.

Скрытый текст

Честно говоря, не совсем понятно почему так рано настал закат транспьютеров, ведь до первого многоядерного процессора от Intel оставалось еще более 10 лет. Подозреваю, что проблема скорее в полном отсутствии программного обеспечения и нежелании программистов того времени осваивать изотерические языки с еще более изотерическими методиками программирования. Всем хотелось писать на C, C++ и Fortran-е. Распространение сетей, и TCP/IP в частности, привело к появлению технологии распаралленивания заданий MPI не требующие знания специфических языков. Собсно это и похоронило идею транспьютеров.

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

Еще один фактор - к моменту появления многоядерных микропроцессоров, в ядрах операцинных систем уже всё было готово для параллельных вычислений: облегченные процессы, threads, shared memory, spinlocks, и т.д. Так,что транспьютеры появились несколько раньше времени - ни задач, ни инфраструктуры под них создано не было. Современные GPU и нейроаскелераторы, помоему, очень близки к британским транспьютерам по архитектуре.

Современные GPU и нейроаскелераторы, помоему, очень близки к британским транспьютерам по архитектуре.

А ASIC для майнинга - так чуть-ли не повторяют.

А ASIC для майнинга - так чуть-ли не повторяют.

Майнить проще же, хеши перебираются независимо, быстрый обмен между процессорами не нужен.

Там медленный обмен же реализован.

Общая шина данных как гиря висела.

Да и не все задачи параллелизируются.

Это в начале восьмидесятых как-то было всё равно в текстовом режиме, а для графических оболочек девяностых - адцкий ад.

Так ведь гиря фон Неймана никуда не подевалась, её слегка спрятали под ковёр спомощью многоуровневых кэшей. А нас счет распараллелеваемости, это опционально - современыне системы состоят их тысячи отдельных процессов, каждый из которых решает свою задачу. И только очень некоторые решают общую задачу сообща.

Ага, и у Интела на некоторых процессорах можно было сделать вычисления чуть быстрее и немного потенционально опасней, или безопасней - но медленней.

И это сейчас, когда кэши десятками гигабит плюются с собственным объёмом в десятки и сотни мегабайт.

Процессы же не автономно в вакууме работают. Я тут не спец, но краем уха слышал про косяки межмодульного взаимодействия у разных производителей современности.

А так то, этот транспьютер напоминает NUMA (англ. Non-Uniform Memory Access «неравномерный доступ к памяти» или Non-Uniform Memory Architecture «архитектура с неравномерной памятью»).

Нет, NUMA -- это когда до своей памяти доступ быстрый, а до чужой медленный, но он есть и он прозрачный, в одном адресном пространстве. А тут каждый процессор имеет доступ в принципе только к своей памяти. А другому может только сообщение кинуть.

скорее это MPP-кластеры напоминает. Они же - все суперкомпьютеры. К памяти узла соседнего доступа нет, если очень надо - можно софтовую эмуляцию. но скоростная сеть, коммутаторы. Узлы правда с совсем не 4 Kb памяти :)

почему не влетело - относительно высокая цена, в первую очередь делали для embedded systems, а это узкий рынок, SGS Thompson их использовал, поэтому купил в подходящий момент, в момент разработки T414 - TI DSP (32-bit типа TMS320C32 и др.) еще не были в продаже, когда стали доступны Inmos конкуренции не выдержал

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

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

Где про них можно почитать?

Нынче славное дело транспьютеров продолжает https://www.xmos.com/

Туда же: https://www.parallax.com/propeller/ и https://en.wikichip.org/wiki/rapport/kilocore. Тоже интересные эксперименты на подобную тематику.

Parallax, помнится, несколько другое. Там то, что сейчас хипертрейдингом называется.

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

Ну, как сказать. Есть дешевые тайваньские контроллеры, в которохы такое применяется и вполне ничего, - применяются. Они по 10-20 баксоцентов.

Кстати, кто нибудь вкурсе как обстоят дела у Мультиклета ? Я лет 12 назал купил было платку с ихним процом о четырех клетках (P1), немного побаловался и бросил за отсутствием практического применения. Компилятора к нему тогда не было, что сильно понижало практическую ценность.

Ок, спасибо.

Там вроде RISC а не MISC. Да и архитектура уже сильно не такая.

20 МГц -- не ахти какая частота. Задающий генератор процессора СМ-1420 как раз на ней работал (дальше частота делилась, и такт процессора составлял 200 или 300 нс в зависимости от микрокоманды, но генератор -- таки 20 МГц, как ни крути). У AMD был тактовый генератор, работавший от исходной частоты до 30 МГц и генерирующий четыре фазы, причём всё это дело более-менее программировалось; у нас его содрали как К1804ГГ1. И, замечу, это ТТЛ, а не ЭСЛ, где частоты могли быть сильно-сильно выше.

Далее, четыре фазы синхронизации. А реально ли они что-то распараллеливали? Многофазная синхронизация в процессорах (ещё не микро-) 1960-70-х -- вполне нормальное явление, да и микропроцессоры такие были -- вспоминаем 8080, например. Так что я не уверен, что четыре фазы понадобились им для повышения скорости -- но в тему не вникал, поэтому утверждать что-либо не могу.

Что же касается параллельных вычислений и т.п. вещей, то всё это появилось раньше. Многопроцессорные машины уже в 1960-х существовали, и то, что каждый процессор занимал 1-2-3 шкафа, сути дела не меняло. Векторные процессоры тоже были, ну и т.д. и т.п. (И Интел, кстати, ничего принципиально нового с появлением многоядерных процессоров не изобрела -- просто вогнала на один кристалл несколько процессоров, но многопроцессорные машины уже очень давно не были редкостью).

надо заметить, что сделал Inmos это не просто много процессорная машина, было интересней, недаром Okkam пережил Inmos, они скорее объединили функции i/o процесора и cpu, + разработали удачный протокол взаимодействия процессоров с соседями через четыре канала, включая прерывания друг друга (pin=analyze), + rtos и язык высокого уровня (Okkam), + environment (TDS) чтобы программировать все это, идея была собирать системы нужного размера как лего, т.к. все реализовано в виде процессов обменивающихся сообщениями min разница как именно размещены процессы - на одном cpu, или нескольких (по крайней мере в теории)

из руководства по TDS, пример загрузки sw на 1 и на 8 процессоров

Если кто-то хочет потыкать - есть классная игра называется TIS-100, там как раз надо программировать вычислители с архитектурой описанной в статье, очень увлекательно!

начал читать статью и сразу TIS-100 вспомнил )

Что бы кто не говорил, но второе фото платы с чипами потрясающе красиво!)
Даже если бы только и удалось, что помигать 42/кстати/ диодами :)

Что бы кто не говорил, но второе фото платы с чипами потрясающе красиво!)
Даже если бы только и удалось, что помигать 42/кстати/ диодами :)

В 1995 году в России серийно выпускались суперкомпьютеры МВС-100 на основе транспьютеров в качестве сети передачи данных и интеловских векторных процессоров i860 в качестве вычислительных ядер. Статья из тех лет -https://www.avalanche.vip/papers/2001super.htm.

Потом появился 100Мб Ethernet, Pentium, и проект супердешёвого суперкомпьютера Beowulf на их основе. В результате, следующий российский суперкомпьютер МВС-1000 представлял из себя просто стойку со стандартными стоечными компьютерами.

Самая известная модель, INMOS T414, была упакована в 32-контактный корпус DIL

Да ладно. T414 упаковывался в 84-ногие корпуса PGA и PLCC. Тридцати двух ног ему бы даже на шину данных/адреса не хватило.

Представляете, я в начале 91-го года писал тестовые программы для советского транспьютера-аналогаТ-800. Потом случился август и всё само рассосалось. Эх, молодость.)

для советского транспьютера-аналога Т-800

Это вот такой?

Скрытый текст

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

Не вижу противоречия.

ну как же, одно дело равномерная структура рассчитанная на паралельность, а другое - когда один проц х86 c с виндой, и воткнута плата с каким нить, ну скажем pdp-11 (че то я такое помню, типа аппаратный эмулятор)

Ну, транспьютер, как и любой другой проц, можно использовать в качестве модуля расширения для другого компа, но можно на нём построить и законченный компьютер, пусть и не очень традиционный. Так что противоречия всё же нет.

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

Плату такую я держал в руках в конце девяностых, обнаружив внезапно в 286-й машине, которую принесли на разбор.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий