taskset
명령어를 사용하거나, 파이썬 내부에서 os
모듈을 이용하여 특정 코어에 프로세스를 할당 taskset
명령어 사용taskset
은 프로세스가 특정 CPU 코어에만 할당되도록 설정하는 명령어입니다. 이 명령어를 사용하려면, 터미널에서 파이썬 스크립트를 실행하기 전에 다음과 같이 입력합니다:
taskset -c [코어번호] python3 your_script.py
여기서 [코어번호]
는 할당하려는 CPU 코어의 번호입니다. 여러 코어를 사용하려면 쉼표로 구분하여 입력합니다 (예: 0,1
).
os.sched_setaffinity
함수 사용파이썬 스크립트 내부에서 특정 코어를 할당하려면, os
모듈의 sched_setaffinity
함수를 사용할 수 있습니다. 다음은 이를 사용하는 예제 코드입니다:
import os
def set_affinity(pid, cores):
os.sched_setaffinity(pid, cores)
# 현재 프로세스에 대한 CPU Affinity 설정
set_affinity(0, {0, 1}) # 현재 프로세스를 CPU 0과 1에만 할당
이 코드는 현재 실행 중인 프로세스를 CPU 0과 1에만 할당합니다. pid
에 0
을 전달하면 현재 프로세스를 의미합니다. {0, 1}
은 프로세스를 할당하고자 하는 CPU 코어의 집합입니다.
Windows에서는 taskset
과 유사한 기본 제공 도구가 없으므로, 프로세스의 CPU 친화도(affinity)를 설정하는 외부 라이브러리나 도구를 사용해야 할 수 있습니다. 예를 들어, psutil
라이브러리를 사용하여 유사한 기능을 구현할 수 있습니다:
import psutil
import os
p = psutil.Process(os.getpid()) # 현재 프로세스 객체 얻기
p.cpu_affinity([0, 1]) # CPU 0과 1에만 프로세스 실행 제한
이 코드는 psutil
라이브러리를 사용하여 현재 프로세스를 CPU 0과 1에만 할당합니다. psutil
은 설치가 필요한 외부 라이브러리이므로, 사용하기 전에 pip install psutil
을 통해 설치해야 합니다.
각 방법은 운영체제와 사용 환경에 따라 선택하여 사용할 수 있습니다. CPU 코어를 제한하는 것은 멀티쓰레딩이나 멀티프로세싱 작업을 할 때, 자원 사용을 최적화하고 성능을 향상시키는 데 유용할 수 있습니다.