Ядерная математика
Aug. 7th, 2018 04:40 pm538 последняя китайская новость:
Еще в прошлом тысячелетии суперкомпьютеры состояли из десятков тысяч процессоров. в этом наверняка больше ста тысяч будет.
Вместе с тем и отдельные процессора тоже стали существенно многоядерными. Но и это не все, там внутри всякие потоки, конвейеры, спекулятивное исполнение. А еще кэши в три наката и всякое такое, что, увеличивая количество вентилей в разы, позволяет слегка повысить производительность всего чипа в целом.
Вместе с тем, будучи пользователем однопроцессорной машины, я не вижу у себя задач, которые без всяких конвейеров нельзя было бы разложить по тысяче менее сложных ядер. Более того, графический процессор так и сделан. И это работает. Да так, что для особо тяжелых задач охотно используют именно GPU. Наверное, при желании можно программными средствами заставить тысячу ядер всеми этими спекуляциями заниматься. Но, повторяю, не вижу в этом необходимости.
И еще более того, вот этот экзафлопный, сколько бы конвейеров какой бы длины ни было в каждом отдельном процессоре, снаружи все равно - отдельный процессор и большую задачу придется распределять между ними более -менее равномерно.
Вот объясните нам, блондинам, какие вообще задачи (кроме маркетинговых, конечно) требуют непременно очень сложных процессоров. И отдельно: какие задачи для персонального компьютера реально требуют сложных процессоров, а не массива простых ядер.
В Китае началась работа прототипа вычислительной машины эксафлопсного класса, относящейся к следующему поколению суперкомпьютеров.
Еще в прошлом тысячелетии суперкомпьютеры состояли из десятков тысяч процессоров. в этом наверняка больше ста тысяч будет.
Вместе с тем и отдельные процессора тоже стали существенно многоядерными. Но и это не все, там внутри всякие потоки, конвейеры, спекулятивное исполнение. А еще кэши в три наката и всякое такое, что, увеличивая количество вентилей в разы, позволяет слегка повысить производительность всего чипа в целом.
Вместе с тем, будучи пользователем однопроцессорной машины, я не вижу у себя задач, которые без всяких конвейеров нельзя было бы разложить по тысяче менее сложных ядер. Более того, графический процессор так и сделан. И это работает. Да так, что для особо тяжелых задач охотно используют именно GPU. Наверное, при желании можно программными средствами заставить тысячу ядер всеми этими спекуляциями заниматься. Но, повторяю, не вижу в этом необходимости.
И еще более того, вот этот экзафлопный, сколько бы конвейеров какой бы длины ни было в каждом отдельном процессоре, снаружи все равно - отдельный процессор и большую задачу придется распределять между ними более -менее равномерно.
Вот объясните нам, блондинам, какие вообще задачи (кроме маркетинговых, конечно) требуют непременно очень сложных процессоров. И отдельно: какие задачи для персонального компьютера реально требуют сложных процессоров, а не массива простых ядер.
no subject
Date: 2018-08-10 09:29 pm (UTC)P.S. Вот и ссылка на этот топ-10 https://habr.com/company/ua-hosting/blog/419753/
no subject
Date: 2021-01-19 07:30 am (UTC)И распараллеливанием занялись когда уперлись в потолок.
GPU делает одинаковые операции над разными данными, для других задач требуется выполнять разные операции над разными данными, а потом синхронизировать.
no subject
Date: 2021-01-19 07:42 am (UTC)> И распараллеливанием занялись когда уперлись в потолок.
:-)
В сообщении о вашем комменте видна только 1-я строка:
> Потому что задача синхронизации многоядерных расчетов очень сложна.
И я с ходу хотел ответить, что сложна она потому, что о распараллеливании спохватываются в последнюю очередь, когда уже трудно что-то изменить в основном коде.
Ну он же основной. его надо писать в первую очередь, не так ли ?
А когда открыл коммент для ответа, это самое и увидел.
Да, она сложна потом. А в самом начале, когда набрасывается концепция, архитектура - не сложна.
no subject
Date: 2021-01-19 07:49 am (UTC)ps -e | wc 239 965 8401ядро, демоны, броузер, редактор и еще кое-что - 240 процессов, на другом 250. Очень разные операции с очень разными данными.
Как-то синхронизируются же. Причем несмотря на то, что выполняются одним ядром, они распределены во времени и в памяти.