2013-02-01 2 views
0

둘 이상의 코어에서 프로그램을 실행하려고합니다. 필자는 데스크탑에 12 코어를 가지고 있으며 컴퓨터가 1,2,3,4, ..., 11,12를 하나씩 사용하기를 원하고 프로그램이 다른 수의 코어에서 어떻게 수행되는지 테스트하려고합니다. 나는 실행 파일처럼 -t4 나 -t4를 사용하려고 시도했다.여러 코어에서 프로세스를 실행하기위한 명령 줄 인수는 무엇입니까? (Linux)

./a.out -t4 

그러나 정확히 4 사용 여부를 확인할 수 없습니다. 누구든지 나를 이해하거나 올바른 방향으로 나를 가리 키도록 도와 줄 수 있습니까?

+0

코어 선호도를 설정 하시겠습니까? http://stackoverflow.com/questions/8486314/setting-processor-affinity-with-c-that-will-run-on-linux 및 http://www.cyberciti.biz/tips/setting-processor-affinity- 특정 작업 또는 process.html – thang

+0

당신은 링크를위한 thang 주셔서 감사합니다 .. 내가 스레드를 사용하고 그 스레드가 1-12에서 코어를 사용하려면 참조하십시오. 나는 우리가 리눅스에서 명령 줄을 사용하여 그렇게 할 수 있다고 들었습니다 - 4 코어에 대한 t4 .. – pokche

+0

당신은 정말로 당신이 실행중인 코어를 제어 할 수는 없지만 스레드를 만들 때 프로그램 내에서 특정 코어에 대한 선호도를 설정할 수 있습니다 (저는 api가 sched_setaffinity라고 생각합니다) . 나는 이것이 명령 행에서가 아니라 당신의 코드에서해야 할 일이라고 생각한다. 코드는 스레드/코어 수를 제어하기 위해 명령 입력을받을 수 있습니다. – thang

답변

3

컴퓨터가 여러 코어를 사용하려면 프로그램이 멀티 스레드이어야합니다.

이것은 실제 프로그램 코드가 스레드를 인식하고 효율적으로 사용해야 함을 의미합니다.

주어진 스레드 수에서 실행되도록 프로그램을 요청할 수는 없습니다.

스레드를 생성하고 스레드를 분산 시키려면 pthread와 같은 스레드 라이브러리를 사용해야합니다.

+0

* 주어진 스레드 수에서 프로그램을 실행하도록 요청할 수는 없습니다. * 아, 아직 어쨌든! – thang

+0

현재 멀티 스레드 프로그램을 사용하고 있습니다. 많은 수의 스레드를 사용합니다. 그래서 코어 수를 알아 내기 위해 모든 코어를 테스트하고 싶습니다. – pokche

+0

스레드 풀을 사용합니까? 그런 다음 주어진 매개 변수를 통해 스레드 풀의 스레드 수를 구성 할 수 있습니다. – Intrepidd

0

libnuma 라이브러리를 확인해야합니다.

다른 스레드를 프로그래밍 방식으로 실행할 코어를 지정하거나 명령 줄 옵션을 사용하여 실행할 코어를 설정할 수 있습니다. 다음은 자세한 설명서 링크입니다. http://www.halobates.de/numaapi3.pdf

관련 문제