Другие языки программирования и технологии

Скорость тупого алгоритма

Тупой алгоритм
а) Пуск пентиум 3
б) Пуск супер компьютер

скорость работы тупого алгоритма будет одинакова ?
и ответ почему?

мощность процессора значит возможность больше процессов запустить или скорость выполнения тупых алгоритмов тоже туда входит.

И что такое потоки ?
без потоков программа будет выполнятся поочередно функция за функцией ?
а потоки все сразу, почему с потоками быстрее ?
Если частота выше, то в один поток твой алгоритм будет выполняться быстрее. А распаралелливать на потоки или ядра можно только если ты это делаешь вручную или применяешь какое-то готовое решение, которое распараллелится под капотом. Какая-нибудь сортировка пузырьком не будет параллелиться.
Вячеслав Голубцов
Вячеслав Голубцов
13 794
Лучший ответ
Владимир Смирнов а почему если распараллеливать на потоки будет работать быстрее почему?

Как выполняется процессором 1 поток, и несколько ?
Обычная программа это 1 поток да ?
Ту же обычную программу можно разделить на потоки да ?
и почему она будет выполнятся быстрее, а без потоков медленнее.
Нет, конечно. У Pentium-3, который ты приводил в примере, тактовая частота в 3-10 раз меньше, чем у современных ядер микропроцессоров - раз. Кроме того, ядро современногой микропроцессора за такт может делать несколько операций, так называемая суперскалярная архитектура - ядро вовсе не тупо выполняет команды машинного кода, оно их оптимизирует, в нем имеется куча так называемых теневых регистров, несколько арифметико-логических устройств, длинные конвейеры выполнения команд, исполняемые заранее на всякий случай предугаданные процессором команды. которые еще не поступили в процессор... Так что исполнение даже одного потока современным микропроцессором, даже не суперкомпьютером, может быть в несколько десятков раз быстрее, чем Pentuim'ом 3.
Но основное ускорение суперкомпьютером достигается за счет использования одновременной работы десятков тысяч таких микропроцессоров, что требует именно умных алгоритмов, допускающих распараллеливание вычислений на множество потоков на эти десятки тысяч ядер, вот тогда скорость работы возрастает не в десятки раз, а в десятки тысяч раз. То есть использование всей мощности суперкомпьютера требует написания программ специально для него.
Почему с потоками быстрее - например, часто обработку массива данных можно разделить на обработку по отдельности многих частей массива с последующим объединением результатов. Но, увы, это возможно не всегда, и суперкомпьютеры используются именно для таких задач, которых на практике очень много.
Нурбол Асанов
Нурбол Асанов
83 028
Владимир Смирнов Интересно как процессор выполняет программу с потоками и обычную без потоков.

И еще опять таки тупой алгоритм.

Выполняется долго потому что скорость процессора ушла не так далеко? или у процессора нет скорости ?
А есть просто возможность выполнять больше операций.
И 1 такт процессорное время которое у всех одинаковое ?

Имеется ввиду может ли быть процессор который и тупой алгоритм будет за секунды воспроизводить.
ГГц МГц че значит.
Владимир Смирнов Может мне это надо было написать.

да я про то что может ли тупой алгоритм который зависает выполнятся на супер компьютере за секунды? не изменяя сам алгоритм.

Просто алгоритм или функция разрабатывалась лет 10 назад, или даже 5 пусть будет.
А процессоры ушли далеко вперед и мне интересно почему до сих пор функция выполняется долго!!!
Нурбол Асанов Скорость срабатывания транзисторов за это время возросла не очень сильно, поэтому функции, не допускающие распараллеливания вычислений, считаются долго, хотя и раз в десять быстрее, чем на Pentium 3. Для вычислений с заданным в алгоритме распараллеливанием на множество потоков - гораздо быстрее. Еще быстрее, чем на суперкомпьютерах, вычисления выполняются на квантовых компьютерах, но для них тоже нужны специальные алгоритмы, и в них пока очень мало битов (точнее, кубитов - квантовая замена биту).

Похожие вопросы