Как Debian использует много ядер процессора?

Я сравнил программы контрольной суммы Гну/Linux (не включая CRC) только пара несколько месяцев назад и нашел, что md5sum был самым быстрым. Я не думал бы, что любая из его уязвимостей будет применяться в случае, который Вы описываете.

3
27.09.2013, 01:28
2 ответа

Вы не должны делать ничего специального: это - задание ядра для решения, какой поток продолжается, который ЦП, и это делает намного лучшее задание, чем человек мог.

Однако нет никакого смысла из наличия 24 центральных процессоров, если у Вас нет по крайней мере 24 параллельных потоков для выполнения. Программы волшебно не пойдут быстрее, если больше центральных процессоров будет доступно: только программы, которые кодируются, чтобы иметь несколько параллельных потоков, извлекут выгоду, и много программ не извлекут выгоду, не потому что они записаны нижним способом, но потому что то, что они делают, по сути не parallelizable.

Программа с параллельными потоками вычисления N извлечет выгоду из до центральных процессоров N (хотя она не могла бы пойти времена N быстрее, потому что синхронизация между потоками занимает время). Выполнение M различные программы, которые не взаимодействуют очень, если вообще так же использует в своих интересах центральные процессоры M (или больше, чем это, если программы являются многопоточными).

Существует несколько случаев, где ручное вмешательство необходимо для использования в своих интересах параллелизма. Если Вы запускаете несколько задач обработки данных, заботитесь, что они порождены параллельно (с немного по одной задаче на ЦП), а не один за другим. Например, при создании программного обеспечения, передайте -j опция к make. Посмотрите несколько других примеров и объяснений:

При выполнении веб-сервера все веб-серверы, разработанные для больших нагрузок, способны использовать параллелизм. Apache используется в качестве тестового сценария при оценке выполнения оптимизации в ядре Linux. Остерегайтесь однако, что параллелизм в ЦП только помогает, если нет никакого другого узкого места, такого как конкуренция из-за пропускной способности ввода - вывода или доступа к базе данных.

5
27.01.2020, 21:13

Использование многих ядер для ускорения производительности зависит в большой степени от приложения. Некоторые приложения должны быть запущены пошаговые: нет только никакого способа разделить вычисление параллельно среди многих ядер, потому что для вычислений определенного шага нужно знать результаты предыдущих шагов. Если это так, затем использование 24 ядер так же хорошо как использование только одного.

В других случаях, где приложение должно сделать много вещей, которые не зависят друг от друга, имея много ядер, может значительно ускорить вещи. Как подходящий пример при компиляции проекта со многими исходными файлами можно скомпилировать каждый исходный файл независимо прежде, чем связать различные файлы. В таком случае у Вас может быть компиляция компилятора каждый файл на отдельном ядре. Приложения, которые могут использовать несколько ядер процессора обычно, имеют переключатель для Вас для запроса этого. Например, при компиляции проекта с помощью GNU make, можно передать его -j переключатель сопровождается числом. Это число указывает количество заданий make должен запуститься одновременно (чтение: на различных ядрах).

2
27.01.2020, 21:13

Теги

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