[identity profile] vlkamov.livejournal.com posting in [community profile] engineering_ru
538 последняя китайская новость:
В Китае началась работа прототипа вычислительной машины эксафлопсного класса, относящейся к следующему поколению суперкомпьютеров.

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

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

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

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

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

Date: 2018-08-07 07:30 pm (UTC)
From: [identity profile] flat-area.livejournal.com
Более-менее сложные программы очень тяжёло распараллелить.
Всё, что в 100 строк параллелится легко.
Хрен вы сделаете то же самое с программой в 1000000 строк, где сотни задач взаимосвязаны друг с другом и выполняются последовательно, где используются тысячи классов, которые нельзя обвесить мьютексами на каждый метод, которые в ходе вычислений создаются, разрушаются и взаимодействуют в миллиардах комбинаций.

Это то же самое, что думать, что большую ракету для отправки космонавтов на МКС можно сделать такой же простой и дешёвой, как фейерверк.

Date: 2018-08-07 07:52 pm (UTC)
From: [identity profile] swizard.livejournal.com
> Всё, что в 100 строк параллелится легко.

Довольно смелое утверждение :)

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

Date: 2018-08-08 07:48 am (UTC)
From: [identity profile] flat-area.livejournal.com
То есть, вы того же мнения, что и я :-)

Date: 2018-08-08 08:07 am (UTC)
From: [identity profile] flat-area.livejournal.com
Я больше писал про сложные реальные программы. В них элементарную сортировку затруднительно распараллелить, ибо сортируются записи в объектах с виртуальными методами, где ставить критическую секцию на каждое обращение совершенно неприемлемо.

Date: 2018-08-09 06:11 am (UTC)
From: [identity profile] flat-area.livejournal.com
Вы не понимаете, зачем объектам виртуальные методы? Или почему они касаются сортировки?
Вообще-то, это классика программирования...
Один сортируемый объект может иметь данные в памяти, другой может их подгружать по мере необходимости с диска, третий может их вычислять по необходимости, четвёртый может быть обёрткой представляющей набор разнородных списков единым объектом и т. д.

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

Date: 2018-08-09 10:07 am (UTC)
From: [identity profile] flat-area.livejournal.com
Капризов?
Я 20 лет программу пишу. Она более миллиона строк. Одна из лучших в отрасли. То есть, далеко не рядовой программист и даже не "синьёр". А вы вот какую самую большую программу написали? Я так понимаю НИКАКУЮ, раз виртуальные методы и критические секции вам КАПРИЗЫ.

Date: 2018-08-08 01:46 pm (UTC)
From: [identity profile] swizard.livejournal.com
> множество проверяемых чисел нельзя разбить на интервалы ?

Можно, разбейте. Только вот что вам это даст? Во всех интервалах, кроме первого, вы не знаете ни одного простого числа, соответственно, и посчитать ничего нельзя.

> Занятая ячейка меняет состояние одной из соседних. Две занятых поблизости меняют состояние соседей еще по каким-то правилам.

Это вы, скорее, какой-то клеточный автомат описываете. Он, действительно, неплохо распараллеливается.

Profile

engineering_ru: (Default)
Инженерия

December 2025

S M T W T F S
 123456
78910111213
14151617181920
2122232425 2627
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Mar. 7th, 2026 09:56 am
Powered by Dreamwidth Studios