Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нем неправильно. Необходимо обновить браузер или попробовать использовать другой.
Разве выполнение следующих вычислений зависит от предыдущих? То есть чтобы к примеру вычислить значение для числа 100 нужны данные предыдущих вычислений?
Вычисление в 10 потоках. Миллион чисел обрабатываются за 200 мс. Если исключить из кода запись результата в массив, время уменьшается до 80 мс. Результат записывается в файл Result.txt
Разве выполнение следующих вычислений зависит от предыдущих? То есть чтобы к примеру вычислить значение для числа 100 нужны данные предыдущих вычислений?
Да, зависит. Вычисления итераций идут по цепочке. Можно, конечно, заготовить файл или массив (что сильно ограничено в объёме) результатов применения итерации для всех последовательных чисел, но так никто обычно не делает (кроме специфических целей), так как объём требующейся информации намного превышает длины цепочек, да к тому же скорость помещения результатов в блоки информации и чтения из них по индексу занимает время, сравнимое с выполнением одной итерации даже при работе с оперативной памятью (а при работе с файлом вообще сильно проигрывает), а посему не даёт практического эффекта даже при равноценном сравнении, о котором и речи нет, поскольку в некотором смысле в среднем старт с числа N требует порядка 3 * Log(N) / Log (4/3) итераций, что куда меньше полного перебора всех чисел от 1 до N. Поэтому многопоточность вижу целесообразной только при работе с очень огромными числами в последовательности исключительно для ускорения арифметики огромных чисел. Ну или для специфической постановки исследовательской задачи на эту тему.
В предыдущем сообщении я прикрепил файлы. Запустите приложение и посмотрите результат в файле Result.txt (в блокноте не открывать - повиснет из-за большого размера файла).
Он такой же как при вычислении в одном потоке. Но скорость вычисления во много раз выше.
Стоп, если имеется в виду не единичное выполнение алгоритма, а реализация собственно цикла работы алгоритма для различных чисел, то, конечно же, сам такой цикл легко параллелится, но выполнение алгоритма для заданного числа требует последовательного прохождения цепочки итераций.
Сообщение автоматически объединено:
На несколько секунд моё добавление запоздало. Действительно, имелось в виду распараллеливание цикла повторений алгоритма, а не алгоритма, как такового. А вот в большом проекте распределённых вычислений для исследовательских целей сама постановка задачи изменена для ещё намного более эффективного распараллеливания.