|
3 / 3 / 1
Регистрация: 15.01.2025
Сообщений: 52
|
||||||||
Как распараллелить вычисления не множа копии данных и получить прирост производительности?23.02.2025, 04:39. Показов 7136. Ответов 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
|
||
|
Модератор
4152 / 2361 / 814
Регистрация: 15.11.2015
Сообщений: 9,494
|
||
| 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 / 3206 / 862
Регистрация: 15.07.2013
Сообщений: 18,613
|
||
| 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 / 3206 / 862
Регистрация: 15.07.2013
Сообщений: 18,613
|
|
| 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 | |
|
Будет ли прирост производительности в играх?
Даст ли прирост производительности, замена ОЗУ
Прирост производительности ПК в играх при замене видеокарты Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
|
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
|
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701
Купил два термопринтера QR701.
На сэлф-тесте написано:
Language: PC936 (GB18030).
Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
|
|
Создание формы заимствованного документа
Maks 03.08.2026
Задача:
Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также
табличная часть со следующими реквизитами:
- Расчетный счет покупателя. . .
|
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача:
В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
|
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов.
Логика кажется понятной:
1. Находим ключевые слова.
2. Добавляем их на. . .
|
Знание — сила: Доктрина интенциональности знаний, углубление в формулу
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302
Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
|