Может ли ядро, которое поддерживает многоядерные процессоры, уменьшить нагрузку на процессор, уменьшить перегрев процессора

Я нашел только одно ядро, идентифицированное ядром из /proc/cpuinfo. Поэтому я устанавливаю ядро 686 pae, чтобы идентифицировать все ядра и получить многоядерную функциональность.

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

но интересно, способно ли ядро 686 pae разделить все процессы и 1. assign a set of processes to different cores 2. share a process between different cores что может уменьшить работа каждого ядра. Это будет на самом деле уменьшает процессы в очереди и завершить процессы быстрее. Может ли ядро, поддерживающее многопроцессорность, добиться этого и снизить нагрузку на процессор ?

любые другие методы, которые я могу следовать для эффективного обмена процессами между ядрами ?

22
задан perlboat
18.05.2023 7:14 Количество просмотров материала 3567
Распечатать страницу

1 ответ

можно уже ограничить ядер процесс может быть выполнен на, установив аффинити процессов. В Linux это можно сделать С помощью taskset ограничить ядер процесс может быть выполнен на. По умолчанию, Linux использует упреждающий планировщик задач, что почти идентично тому, что вы описываете в (2). Почти все основные операционные системы используют этот тип планировщика задач, что приведет к запуску процесса на несколько ядер по умолчанию.

На самом деле гарантия ваш процесс работает X количество времени на ядра Y, как вы предположили в (1) потребует использования операционной системы реального времени; существует также модуль ядра реального времени для Linux (например,RTLinux).


TL, DR: в ответ на вопрос как я могу эффективно разделить процесс между ядрами? все основные операционные системы уже делают это из-за использования планировщика задач. Задача операционной системы-контролировать, какой процесс выполняется в какое время и где. В то время как вы можете "прикрепить" процесс к конкретному ядру (или набору ядер) и запретить его выполнение на других ядрах (через taskset), операционная система будет по-прежнему планировать другие процессы для запуска на этом ядре, когда процесс вытесняется.

Если вам когда-нибудь понадобится гарантия выполнение программа как минимум X количество времени на ядра Y, вы должны рассмотреть либо в режиме реального времени ядра, или "настройка" планировщика задач, который вы уже используете использовать различные политики упреждение (или даже поменять весь планировщик задач на другой!). Обратите внимание, что только операционная система реального времени будет гарантия исполнения.

1
отвечен Breakthrough 2023-05-19 15:02

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх