Тупой алгоритм
а) Пуск пентиум 3
б) Пуск супер компьютер
скорость работы тупого алгоритма будет одинакова ?
и ответ почему?
мощность процессора значит возможность больше процессов запустить или скорость выполнения тупых алгоритмов тоже туда входит.
И что такое потоки ?
без потоков программа будет выполнятся поочередно функция за функцией ?
а потоки все сразу, почему с потоками быстрее ?
Другие языки программирования и технологии
Скорость тупого алгоритма
Если частота выше, то в один поток твой алгоритм будет выполняться быстрее. А распаралелливать на потоки или ядра можно только если ты это делаешь вручную или применяешь какое-то готовое решение, которое распараллелится под капотом. Какая-нибудь сортировка пузырьком не будет параллелиться.
Нет, конечно. У Pentium-3, который ты приводил в примере, тактовая частота в 3-10 раз меньше, чем у современных ядер микропроцессоров - раз. Кроме того, ядро современногой микропроцессора за такт может делать несколько операций, так называемая суперскалярная архитектура - ядро вовсе не тупо выполняет команды машинного кода, оно их оптимизирует, в нем имеется куча так называемых теневых регистров, несколько арифметико-логических устройств, длинные конвейеры выполнения команд, исполняемые заранее на всякий случай предугаданные процессором команды. которые еще не поступили в процессор... Так что исполнение даже одного потока современным микропроцессором, даже не суперкомпьютером, может быть в несколько десятков раз быстрее, чем Pentuim'ом 3.
Но основное ускорение суперкомпьютером достигается за счет использования одновременной работы десятков тысяч таких микропроцессоров, что требует именно умных алгоритмов, допускающих распараллеливание вычислений на множество потоков на эти десятки тысяч ядер, вот тогда скорость работы возрастает не в десятки раз, а в десятки тысяч раз. То есть использование всей мощности суперкомпьютера требует написания программ специально для него.
Почему с потоками быстрее - например, часто обработку массива данных можно разделить на обработку по отдельности многих частей массива с последующим объединением результатов. Но, увы, это возможно не всегда, и суперкомпьютеры используются именно для таких задач, которых на практике очень много.
Но основное ускорение суперкомпьютером достигается за счет использования одновременной работы десятков тысяч таких микропроцессоров, что требует именно умных алгоритмов, допускающих распараллеливание вычислений на множество потоков на эти десятки тысяч ядер, вот тогда скорость работы возрастает не в десятки раз, а в десятки тысяч раз. То есть использование всей мощности суперкомпьютера требует написания программ специально для него.
Почему с потоками быстрее - например, часто обработку массива данных можно разделить на обработку по отдельности многих частей массива с последующим объединением результатов. Но, увы, это возможно не всегда, и суперкомпьютеры используются именно для таких задач, которых на практике очень много.
Владимир Смирнов
Интересно как процессор выполняет программу с потоками и обычную без потоков.
И еще опять таки тупой алгоритм.
Выполняется долго потому что скорость процессора ушла не так далеко? или у процессора нет скорости ?
А есть просто возможность выполнять больше операций.
И 1 такт процессорное время которое у всех одинаковое ?
Имеется ввиду может ли быть процессор который и тупой алгоритм будет за секунды воспроизводить.
ГГц МГц че значит.
И еще опять таки тупой алгоритм.
Выполняется долго потому что скорость процессора ушла не так далеко? или у процессора нет скорости ?
А есть просто возможность выполнять больше операций.
И 1 такт процессорное время которое у всех одинаковое ?
Имеется ввиду может ли быть процессор который и тупой алгоритм будет за секунды воспроизводить.
ГГц МГц че значит.
Владимир Смирнов
Может мне это надо было написать.
да я про то что может ли тупой алгоритм который зависает выполнятся на супер компьютере за секунды? не изменяя сам алгоритм.
Просто алгоритм или функция разрабатывалась лет 10 назад, или даже 5 пусть будет.
А процессоры ушли далеко вперед и мне интересно почему до сих пор функция выполняется долго!!!
да я про то что может ли тупой алгоритм который зависает выполнятся на супер компьютере за секунды? не изменяя сам алгоритм.
Просто алгоритм или функция разрабатывалась лет 10 назад, или даже 5 пусть будет.
А процессоры ушли далеко вперед и мне интересно почему до сих пор функция выполняется долго!!!
Нурбол Асанов
Скорость срабатывания транзисторов за это время возросла не очень сильно, поэтому функции, не допускающие распараллеливания вычислений, считаются долго, хотя и раз в десять быстрее, чем на Pentium 3. Для вычислений с заданным в алгоритме распараллеливанием на множество потоков - гораздо быстрее. Еще быстрее, чем на суперкомпьютерах, вычисления выполняются на квантовых компьютерах, но для них тоже нужны специальные алгоритмы, и в них пока очень мало битов (точнее, кубитов - квантовая замена биту).
Похожие вопросы
- Есть-ли алгоритмы скорость выполнения которых не зависит от мощности пк?
- Почему программирование на первый взгляд такое сложное? Потому что многие не умеют составлять алгоритмы?
- Нужно ли быть очень сильным математиком и хорошо уметь конструировать алгоритмы на позиции Software Engineer?
- алгоритм... по нахождению общих элементов двух массивов
- Вопрос про алгоритмы
- Подскажите мне пожалуиста что такое алгоритм и зачем компьютеру. нужен алгоритм.И что такое прога Паскаль и зачем она
- Подскажите- я хочу сделать свой сайт. Что для этого нужно? - алгоритм действий для тупых. дёшево и сердито чтоб))
- Как может время работы алгоритма не изменятся при переходе к более скоростному алгоритму ?
- Алгоритм на Pascal
- Почему для оптимальной настройки нейронных сетей используется алгоритм Левинсона-МакКварта, а для синтеза цифровых...
Как выполняется процессором 1 поток, и несколько ?
Обычная программа это 1 поток да ?
Ту же обычную программу можно разделить на потоки да ?
и почему она будет выполнятся быстрее, а без потоков медленнее.