Как заставить мой код работать с вычислениями на основе данных из больших наборов данных быстрее в C ++? - PullRequest
0 голосов
/ 18 января 2012

Я пишу код, в котором у меня есть входные данные размером 50000x20 матрицы (50000 блоков, 20 свойств каждый). Затем я вычисляю, чтобы решить блок, который я бы выбрал для перемещения, основываясь на некоторых вычислениях, для которых я должен выполнить цикл по всем блокам. Затем я делаю некоторые изменения в характеристическом значении (другой переменной) для этого блока и повторяю один и тот же процесс снова и снова. Делать вычисления для каждого блока внутри цикла. Вызывает ли функция лучший и более быстрый способ сделать это? Этот код выполняется без конвергенции (на основе некоторых критериев конвергенции) в течение длительного времени. Как я так с этим справляюсь? Насколько хорош этот подход к работе с большими наборами данных? Могу ли я сделать лучше? Пожалуйста, помогите.

Спасибо Сурендра

Ответы [ 2 ]

0 голосов
/ 18 января 2012

Влияет ли изменение значения признака для блока на другие блоки?

Если нет, то, вероятно, нет необходимости повторять вычисления для других блоков.

0 голосов
/ 18 января 2012

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

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

Также поможет опубликовать некоторый код:).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...