|
1 / 1 / 0
Регистрация: 27.11.2010
Сообщений: 7
|
|
Builder 6 Как ускорить вычисления/дать больше ресурсов скомпилированному приложению в Borland C++ Builder09.12.2018, 13:15. Показов 1862. Ответов 8
Уважаемые форумчане,
В своей научной работе еще давно начал использовать Borland C++ Builder 6. Дело в том, что понадобилось выполнить оптимизацию параметров функции. Внутри функции очень много вычислений дифференциальных уравнений высших порядков. В самом алгоритме оптимизатора проблем нет - он простой, а вот функция является очень "тяжелой", но там никуда не деться и в рамках науч. проекта ничего уже не сделаешь... Потому считает он очень долго, порой до 5-6 часов, но при этом сам процессор и память используются всего на 10-12% (Intel Core i5 M480 @2.67Ghz). Причем заметил, что использование ресурсов моим созданным приложением будто "упирается" в потолок, и как не нагружай еще сильнее алгоритм - как использовал он 10-12% и около 3 Мб ОЗУ, так и продолжает. Пробовал выставлять приоритет в Диспетчере задач на "Высокий" или "Реального времени" или скачивать всякий софт, что-то наподобие CPU Control и др. - не помогает. Собственно, вопрос: Можно ли настроить компилятор или само приложение таким образом, чтобы оно использовало ресурсы компьютера на максимум? Или же это ограничение самого Borland'a? Буду рад услышать комментарии профи, кто работал с Borland'ом. Спасибо!
0
|
|
| 09.12.2018, 13:15 | |
|
Ответы с готовыми решениями:
8
Как дать своему приложению привилегии Root? Как не дать стороннему приложению закрыть программу Как выполнить событие в FormClosing и только потом дать закрыться приложению? |
|
Супер-модератор
|
||
| 09.12.2018, 13:24 | ||
|
У меня на 4-х ядернике одно ядро математическими расчетами грузилось на 100%, так что всего было не менее 25% загрузки процессора, так что сам Билдер никаких ограничений не добавляет на этот счет.
1
|
||
|
1 / 1 / 0
Регистрация: 27.11.2010
Сообщений: 7
|
|
| 09.12.2018, 14:02 [ТС] | |
|
volvo, Да, прошу прощения, в "процессах" указано как 10-12%. Но на вкладке "подробно" как раз 25% (см. вложение), о которых Вы говорите, наверное? На другие ядра, перебросить не удастся? Скорее всего нет, я так понимаю... При этом не видно, чтобы какое-либо из логических ядер грузилось на 100%, максимум 15%.
Код очень длинный, я не думаю, что Вам захочется там копаться. Каких-либо специфичных инструментов или конструкций от Builder'а там не использовал я. Стандартные "C"шные функции...
0
|
|
|
Супер-модератор
|
||
| 09.12.2018, 17:20 | ||
|
0
|
||
|
2621 / 1632 / 266
Регистрация: 19.02.2010
Сообщений: 4,330
|
|||
| 09.12.2018, 20:04 | |||
|
#include <math.h> подключить #include <fastmath.h> Если будет видимое ускорение (не в процентах загрузки процессора - а в скорости расчётов некоторого тестового задания) - значит, в проге большая нагрузка идёт на элементарные матем.функции (exp() и прочие). Если не будет - значит, там основное время занимают обычные циклы, плюсы-минусы-умножения-деления, доступ к данным в памяти. В любом случае - только после взгляда на код (а лучше - после Вашего подробного объяснения задачи) можно будет сказать, насколько эффективно расчёты могут быть распараллелены на несколько ядер. Но взгляд на код невооружённым глазом - он тоже во многом будет чисто субъективным. По-хорошему - нужно загнать код в профилировщик (а для этого нужен код всей проги, а не только функции с диффурами). Профилировщик чётко может сказать, сколько времени занимает выполнение не только каждой функции программы, но и каждой строки программы. Ну и ещё вариант - сразу будет видно, что это не код, а говнокод, и надо всё (ну, или не всё - а часть с вычислениями) переписывать совсем по-другому.
0
|
|||
| 09.12.2018, 21:35 | ||
|
Не по теме:
Поэтому "объяснение задачи" - это будет просто вынос мозга и не более того... И о каком "распараллеливании" может речь идти тогда, когда, грубо говоря, значение функции вычисляется при значении N1, которое получается из функции с аргументом N2. который получается ... т.е. все вычисления происходят последовательно, что в той же математике - сплошь и рядом...
0
|
||
|
1 / 1 / 0
Регистрация: 27.11.2010
Сообщений: 7
|
|
| 09.12.2018, 22:38 [ТС] | |
|
D1973, да, Вы правы объяснять задачу, будет просто невозможно, эта задача из моей кандидатской диссертации и объяснять диссер вам всем будет то еще приключение
. А вообще я решил проблему путем увеличения шага интегрирования. Да, я потерял в точности расчета, но зато не придется оставлять компьютер включенный сутками и в принципе для целей оптимизации - сойдет. Так что тему можно закрыть. Спасибо Всем.
0
|
|
|
2621 / 1632 / 266
Регистрация: 19.02.2010
Сообщений: 4,330
|
||
| 10.12.2018, 00:24 | ||
|
Скорее всего у ТСа сеточный метод решения. Т.е. решается задача гидро/газодинамики, либо какой-то прочностной расчёт, либо что-то подобное (вплоть до моделирования неравномерной среды, например, в задаче расчёта оптимального шумопоглощающего пакета из нескольких разных листовых материалов). И, как нас учат математики-вычислители, сеточные методы таки параллелятся. Хоть на ядра многоядерного процессора - хоть на узлы кластера/суперкомпьютера. Ибо узлы сетки могут таки обсчитываться в параллель.
0
|
||
|
|
|
| 10.12.2018, 11:28 | |
|
Добавлю свои 5 коп.
Вроде как сама компания писала, что до до какой то версии компилятор не умеет нормально работать с ресурсами процессора (использования ядер, и неверное распределение нагрузки)....И только с выходом новых версий, было отписано, что появилась нормальная возможность нагрузки на ядра.
0
|
|
| 10.12.2018, 11:28 | |
|
Помогаю со студенческими работами здесь
9
Android Studio. Как дать приложению возможность использовать фронтальную вспышку? Добавляю из ресурсов картинки. Их много. Как ускорить процесс? Дать разрешения приложению Подскажите где можно найти Borland C++ Builder или Borland Developer Studio 2006 C++ ? Очень надо. Не дать консольному приложению закрыться Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|