Ядерная математика. Итоги

Aug 09, 2018 17:09

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

За время пользования персональным компьютером я наблюдал такие новации в чипостроении
- сопроцессоры
- их интеграция с центральным процессором (CPU)
- сигнальные процессоры
- их интеграция
- графические процессоры
- их интеграция
- видеоускорители
- их интеграция
- кэш-память
- ее интеграция
В то же время внутри CPU возникали свои особенные прибамбасы, ускорявшие их работу:
- конвейеры
- внеочередное исполнение
- спекулятивное исполнение
предназанченные для параллельного выполнения команд, но так, чтобы для периферии, памяти и программного обеспечения процессор представлялся все тем же последовательныем чипом. Мало, сделали еще
- потоки
- SSE (*) и т.п.
и все-таки ...тадаммм... - ядра.
Каждое ядро - практически самостоятельный процессор с "особенными прибамбасами". Все это позволяет говорить о "чудовищной сложности процессоров". А самое главное - позволило лидеру отрасли оторваться от конкурентов, отсечь прочих желающих надежнее чем от ядерных технологий. То есть простое ядро разработать можно, но его как бы никто не купит. А мейнстримом было объявлено усложнение. Сами производители таки вырулили на многоядерность, хоть и перректально: чтобы и сложность и многоядерность.

Но практическое пользование компьютером, разговоры с разработчиками не выявили каких-то вычислительных задач, которым ну вот никак нельзя без всех этих конвейеров-спекуляций.
Провел опрос в сообществе engineering-ru
< ---------- начало перепоста ------------ >
Ядерная математика

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

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

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

Вместе с тем, будучи пользователем однопроцессорной машины, я не вижу у себя задач, которые без всяких конвейеров нельзя было бы разложить по тысяче менее сложных ядер. Более того, графический процессор так и сделан. И это работает. Да так, что для особо тяжелых задач охотно используют именно GPU. Наверное, при желании можно программными средствами заставить тысячу ядер всеми этими спекуляциями заниматься. Но, повторяю, не вижу в этом необходимости.

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

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

< ---------- конец перепоста ------------- >
Не совсем удачно. В качестве примера очень многоядерного чипа я привел GPU, который не совсем то же что кластер универсальных ядер - в GPU, как правило, "все шагают дружно в ряд" (каламбурчик !), исполняя одну инструкцию, только данные различаются (*). Ну мне кинулись разъяснять это различие, хотя собственно вопрос был только о многоядерности и многоядерность CPU (до 20 ядер уже) им известна. Парочка конкретных задач таки была названа: какая-то молекулярно-биологическая база данных и очень большая таблица в Excel.
Но
1) эти задачи редки
2) процессорные прибамбасы заметно полезны в системах с одним или несколькими процессорами; если же твоя задача требует тысячу процессоров, все равно приходится решать проблему распараллеливания точно также как меньшую задачу для тысячи ядер.

К чему это я все ? А к тому, что мы все переплачиваем сотни баксов за ненужную сложность. Все что надо рядовому пользователю может сделать чип с сотней простых универсальных ядрышек. А если тебе уж прспичило, можешь сэмулировать конвейеры-спекуляции программно. Для профессиональных же утех можно потратиться на дорогой процессор, выпускаемый соответствующими тиражами. В комментах характерная фраза
слишком затратно с точки зрения очереди грузить туда миллионы отдельных задачек по несколько миллисекунд каждая. Поэтому очередь кластера видит наши вычисления некими крупными осмысленными кусками (например, по полчаса длиной каждый)

Затратно ему. Драть с нас миллиарды - не затратно, а купить несколько спец.процессоров - "затратно".

Хуже всего, что "профессионалы", если есть возможность начинают городить сложности потому что "профессионалы". Просто - нельзя, табу.

* SSE (англ. Streaming SIMD Extensions, SIMD - Single Instruction, Multiple Data - одна инструкция, много данных - то самое ;-)

Update. В комменты к
https://engineering-ru.livejournal.com/531791.html
продолжают заходить идиоты. Последний на 12.35 местного в одном комменте доказывает, что сложный процессор лучше пучка простых И одновременно заявляет, что параллелить начали потому что производительность уперлась в потолок.

Этот пост изначально помещен в http://vlkamov.dreamwidth.org

железо, зигзаг прогресса

Previous post Next post
Up