|
3 / 3 / 1
Регистрация: 15.01.2025
Сообщений: 52
|
||||||||
Как распараллелить вычисления не множа копии данных и получить прирост производительности?23.02.2025, 04:39. Показов 7158. Ответов 65
Метки нет (Все метки)
Вопрос: Как распараллелить вычисления не множа копии данных и получить прирост производительности?
0
|
||||||||
| 23.02.2025, 04:39 | |
|
Ответы с готовыми решениями:
65
Будет ли заметен прирост производительности? Найти среднегодовой прирост производительности Стоит ли прирост производительности приросту t? |
|
62 / 42 / 3
Регистрация: 04.01.2019
Сообщений: 278
|
|
| 24.02.2025, 21:59 | |
|
0
|
|
|
462 / 185 / 32
Регистрация: 04.08.2018
Сообщений: 732
|
||
| 24.02.2025, 23:08 | ||
|
As17, есть книга про потоки в Дельфи Martin Harvey 2000. "Multithreading - The Delphi Way.". Её можно не сложно нагуглить по названию в яндексе, первая выдача. В главе "Chapter 2. Creating a thread in Delphi." написано:
Скорее всего вы не занимались управлениями потоков, поэтому у вас не доступ к массиву последовательный, а даже расчёт последовательно выполняется. Как заставить Дельфи запустить потоки параллельно написано в книге. Если в двух словах - или избавиться от доступа к общему ресурсу или использовать приёмы типа синхронизации, критических секций. Есть ещё штуки для управления потоками, но я не освоил Mutex-ы.
0
|
||
|
62 / 42 / 3
Регистрация: 04.01.2019
Сообщений: 278
|
|
| 24.02.2025, 23:13 | |
|
As17, нашел свой тест параллельной сортировки. работает. написано тупо и линейно. нажать тымпочки ген, копиарр, тестпаралл.
ParallelSort.zip
0
|
|
|
|
||
| 24.02.2025, 23:21 | ||
|
тогда нужно всего лишь взять пример массива в 1 мбайт и сделать тестовый проект, который нужно выложить сюда, чтобы можно было понять, в чем проблема
чаще всего предположения автора о том как работает его программа, немного расходятся с реальностью... Добавлено через 4 минуты делфи вообще ничего не проверит и не запустит "в последовательном режиме" хотя бы потому, что запущенными потоками управляет ОС если ресурс read-only, то его чтение хоть из 100 потоков не приведет к изменению памяти, поэтому будет вполне безопасно
0
|
||
|
462 / 185 / 32
Регистрация: 04.08.2018
Сообщений: 732
|
||
| 24.02.2025, 23:27 | ||
|
As17, и если вы задумались добавить в свою программу классические потоки, то первое что нужно прочитать это статью из блога krapotkin https://www.cyberforum.ru/blogs/469693/4875.html
Есть ещё другая реализация потоков в Дельфи из библиотеки Parallel Programming Library (PPL). Там сделано всё проще и удобнее, но мне было освоится так же тяжело, как и с классическими, т.к. информации в интернете очень мало, и она вся перекопипащена друг у друга. Даже стрим русскоязычных комьюнити-менеджеров и демо-проект оставили вопросы. Добавлено через 2 минуты
0
|
||
|
Модератор
4153 / 2362 / 814
Регистрация: 15.11.2015
Сообщений: 9,496
|
||
| 25.02.2025, 01:33 | ||
|
As17, давайте проект на пробу. И с данными как-то придумать бы, чтобы сгенерировать похоже и тоже попробовать потестить.
В общем, давайте проект на пробу.
0
|
||
|
|
|
| 25.02.2025, 07:05 | |
|
Ну, с 3 гб ничего и никогда не будет в кэше процессора
Все будет идти со скоростью обращения к памяти, но это все равно немало Если я правильно понял идею, потоки для вычислений все равно надо кормить, а вычисления скорее всего должны длиться дольше чем доступ, поэтому распараллеливание скорее всего принесет пользу.
0
|
|
|
631 / 526 / 104
Регистрация: 05.08.2022
Сообщений: 2,810
|
|
| 25.02.2025, 15:39 | |
|
0
|
|
|
3 / 3 / 1
Регистрация: 15.01.2025
Сообщений: 52
|
||
| 26.02.2025, 00:24 [ТС] | ||
|
stalkernet, процессор ryzen 5 (6 ядер, 12 потоков). Привязка к ядру не влияет на общие тормоза.
(На одном потоке результат немного быстрее получается когда поток привязан к ядру.)Смотрю системным "Монитором ресурсов".
![]() Запустил только математику без чтения массива в обоих потоках - тормоза остались. Запустил чтение массива в обоих потоках, а математику оставил в одном потоке - хорошо работает (загрузка каждого ядра 100%, потоки разнесены по ядрам). Т.е. мое предложение, что чтение общего массива взаимно мешает работе потоков не верно. А вот математика реализована через стороннюю библиотеку (Velthuis.BigIntegers.pas) и потоки вызывают одни и те же функции. А также следует отметить, что главный поток и вспомогательные потоки описаны в одном файле. Если поток вынести в отдельный unit это поможет потокам считать математику без тормозов?
0
|
||
|
пофигист широкого профиля
4770 / 3207 / 862
Регистрация: 15.07.2013
Сообщений: 18,615
|
||
| 26.02.2025, 01:14 | ||
|
Разделение на юниты нужно только для удобства написания, чтения и отладки кода.
0
|
||
|
62 / 42 / 3
Регистрация: 04.01.2019
Сообщений: 278
|
||
| 26.02.2025, 01:34 | ||
|
As17, за АМДу не чего не скажу. я от него отказался лет 20 назад.
Монитор пошустрее найди. 1сек ох... долго. в идеале 50-100 мсек на тик. сколько байт разрядность? похоже перегрузка регистров кучу времени занимает. Работал с Velthuis.BigDecimals. Завтра посмотрю... по настроению.
0
|
||
|
пофигист широкого профиля
4770 / 3207 / 862
Регистрация: 15.07.2013
Сообщений: 18,615
|
|
| 26.02.2025, 01:36 | |
|
0
|
|
|
631 / 526 / 104
Регистрация: 05.08.2022
Сообщений: 2,810
|
||||||
| 26.02.2025, 07:35 | ||||||
![]() Добавлено через 2 минуты Правда не понимаю какая. Как чисто теоретическое предположение: она особо буйно работает со строками (если внутри строковое представление "длинный математики") и всё упирается в менеджер памяти. Но гипотеза средненькой такой надёжности.
0
|
||||||
|
|
|
| 26.02.2025, 09:04 | |
|
вообще работа со строками это довольно страшный вызов
если идет постоянная перезапись строк, то это дичайший оверхед по работе менеджера памяти любая библиотека, где строки используются активно, должна первым делом оптимизировать именно этот момент
1
|
|
|
62 / 42 / 3
Регистрация: 04.01.2019
Сообщений: 278
|
||
| 26.02.2025, 12:53 | ||
|
И таки да... проблема в либе. два потока на простом с := a + b идут последовательно.... KSergey9, krapotkin, нету там строк. чистая численная математика.
0
|
||
|
|
|
| 26.02.2025, 13:36 | |
|
насколько я понял, сейчас мы здесь:
-расчеты медленные -чтение из массива ни на что не влияет а что за числа там такие, что прямо не хватает 64-бит integer и приходится в стороннюю математику ?
0
|
|
|
62 / 42 / 3
Регистрация: 04.01.2019
Сообщений: 278
|
|
| 26.02.2025, 13:43 | |
|
одна и две копии программы без потоков.
мониторинг 1x 2x бвло чтото на тему оптимизации asma. может тут? по ходу приятного мало. расчитывал на потоки.
0
|
|
|
62 / 42 / 3
Регистрация: 04.01.2019
Сообщений: 278
|
|
| 26.02.2025, 13:46 | |
|
krapotkin,
ну человек свой БИТКОИНТ делает..........
0
|
|
|
631 / 526 / 104
Регистрация: 05.08.2022
Сообщений: 2,810
|
||
| 26.02.2025, 13:48 | ||
|
Отмасштабировать точно нельзя вот эти бестолковые нолики?
0
|
||
| 26.02.2025, 13:48 | |
|
Будет ли прирост производительности в играх?
Даст ли прирост производительности, замена ОЗУ
Прирост производительности ПК в играх при замене видеокарты Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
|
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2.
Задача:
Обеспечить запись документа в регистр сведений независимо от. . .
|
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется.
Ну как вам?
|
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания
источниках данных и элементов формы(текстовые поля и метки), опирается все
это на технологию событий и мета. . .
|
|
Цена ошибки
DevAlt 23.08.2026
Человек я беспокойный и потому заинтересовался OCaml,
в чате форсили функторы модулей как суперфичу.
Пытаясь отдуплить концепт, наткнулся на тутор с простым примером.
А главный принцип обучения от. . .
|
Сегодня суббота, 22.08.2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины.
zorxor 22.08.2026
Сегодня суббота, 22. 08. 2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины. Кто Я, откуда Я пришел и куда Я иду? Эти вопросы не оставляют меня ни на секунду. Жизнь на планете Земля. . .
|
Жизня: рисунок укладки багажа, сделанный клодом
anaschu 21.08.2026
Сделал 15 снимков, он по снимкам сделал схему.
|
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства.
Жизнь действительно предъявляет каждому. . .
|