2016-07-06 4 views
0

리눅스에서는 멀티 코어 응용 프로그램을 실행하는 데 두 가지 접근법을 사용합니다. 프로그램이 2 개의 코어를 사용한다고 가정합니다. 첫 번째 방법으로, top 사용하여, I는 두 프로세스를 확인하고 각각의 각각의 코어는 두번째 접근법 멀티 코어/멀티 스레드 응용 프로그램에서 다중 코어 활용

22213 mahmood 20 0 1951m 180m 21m R 101.4 0.3 575:58.46 fluent_mpi.17.0 
22214 mahmood 20 0 660m 167m 22m R 101.2 0.3 365:54.85 fluent_mpi.17.0 

100 % 이용하고, I는 하나 개의 프로세스를 참조하지만, 사용량이 200 %이다.

23286 mahmood 20 0 17.3g 13g 6776 R 203.2 21.5 17200:56 l1002.exe 

이러한 두 가지 접근 방식의 차이점은 무엇입니까? 첫 번째 접근 방식과 비슷한 두 번째 접근 방식을 변경하는 것이 가능합니까?

답변

1

두 번째 방법은 호출 할 때 여러 스레드를 사용하는 것입니다. 스레드는 동일한 프로세스 아래에 맨 위에 표시되므로 프로세스는 CPU 시간의 200 %를 소비하는 것으로 간주됩니다.

맨 위에 "H"를 누르면 프로세스와 달리 스레드가 표시됩니다. 이렇게하면 찾고있는 디스플레이를 볼 수 있습니다.

+0

감사합니다. 문제는 두 번째 접근법에서 토크 (PBS 작업 관리자)가 하나의 코어로 하나의 작업으로 이해한다는 것입니다. 그러나 실제로 두 개의 코어가 점유되었다는 것을 이해해야합니다. 현재는 무료 코어에 대해 잘못 생각할 것입니다. – mahmood

+0

그러면 작업 관리자에 버그가 있습니다. 하나 이상의 코어를 사용하는 매우 일반적인 방법 인 다중 스레드. –

관련 문제