LINUX.ORG.RU
ФорумTalks

Принципиальная схема высокопроизводительной платформы.

 , ,


0

1

http://www.imageup.ru/img238/1196663/sxema.png

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

На обратной стороне материнской платы по краям полированные площадки для плотного прилегания к теплообменнику корпуса. И слоты для модулей памяти.

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

По сути такая материнская плата представляет собой множество коммутирующих чипов которые благодаря множеству связей быстро обращаются как к модулям памяти так и к портам.

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

Как думаете? Имеет ли смысл такая архитектура?

Ставлю на то, что кластер из маломощных десктопных машинок порвёт такую платформу в клочья.
А для суперкомпьютеров, в любом случае, практики уже проработаны.

Deleted
()

Если задача не параллелится, то толку почти 0, а нужен оптический компьютер. Если параллелится, то кластер лучше

cvs-255 ★★★★★
()
Последнее исправление: cvs-255 (всего исправлений: 1)
Ответ на: комментарий от Deleted

Ставлю на то, что кластер из маломощных десктопных машинок порвёт такую платформу в клочья.

Длинна связей в кластере больше и его узким местом будет свитч.

rezedent12 ☆☆☆
() автор топика

полированные площадки для плотного прилегания к теплообменнику

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

TuxR ★★★★
()

при этом в сокет интегрирован теплосъёмник на основе тепловой трубки, то есть процессор охлаждается не снаружи сокета, а изнутри

А если у авто квадратные колёса, то можно сэкономить на стояночном тормозе.

vsemnazlo
()

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

Узкое место в современных архитектурах не в конструктиве, а в том, как отдать все процессоры одной задаче, т.е распаралелить ее. Собственно поэтому ни чего с x64 больше чем восьми процессорное не выпускается

hi_artem
()

И слоты для модулей памяти.

Почему не распаивать прямо на плате?

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

Как обеспечивается когерентность кешей?

благодаря множеству связей быстро обращаются как к модулям памяти так и к портам.

число связей растёт как N^2, сложность блокировок растёт как N на каждом узле.

Множество связей обеспечивается специальным большим чипом сквозь который они все и проходят.

опять-таки, n^2

Имеет ли смысл такая архитектура?

А чем она лучше всех существующих?

i-rinat ★★★★★
()
Ответ на: комментарий от redgremlin

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

Titan has 18,688 nodes (4 nodes per blade, 24 blades per cabinet), each containing a 16-core AMD Opteron 6274 CPU with 32 GB of DDR3 ECC memory

К тому же он похоже состоит из отдельных блейлов с 4 процессорам в каждом.

4 nodes each containing a 16-core AMD Opteron

hi_artem
()

теплообменники вообще не нужны в светлом арм/мипс-будущем. разве что радиатор крошечный копеечный

punya ★★
()
Ответ на: комментарий от punya

теплообменники вообще не нужны в светлом арм/мипс-будущем. разве что радиатор крошечный копеечный

Это только пока ты не запихаешь достаточное количество чипов в один кубический сантиметр своего компьютера :)

Manhunt ★★★★★
()

Как думаете? Имеет ли смысл такая архитектура?

такое называлось транспьютер и выпускалось как в виде ISA плат на 2-4-6 процессоров так и отдельными блоками

MKuznetsov ★★★★★
()
Ответ на: комментарий от cvs-255

куча задач паралелится. Проблема с памятью.

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

rezedent12 ☆☆☆
() автор топика
Ответ на: комментарий от i-rinat

Почему не распаивать прямо на плате?

Можно и на плате распаивать, только все подключать через коммутатор, иначе развести не получиться более сотни шин.

Как обеспечивается когерентность кешей?

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

опять-таки, n^2

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

А чем она лучше всех существующих?

Не всех, но эта архитектура при должной организации страниц ОЗУ позволит побороть такие узкие места как шина памяти, и шина ввода вывода. Так как на каждый порт и слот будет приходиться своя шина.

rezedent12 ☆☆☆
() автор топика
Ответ на: комментарий от rezedent12

Если каждому cpu по модулю памяти - то это практически GPU или кластер.

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

cvs-255 ★★★★★
()
Последнее исправление: cvs-255 (всего исправлений: 1)
Ответ на: комментарий от MKuznetsov

такое называлось транспьютер и выпускалось как в виде ISA плат на 2-4-6 процессоров так и отдельными блоками

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

rezedent12 ☆☆☆
() автор топика
Ответ на: комментарий от rezedent12

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

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

Узел имеющий входы для N шин последовательно перебирает и принимает сигналы с тех шин где есть сигнал, это простая транзисторная схема.

Простая и очень медленная. Я вообще намекал на двумерные и трёхмерные торы.

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

Сомнительное преимущество. Для меня это то же самое, что заявить: «у каждой ноды в кластере своя шина к своей памяти и свои шины ввода-вывода». Это правда, но это не преимущество.

Тебе вообще бы сюда глянуть: https://www.coursera.org/course/comparch (жаль, что курс закончился).

И вот это, если не видел: http://www.adapteva.com/support/docs/e3-reference-manual/

i-rinat ★★★★★
()
Ответ на: комментарий от cvs-255

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

Если посмотреть на картинку, то видно что «часть чипа главного коммутатора» может легко связаться как с другой такой же, так и через главный коммутатор с любым модулем памяти.

Замедление работы будет лишь если несколько процессоров обратятся к одному модулю памяти. Но думаю в таком случае следует распихать данные по нескольким чипам.

Алгоритм организации вычислений:

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

rezedent12 ☆☆☆
() автор топика
Ответ на: комментарий от rezedent12

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

Упрёшься в интерконнект. Возьми лист бумаги и нарисуй 64-х-угольник со всеми диагоналями.

i-rinat ★★★★★
()
Ответ на: комментарий от hi_artem

пару дней назад Интел запилил 15 ядерные процессоры

Rosko
()
Ответ на: комментарий от i-rinat

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

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

Простая и очень медленная. Я вообще намекал на двумерные и трёхмерные торы.

Попробую объяснить, на каждой из шин есть сигнал «запрашиваю соединение», если запрос только один то схема принимает только его и не занимается постоянным опросом шин. Если же есть более чем один сигнал, то схема по очереди пропускает данные с каждой из шин. Цена одного переключения один такт.

«у каждой ноды в кластере своя шина к своей памяти и свои шины ввода-вывода». Это правда, но это не преимущество.

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

Иерархия скорости доступа:

  • Кэш собственного чипа памяти
  • Собственный чип памяти
  • Кэш на общем чипе памяти
  • Общий чип памяти
  • Последовательный оптический ввод-вывод

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

rezedent12 ☆☆☆
() автор топика
Ответ на: комментарий от i-rinat

Упрёшься в интерконнект. Возьми лист бумаги и нарисуй 64-х-угольник со всеми диагоналями.

Объясни подробнее, что именно мешает сделать такой коммутатор шин? (я не электронщик если что)

rezedent12 ☆☆☆
() автор топика
Ответ на: комментарий от cipher

А sfp ты куда вставлять будешь? А почему только оптические?

Можно конечно и что то типа sata шлейфов, а sfp можно подключать короткими шлейфами. Хотя если 6 Гбит/с хватит для подключения высокопроизводительной видеокарты, то можно большую часть портов сделать не оптическими. Но смысл в том что бы не использовать прямой доступ к памяти подключаемым устройством. Что позволит сделать сообщение с устройством более стандартизированным и простым, к тому же упроститься проброс устройств при виртуализации.

rezedent12 ☆☆☆
() автор топика
Ответ на: комментарий от rezedent12

Озвучь количество процессоров, о котором ты говоришь.

Объясни подробнее, что именно мешает сделать такой коммутатор шин?

Трёхмерность пространства. Для 4 процессоров достаточно 6 шин для соединения точка-точка, для 8 надо 28, а для 64 — уже 2016. Именно поэтому для большого числа ядер делают сеть.

я не электронщик если что

Ну я тоже так, чисто пальцы покрутить. :)

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

Трёхмерность пространства. Для 4 процессоров достаточно 6 шин для соединения точка-точка, для 8 надо 28, а для 64 — уже 2016. Именно поэтому для большого числа ядер делают сеть.

Думаю более 16 процессоров в каждом из которых по 8 ядер ставить будет невозможно.

Кстати есть одна разработка IBM, в ней сквозь кубический чип проходят капиляры для охлаждения. Думаю это будет толстый чип с тонкими тепловыми трубками проходящими сквозь него. И потребуется по слою на каждые несколько шин.

rezedent12 ☆☆☆
() автор топика
Ответ на: комментарий от rezedent12

Попробую объяснить, на каждой из шин есть сигнал «запрашиваю соединение», если запрос только один то схема принимает только его и не занимается постоянным опросом шин. Если же есть более чем один сигнал, то схема по очереди пропускает данные с каждой из шин. Цена одного переключения один такт.

Ну, во-первых, забыл про инструкции в полёте. Их надо сбросить. Во-вторых, инвалидация кэша. Мало того, что это дополнительные циклы на запись. (Допустим, 256 кБ кэша и 64-битная шина к памяти. 10ns латентность + 24.5µs на запись для ddr3-1333). Так ещё и ждать надо постоянно «а вдруг сейчас сигнал придёт?».

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

Так ещё и ждать надо постоянно «а вдруг сейчас сигнал придёт?».

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

Если процессор встречает сигнал «занято» то он автоматически переходит к той задаче, адрес которой не указывает на занятый банк памяти.

Сейчас подумалось что такая архитектура подойдёт для параллельной обработки множества мелких задач с непредсказуемым временем решения каждой из этих задач.

rezedent12 ☆☆☆
() автор топика
Ответ на: комментарий от rezedent12

Типа того, только не будет узкого места в виде одной шины

а у них и небыло одной шины. У каждого процессора N независимых асинхронных канала для связи с себе подобными. Исполнение как ISA плата исключительно для работы с головной машиной и отладки. Вообще штуковина была революционная для своего времени.

MKuznetsov ★★★★★
()

Почему по оптике подключается периферия, а процессор и память на меди? Производители-то сейчас работают как раз над оптическими интерфейсами к памяти/процу (да и прочим ИМС), чтоб обмен бешенный был.

КГ/АМ в плохом смысле.

З.Ы. Про мультиплексор слышал? Знаешь, что это?

agentgoblin
()
Ответ на: комментарий от agentgoblin

Если ты про оптический мультиплексор, то у меня уже была идея на гранях прозрачного кристалла разместить оптические интерфейсы для процессоров и памяти тем самым добившись полной взаимосвязи без электрических проводников. Ведь луч сможет проходить сквозь кристалл в любых направлениях, а каждому интерфейсу надо будет иметь N приёмников + N передатчиков.

rezedent12 ☆☆☆
() автор топика
Ответ на: комментарий от MKuznetsov

а у них и небыло одной шины. У каждого процессора N независимых асинхронных канала для связи с себе подобными.

Хорошая вещь, а почему развивать перестали?

rezedent12 ☆☆☆
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.