|
2.4, Аноним (4), 11:12, 15/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
В Gentoo добавил, кроме всего прочего, в CFLAGS="... -fopenacc -fopenmp ..." Все собирается и работает без проблем.
Увеличение производительности не тестировал.
| |
|
3.6, Аноним (1), 11:19, 15/11/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Увеличение производительности не тестировал.
Было ли это увеличение, скорее там уменьшение.
У меня для фортрана так с надеждой на лучшее (а гфортран очень тормозной код генерирует в целом) FCFLAGS="${COMMON_FLAGS} -fopenmp -fprefetch-loop-arrays -fexternal-blas -fblas-matmul-limit=15"
Наверно какие-то применения на суперкомпах можно найти, но вот есть ли преимущества обычного софта?
| |
|
4.8, Аноним (8), 11:43, 15/11/2024 [^] [^^] [^^^] [ответить]
| +8 +/– |
Если в софте возможности OpenMP никак не использованы, то и пользы от добавления этих флагов никакой.
| |
|
|
6.43, Вымя (?), 00:42, 16/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
Я так понял что анон глобально добавил флаг при сборке всех пакетов.
| |
|
|
|
3.18, Аноним (18), 15:56, 15/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
Если софт использует OpenMP, то он без этих флагов не скомпилируется, как я понимаю. Нужные пакеты сами добавляли, а для остальных бесполезно.
| |
|
4.33, Аноним (33), 18:24, 15/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
У меня две дискретки AMD стоят, раньше и opencl включал, вдруг поможет производительности для пары пакетов.
Или есть какие нюансы?
| |
|
|
2.9, Аноним (9), 11:47, 15/11/2024 [^] [^^] [^^^] [ответить]
| +3 +/– |
Для консьюмерских приложений, вроде нет ничего современного...
Проблема в архитектуре современных серверов. Сейчас нельзя просто так купить привычные для OpenMP SMP-систему, везде ccNUMA и всякие гетерогенные SoC.
В этой ситуации сама концепция shared memory и модель fork-join летит псу под хвост.
Да, безусловно OpenMP поддерживает NUMA в какой-то степени в какой-то из свежих спецификаций, что даёт понять приложению о топологии памяти (она же неравномерная).
Вот только дальше начинается проблема с фиктивными ядрами на всяких современных amd64-процессорах. Ну знаете, когда в процессоре 48 "физических" ядер, а с DRAM-контроллером могут взаимодействовать только 12. При этом из них только 4 могут иметь один мультиплаер по частотам, а все остальные другой.
То есть по идее можно все переписать на новые версии OpenMP, но кто бы это делал...
Ну то есть масштабирование многопоточного приложения на системах с неравномерным доступом к памяти обычно требует реализации внутренненго планировщика, выполненного как супер-сервер. Таких реализаций на OpenMP я не знаю, возможно они есть, скиньте. Альтернатива - платформозависимые API для работы с потоками и процессами, которые умеют лучше и больше, но уже под конкретную ОС/планировщик.
По-факту, никто не парится. Все эти высокопросизводительные многопоточные вычисления просто пихают в виртуалки, чтобы вышестоящая инфра разобралась со всем этим и выдала равномерную память UMA, где shared memory не деградирует за счёт того что часть тредов/физических устройств сидят за интерконнект-шинами.
| |
|
3.29, 123 (??), 17:48, 15/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
> По-факту, никто не парится. Все эти высокопросизводительные многопоточные вычисления просто пихают в виртуалки, чтобы вышестоящая инфра разобралась со всем этим и выдала равномерную память UMA
ха ха, она взяла и разобралась (нет), запихивание в виртуалки лишь иллюзия того, что в вышестоящем слое нет тех же самых проблем, и если тебя лично это беспокоит, то всех кто отвечают за верхний слой - не особо, бизнес крутится лавешка мутится, не мамонты не вымрут
| |
|
2.12, Анонимов (?), 12:09, 15/11/2024 [^] [^^] [^^^] [ответить]
| +2 +/– |
Не особо.
Раньше можно было выйграть пару циклов в расчетном по для суперкластеров в связке OpenMP+MPI (HybridPP), но в последние лет 10 особо голову сношать себе не хочет и используют чистый MPI.
| |
2.13, Neon (??), 14:08, 15/11/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
Для некоторых задач, типа решения систем диф.уравнений, работа с матрицами и т.д. дает значительное ускорение. Обычно такие задачи специализированные и самописные. Обычному софту openmp мало помогает, плохо автоматически он параллелиться.
| |
|
1.5, Аноним (5), 11:15, 15/11/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +3 +/– |
Извините, ничего производительнее, чем просто std::thread, мои эксперименты не нашли. Ни TBB, ни OpenMP.
| |
|
2.7, Анониматор (?), 11:26, 15/11/2024 [^] [^^] [^^^] [ответить]
| +4 +/– |
Вряд ли оно имеет целью увеличение производительности. Скорее просто стандарт, чтоб программисту было легче пересаживаться с одного языка на другой
| |
2.10, Аноним (8), 11:47, 15/11/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
std::thread, само по себе, никак не задействует DSP, если он емеется, и/или GPU.
| |
|
3.15, Аноним (17), 14:51, 15/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
Во-первых, необязательно.
Во-вторых, именно поэтому я pthread не упомянул. Это платформозависмое API, которое бесполезно почти. Обёртки вокруг него и winapi - zero cost, нет особых причин юзать платформозависимое API.
| |
|
2.14, Neon (??), 14:10, 15/11/2024 [^] [^^] [^^^] [ответить]
| –1 +/– |
Ну так openmp делает тоже самое, только автоматически для некоторых задач. Выше физических ограничений платформы не прыгнешь
| |
|
3.16, Аноним (17), 14:52, 15/11/2024 [^] [^^] [^^^] [ответить]
| –2 +/– |
>только автоматически
С OpenAI o1 не путайте. Кодить всё равно приходится. Причём то же самое, просто в другом виде.
| |
|
|
1.19, Аноним (19), 16:07, 15/11/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +6 +/– |
Все эти потоки и многопроцессорность не что иное как путь в никуда. Инженерам нужно увеличивать производительность в однопотоке, а не костылить. А то вон уже есть процы со 192 потоками, а скроллинг в хроме всё равно со статтерами и микрофризами.
| |
|
2.21, anonymous (??), 16:33, 15/11/2024 [^] [^^] [^^^] [ответить]
| –2 +/– |
Скроллинг со статтерами (кандидат на новый мем? вместо "как конпелять кде под фрибзд")? Из за натыканых везде особенно в ядре "сохранялок энергии". Как нубуки стали пиарить, с тех пор всё в этой коричневой "энергосохраняющей" субстанции.
| |
|
3.23, Аноним (19), 16:52, 15/11/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
Да ты повідключай все энергосберегайки, так комп будет жрать как 4 пни во времена прескотов. И не факт что избавишься от статтеров, потому что они завязаны на 1 поток, на который разрабы куй ложили в угоду многопоточности. Даже в эппл не смогли побороть эту бяку, хотя вообще в отдельный поток вынесли отрисовку.
| |
|
2.27, Аноним (27), 17:43, 15/11/2024 [^] [^^] [^^^] [ответить]
| –2 +/– |
> Все эти потоки и многопроцессорность не что иное как путь в никуда. Инженерам нужно увеличивать производительность в однопотоке, а не костылить.
Удивительно, как такие комментарии набирают кучу плюсиков. 🤦 Это многое говорит об уровне компетенции большей части здешних комментаторов.
Да, уважаемый эксперт, нужно в один поток. А заодно вырубить
оптимизации на уровне компилятора, а на уровне CPU - предсказание ветвей, спекулятивное выполнение и остальной прогресс за последние 40 лет. Ну, чтобы инженеры булки не расслабляли, а оптимизациями занимались. Вот тогда в хроме скроллинг будет ого-го!
| |
2.42, Аноним (42), 00:41, 16/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
Простейший пример:
Открытие/Закрытие файла, работа с медленным устройством, многозадачность.
В один поток как-то "ухабисто".
| |
|
1.25, Аноним (25), 17:30, 15/11/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Параллельное программирование это когда два программиста работают над одной задачей. Multy Processing - множественная обработка.
| |
|
2.31, 123 (??), 17:53, 15/11/2024 [^] [^^] [^^^] [ответить]
| +/– |
Parallel Processing, Parallel Execution то же может применяться
| |
2.36, Аноним (36), 19:21, 15/11/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
Вы не поняли, это когда параллельно на программирование, но кипишь идёт.
| |
|
1.34, Аноним (-), 19:09, 15/11/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
А - зачем это "массовому среднему" программисту и пользователю ПК?
Сколько решают Невье-Стокса и пишут грамотно софт, который хорошо параллелится? Ну - просто - фиг с ним с этим OpenMP! - какой процент программеров нормально и ОСОЗНАННО с потоками в POSIX-thread может работать?
| |
|