Я что то не понял про распараллеливание. Т.е. компилятор собирает программу под процессор? Т.е. программа собранная под процессор с 8 ядрами не будет работать на процессоре с 4-мя ядрами?
folibis (folibis), ты знаком с Intel compiler? Taм как раз есть возможность определить — компилирование под определенный процессор с максимальной оптимизацией. Все зависит от требований создаваемой програмы...
Я думаю что дело вот в чем. В тех же интелах есть блок ветвлений и предсказаний, который берет на себя попытку предсказать что будет дальше. Звучит фантастично, но таки да, проц пытается предугадать что будет следующей операцией и эти операции выполняет параллельно, на разных ядрах, результаты "помнит", потом, если выясняется что он "угадал", то требуемый результат уже берет из "запомненных" а не выполняет последовательно снова. Где то проскакивала инфа о том, что попадание составляет около 75%. То есть программа откомпилирована для одного ядра, никаких "специальных меток", деления на потоки в ней нет, но благодаря механизму предсказания она будет выполнена в 75% случаях параллельно (значит в 2 раза быстрее или в 4 раза быстрее) — зависит от уровня распараллеривания эти 75% не на всю программу — а на некие блоки, инструкции и так далее, получается что вся программа в целом выполняется быстрее, чем если бы она выполнялась на процессоре с той же частотой но без этого механизма.
Если блока такого нет, то оптимизация сама вдруг не появится. Видимо в Эльбрусе нет таких механизмов, а значит нет никакой оптимизации. Оптимизировать можно, сделав программу с учетом требований процессора и скомпилировав её компилятором, заточенным под данный процессор (есть такой компилятор или нет — это уже вопрос второй), те оптимизации, которые придумает компилятор он реализует в набор инструкций процессора и процессор будет тупо исполнять инструкции. Это уровень RISC процессоров первого поколения.
------ Выдержка из Вики: -------
Первая система, которая может быть названа системой «RISC», — суперкомпьютер «CDC 6600», который был создан в 1964 году, за десять лет до появления соответствующего термина. CDC 6600 имел архитектуру «RISC» всего с двумя режимами адресации («регистр+регистр» и «регистр+непосредственное значение») и 74 кодами команд (тогда как 8086 имел 400 кодов команд).
Так что это не ноу хау. Это одна из старейших доктрин развития. Элементы RISC архитектуры сейчас есть в любом процессоре, ну просто абсолютно любом.
Все таки мы, русские, максималисты — если не лучшее в мире, то отстой. Я думаю, это неправильно. Учитывая, что 10 лет назад нашими микросхемами можно было пользоваться при штурме крепостей вместо булыжников в баллистах, то вполне нормально. Раз ВПК воспрял из праха и требует маленького и легонького, то обеспечим. Уж что-что, но оружие делать умеем.
я уже вижу следующий проект михалкова: принудительная замена всех пк в россии на эльбрусы, выплата ему положенного процента за использование медиа носителей в эльбрусах, все конфискованные вражеские пк через фонд михалкова "берем даром!" передаются в качестве благотворительности голодающим детям африки/азии и т.д...
"Дополнительный бонус: аппаратура процессора получается проще, хотя на нем можно добиться большей производительности для некоторых задач, чем на более быстрых устройствах конкурентов."
Хм... а забьем, что есть задачи, которые, при соответствующей оптимизации кода, на процессоре от кофемолки будут решаться быстрее?
Не буду, как не оптимизируй. Как правило в кофемолках и микроволновках стоят 8 и 16 битные процессоры, часто уровня Z80 и i8080/8085. Никаких вариантов обогнать на любой задаче даже древний Pentium 3 нет.
))) да ладно...))) Вопрос ясен пень риторический, наверняка при подаче 1 на вход, кофемолка и pentium3 выполнят разные операции? — ну значит эту конкретную операцию кофемолка выполнит быстрее... или нет?
Тогда можно предположить, что обычный транзистор быстрее и пентиума и процессора кофемолки. Подал на базу открывающее напряжение — ---МГНОВЕННО--- получил результат.
Если исходить из ваших умозаключений, обычный транзистор круче любого процессора?
Процессор кофемолки и Pentium III выполняют двоичный код. И "при подаче 1 на вход" третий пень всё равно будет производить вычисления на много порядков быстрее.
Все современные микроконтроллеры содержат в себе процессоры общего назначения. То есть микроконтроллер это микропроцессор с дополнительными сопроцессорами ( DSP, ввода-вывода, поддержкой дополнительных интерфейсов и т.д. ) и встроенной оперативной и постоянной памятью для работы.
"В «привычной» архитектуре, построенной по типам RISC и CISC, процессор получает набор инструкций для исполнения — и уже сам решает, можно ли какие-то из них выполнить параллельно... «Эльбрус» же возлагает задачу анализа зависимостей и оптимизацию порядка исполнения команд на компилятор"
То бишь основная фишка процессора то, что он НЕ МОЖЕТ распараллеливать процессы?
И как он юзает свои четыре ядра... а под 8 ядер надо полностью переписывать программный код?
Жесть, таки 400 К за девайс это только начало э... капиталовложений, сколько можно напилить на "адаптации" ПО одному Эльбрусу известно...
Хм... а если RISC процессору напрямую указать не параллелить он с горя застрелиться?
Что касается процессоров «Эльбрус», то они базируются на архитектуре VLIW. По большому счету VLIW является развитием RISC-архитектуры и суперскалярности. Особенностью VLIW является то, что в каждой команде может содержаться до 23 элементарных операций, которые должны исполняться параллельно. При этом задача распараллеливания возлагается на компилятор, в отличие от традиционных суперскалярных архитектур, где за распараллеливание отвечают аппаратные блоки процессора. Эффективность такого метода действительно выше. Компилятор способен анализировать исходный код гораздо тщательнее, чем аппаратура RISC/CISC-процессора, и находить больше независимых операций. Поэтому в архитектуре «Эльбрус» больше параллельно работающих исполнительных устройств, чем в традиционных решениях. На многих алгоритмах она демонстрирует более высокую скорость.
Не обязательно "до 23 элементарных операций" может быть и больше, а может и меньше. Все диктуется длиной командного слова. Но, чем длиннее это слово, тем больше памяти требуется для хранения кода.
В 1989 исследователи компании HP пришли к выводу, что RISC архитектуры имеют явный предел инструкций, выполняемых за такт. Были начаты разработки новой архитектуры, позже названной EPIC.[2] Исследования основывались на архитектурахVLIW, в которых каждое командное слово содержит несколько операций, выполняемых на нескольких исполнительных устройствах.
EPIC (англ. explicitly parallel instruction computing) — микропроцессорная архитектура с явным параллелизмом команд. Термин введён в 1997 году альянсом HP и Intel[1] для разрабатываемой архитектуры Intel Itanium.[2]
Главным структурным недостатком первых версий Itanium были большие задержки (латентность) СОЗУ 3-го уровня. Инженеры Intel, вероятно, надеялись, что большая пропускная способность шины нового процессора скомпенсирует этот недостаток, но задержки были настолько велики, что это действительно замедляло работу СОЗУ вплоть до уровня, когда он был немногим быстрее ОЗУ. Из-за относительно небольшого размера СОЗУ 1-го и 2-го уровней (32 кБ и 96 кБ соответственно) это могло привести к повышенной нагрузке на системную шину.
Первоначально процессор планировали выпустить в 1998—1999 годах, но продолжительные задержки проекта и усилившаяся конкуренция со стороны AMD на рынке процессоров архитектуры x86 привели к тому, что Itanium устарел ещё до его поступления в продажу. Таким образом, Itanium был неконкурентоспособным уже после выпуска в 2001 году, хотя этого могло не случиться, если бы он был выпущен двумя годами раньше, как и планировалось.
Itanium 2, получивший кодовое имя McKinley, был выпущен совместными усилиями HP и Intel. Это позволило решить многие из проблем с производительностью оригинального процессора Itanium, которые по большей части вызвала неэффективная подсистема памяти.
Блин... затолкать монитор и компьютер в ящик для инструментов(а судя по весу, инструменты никто и не вынимал) и обозвать сей моддинг тактическим ноутбуком... :)))
юноша... а вы никогда не видели почти бронированные ноутбуки армии США или хотя бы прорезиненные науты полиции... если честно то я по первой картинке подумал что как раз о них и пойдёт речь в этой статье... но оказывается это картинки российских военных ноутбуков...
Есть в технике такое понятие: аппаратно-програмный комплекс. Когда только нужная программа только на нужном железе будет работать.
Мерить все под интел- то же самое, как мерить человека его умением есть макароны жопой — интел давно улетел в рост частоты и уменьшение размеров кристалла. При кривой оптимизации железа и программ, тактовая частота делу не поможет.
Простой пример на старых, древних "Эльбрусах" для ПРО-СПРН: при расчетах на каждом этапе ложные данные сбрасывались, а верные распараллеливались многократно. А архитектура Интел будет до конца молотить ложные данные по алгоритму...
Те же американцы в криптографии используют далеко не интел, и не всем известную архитектуру и программы, как, впрочем, и наши.
Так что статья расчитана на дурачка с современным образованием, вернее, его отсутствие...
млять, это просто шедевр, все выпускники Можайки и ПВУРЭ плачут: "готов работать в операционной системе «Эльбрус» (на деле это модифицированный Linux)".
Алгоритмы "Эльбруса разработаны в 60-х годах прошлого века, когда папа линуха и не родился, если чо...
что же тогда у тебя в жизни происходит? скорость шифрования процессора и его энерговыделение не подходят для большинства применений шифрования на практике. Посчитай какая скорость нужна для шифрования трафика в каком-нибудь маршрутизаторе, а потом прикинь какая скорость у процессора, даже с инструкциями AES. А потом ты до сих пор не ответил в теме по Aegis. Что новые посты проще писать, чем отвечать на неудобные вопросы?
Комментарии
Если блока такого нет, то оптимизация сама вдруг не появится. Видимо в Эльбрусе нет таких механизмов, а значит нет никакой оптимизации. Оптимизировать можно, сделав программу с учетом требований процессора и скомпилировав её компилятором, заточенным под данный процессор (есть такой компилятор или нет — это уже вопрос второй), те оптимизации, которые придумает компилятор он реализует в набор инструкций процессора и процессор будет тупо исполнять инструкции. Это уровень RISC процессоров первого поколения.
------ Выдержка из Вики: -------
Первая система, которая может быть названа системой «RISC», — суперкомпьютер «CDC 6600», который был создан в 1964 году, за десять лет до появления соответствующего термина. CDC 6600 имел архитектуру «RISC» всего с двумя режимами адресации («регистр+регистр» и «регистр+непосредственное значение») и 74 кодами команд (тогда как 8086 имел 400 кодов команд).
Так что это не ноу хау. Это одна из старейших доктрин развития. Элементы RISC архитектуры сейчас есть в любом процессоре, ну просто абсолютно любом.
Между процессорами распараллеливание происходит на уровне ОС, конкретный проц про это не знает.
А распараллеливание на уровне потока команд делает процессор
Танки не едут ( даже на параде )
Ракеты не летают...
Советский Союз обеспечивал себя стакнками ( например с ЧПУ ) на 97%. Какие-то из них работают до сих пор. Что есть в современной эрефии?
( до чего довел планету фигляр ПЖ... )
Хм... а забьем, что есть задачи, которые, при соответствующей оптимизации кода, на процессоре от кофемолки будут решаться быстрее?
Если исходить из ваших умозаключений, обычный транзистор круче любого процессора?
То бишь основная фишка процессора то, что он НЕ МОЖЕТ распараллеливать процессы?
И как он юзает свои четыре ядра... а под 8 ядер надо полностью переписывать программный код?
Жесть, таки 400 К за девайс это только начало э... капиталовложений, сколько можно напилить на "адаптации" ПО одному Эльбрусу известно...
Хм... а если RISC процессору напрямую указать не параллелить он с горя застрелиться?
В 1989 исследователи компании HP пришли к выводу, что RISC архитектуры имеют явный предел инструкций, выполняемых за такт. Были начаты разработки новой архитектуры, позже названной EPIC.[2] Исследования основывались на архитектурахVLIW, в которых каждое командное слово содержит несколько операций, выполняемых на нескольких исполнительных устройствах.
EPIC (англ. explicitly parallel instruction computing) — микропроцессорная архитектура с явным параллелизмом команд. Термин введён в 1997 году альянсом HP и Intel[1] для разрабатываемой архитектуры Intel Itanium.[2]
Тут ru...wikipedia.org)
Главным структурным недостатком первых версий Itanium были большие задержки (латентность) СОЗУ 3-го уровня. Инженеры Intel, вероятно, надеялись, что большая пропускная способность шины нового процессора скомпенсирует этот недостаток, но задержки были настолько велики, что это действительно замедляло работу СОЗУ вплоть до уровня, когда он был немногим быстрее ОЗУ. Из-за относительно небольшого размера СОЗУ 1-го и 2-го уровней (32 кБ и 96 кБ соответственно) это могло привести к повышенной нагрузке на системную шину.
Первоначально процессор планировали выпустить в 1998—1999 годах, но продолжительные задержки проекта и усилившаяся конкуренция со стороны AMD на рынке процессоров архитектуры x86 привели к тому, что Itanium устарел ещё до его поступления в продажу. Таким образом, Itanium был неконкурентоспособным уже после выпуска в 2001 году, хотя этого могло не случиться, если бы он был выпущен двумя годами раньше, как и планировалось.
Тут
ru...wikipedia.org
Itanium 2, получивший кодовое имя McKinley, был выпущен совместными усилиями HP и Intel. Это позволило решить многие из проблем с производительностью оригинального процессора Itanium, которые по большей части вызвала неэффективная подсистема памяти.
а на каком процессоре НР сейчас выпускает свои старшие сервера?
Просто прогуглил из первых 20 ссылок
Перспективы налицо
Эпоха процессоров Intel Itanium, похоже, подходит к концу
03.12.2014
Смерть процессорам Itanium глазами сотрудника IBM-ма
19.05.2011 12:54
Kittson может стать последней микроархитектурой процессоров Intel Itanium
20 апреля 2015
Microsoft прекращает поддержку процессоров Intel Itanium в своих продуктах
6 апреля 2010
В 2011 году Oracle объявила[72], что прекращает поддержку архитектуры Itanium.
это значит
1 что его еще разрабатывают и будут выпускать
2 готовят плановый переход на что то новое (ничто не вечно под луной).
не зря написано что VLIW является развитием RISC-архитектуры и суперскалярности.
Нет, переписывать код не надо.
подумайте внимательно и найдите ошибку в постановке этого вопроса
Есть в технике такое понятие: аппаратно-програмный комплекс. Когда только нужная программа только на нужном железе будет работать.
Мерить все под интел- то же самое, как мерить человека его умением есть макароны жопой — интел давно улетел в рост частоты и уменьшение размеров кристалла. При кривой оптимизации железа и программ, тактовая частота делу не поможет.
Простой пример на старых, древних "Эльбрусах" для ПРО-СПРН: при расчетах на каждом этапе ложные данные сбрасывались, а верные распараллеливались многократно. А архитектура Интел будет до конца молотить ложные данные по алгоритму...
Те же американцы в криптографии используют далеко не интел, и не всем известную архитектуру и программы, как, впрочем, и наши.
Так что статья расчитана на дурачка с современным образованием, вернее, его отсутствие...
Алгоритмы "Эльбруса разработаны в 60-х годах прошлого века, когда папа линуха и не родился, если чо...
Кто там еще военную технику с бытовым ширпотребом сравнивает?
Китайцы наштампуют вам айпедиков.
Ну мы это уже проходили: "сам вдребезги, а галоши как новые". (с)