SII писал(а):
Вы заблуждаетесь просто глубочайшим образом. Львиную долю площади кристалла современных мощных процессоров занимает именно кэш, поэтому сколько-нибудь значительно его нарастить не удастся. Поддержка же всякого мусора архитектуры IA-32 (а эта архитектура -- действительно одна из самых ужасных) требует лишь мизерных дополнительных затрат аппаратуры по сравнению с общим объёмом последней.
По поводу мизерных затрат на мусор и львиной доли кэша позволю себе не согласиться. На странице 29 классической книги Хеннесси и Паттерсона есть рисунок 1.14 - флор-план Intel Core i7, как всего проца, так и каждого из четырёх ядер. Там видно, что совокупно все три уровня кэш-памяти занимают меньше половины площади кристалла. Оценить количество мусора прямо вряд ли возможно, на флор-плане мусор так прямо не отмечен, но есть косвенные критерии, такие как нерегулярная система команд, приводящая к сложности декодирования инструкции и трансляция во внутреннее RISC-представление, что тоже требует немало ресурсов.
SII писал(а):
(Собственно, именно поэтому среди процессоров общего назначения интеловские являются лидерами по производительности, несмотря на идиотскую систему команд -- наличие всякой дури усложняет их разработку и т.д., но не налагает принципиальных препятствий в достижении высокой производительности).
Тоже позволю себе не согласиться - дурь в системе команд не позволяет эффективный алгоритм закодировать эффективно.
SII писал(а):
Что же касается объединения нескольких операций в одну команду, то да, это позволяет поднять производительность -- и это одна из причин, почему CISC-процессоры архитектуры IA-32 (причём плохой CISC-архитектуры) оказываются в общем случае существенно быстрей, чем RISC-процессоры -- правда, ценой усложнения самого процессора.
Это тот случай, когда под "нож сокращения инструкций" пошли те, которые сокращать было не надо. Но это очень хороший пример, как раз в тему, - как правильно замечено, ранние RISC-процессоры успевали сделать несколько инструкций тогда, как CISC-процессор только одну. Это лишний раз подтверждает тот факт, что объединение команд - далеко не всегда благо.
Zealint писал(а):
Как Вы предлагаете реализовать длинную арифметику (хотя бы сложение) векторными командами? Я не придумал способа, как с помощью SSE сделать это хоть сколько-нибудь эффективно. Эти переносы портят всю картину, поэтому просто так сложить сразу несколько цифр не получается, нужны дополнительные действия, что сразу убивает весь смысл векторных команд.
Нет, если вы посмотрите реальную картину, то увидите, что не портят. Представьте, мы складываем два килобитных числа. Мы разбили их на группы по 16 64-битных чисел (я не говорю применительно к x86, сейчас чисто теоретический анализ), которые сложили одновременно одной векторной инструкцией. Среднестатистически в половине сумм у нас возникнет перенос. Тогда следующей операцией мы одновременно инкрементируем те суммы, перед которыми возник перенос. С вероятностью примерно 1-1/2^48 на этом всё закончится. В оставшемся (невероятно мизерном) количестве случаев в одной или нескольких суммах у нас произойдёт распространение переноса (возможно, циклическое, но в свете вероятности это не важно). Как видите, векторная схема отлично работает без использования математических сопроцессоров!
Zealint писал(а):
По поводу реализации генератора простых чисел ... Раз есть алгоритмы, то я предположил, что можно зашить их аппаратно.
Если эти алгоритмы содержат уникальные операции, не разлагающиеся на последовательные и однородные параллельные операции, то имеет смысл отдельно рассмотреть эти "цельные" операции. Но весь алгоритм зашивать в железо точно не имеет смысла, - быстрей он работать от этого не будет.
Zealint писал(а):
Вращаясь в этих кругах, могу сказать, что чиновники "лишнесть" или "нелишнесть" задачи определяют только (даже нет, ТОЛЬКО) исходят из размера внешних показателей, которые они приобретут в результате допуска человека на кластер. Если либо чиновник не видит на заявлении подписи какого-нибудь супер-доктора, либо эта задача ему незнакома (а, следовательно, её смысл непонятен), доступ на мощный кластер человек не получит - это я утверждаю на 120%
А как иначе отфильтровать клиентов? Я не знаю другого эффективного способа. Либо вникай в задачу, либо смотри на именитые подписи, другого не дано.
По поводу доступа - не так всё плохо, даже студент может получить долю времени. Каждый год проводится
Летняя Суперкомпьютерная Академия, в рамках которой доступ к СК Ломоносов может почти любой желающий (ну определённая фильтрация всё же есть - читайте условия).
Zealint писал(а):
Вы знаете, на сколько процентов обычно загружен "Ломоносов"? Я вот не знаю, но не верю, что больше чем на треть.
Я же пишу - у него нет простоя! Работает 24 часа круглый год без выходных и праздников, больше сотни задач ждут в очереди, когда СК освободится. Вы конечно можете не верить, ваше право. Побеседуйте с член-кором РАН Владимиром Воеводиным, с ним традиционно можно пересечься либо на ежегодном фестивале науки, он проводит экскурсии по Ломоносову, либо на СК Академии.
upd
Zealint писал(а):
я предлагаю теперь опытным участникам кратко выразить свои основные претензии к архитектурам, что доступны рядовому пользователю (x86, ARM, может даже архитектуры современных GPU). Претензии эти я бы попросил обосновать.
Претензии весьма обширны. Проблема в том, что кратко выразить их не удастся, тем более с обоснованием. Работа тянет на серьёзную статью.