다른 프로세스에 다른 CPU 코어를 어떻게 할당합니까?

다른 프로세스에 다른 CPU 코어를 어떻게 할당합니까?

저는 Ubuntu Server Edition 11.10을 사용하고 있으며 동일한 코어에서 CPU를 많이 사용하는 두 개의 프로그램을 실행하고 있습니다. 이러한 프로세스 중 어느 것도 멀티 코어 처리용으로 프로그래밍되지 않았습니다. 프로세스 A를 Core 1에서 실행하고 프로세스 B를 Core 2에서 실행하도록 지시할 수 있는 방법이 있습니까?

답변1

받아들인 답변은 좋은 조언일 수 있지만 확실히 귀하의 질문에 대한 답변은 아닙니다. 귀하의 질문은 귀하가 답변을 들을 자격이 없다는 것을 나에게 나타내지 않습니다. 실제로 어떤 프로세서가 무엇을 해야 하는지 구체적으로 표시하고 싶은 상황의 좋은 예처럼 들립니다.

요점을 말하자면, 당신이 원하는 것은 CPU 세트입니다. 최신 Linux 커널을 사용하기 때문에 Ubuntu 11.10에서 지원됩니다. 나는 Linux 2.6이 필요하다고 생각합니다.

여기에서 cpuset에 대한 매뉴얼 페이지를 읽을 수 있습니다.http://www.kernel.org/doc/man-pages/online/pages/man7/cpuset.7.html

일반 독서를 위한 또 다른 페이지는 다음과 같습니다.http://www.bullopensource.org/cpuset/

Linux는 CPU 시간 할당 방법을 결정하는 데 "훌륭"할 수 있지만 완벽하지는 않습니다.

답변2

이것이 무례하게 들리지 않기를 바라지만, 이 질문을 한다면 고려조차 하지 말아야 합니다. 이것은 Linux가 스스로 모든 것을 알아내는 데 매우 능숙한 것 중 하나입니다. 이렇게 하면 성능에 매우 부정적인 영향을 미칠 수 있습니다. 프로그램이 더 많은 프로세서를 사용하도록 설계되지 않았더라도 Linux는 필요에 따라 프로세서를 다른 코어로 이동합니다. 프로그램은 눈치 채지 못할 것입니다.

더 높은 우선순위를 부여하기 위해 명령을 nice사용하여 두 가지 낮은 값을 모두 제공할 수 있습니다 .nice

관련 정보