2014-10-16 2 views
1

나는 내 응용 프로그램에서 일부 알고리즘의 성능을 측정하기 위해 boost::timer::cpu_timer을 사용합니다.멀티 코어 컴퓨터에서 boost :: timer :: cpu_timer의 출력을 해석하는 방법은 무엇입니까?

Algo1 기간 : 6.755457s 벽 부스트 cpu_timer 문서의 사용자 + 1.294808s 시스템 = 14.258491s CPU (211.1 %)을

12.963683s : 예제 출력은 다음과 같다

이 같은 모양이 프로그램의 출력 :

즉,이 프로그램은 벽에 시계로 측정 한 일 때와 같이 5.713010 초에 실행되었습니다. 운영 체제는 사용자 CPU 시간이 5.356 초, 사용자 CPU 시간이 5.709637 초, 시스템 CPU 시간이 0 초인 것으로 계산합니다. 이 두 사람은 5.709637이고 벽 시계 시간은 99.3 % 입니다.

내가 얻은 값 (211.1 %)은 알고리즘의 실행에 3 개 이상의 코어가 포함되었다는 것을 의미합니까?

user CPU timesystem CPU time의 의미는 무엇입니까?

답변

2

내가 얻은 값 (211.1 %)은 알고리즘의 실행에 2 개 이상의 코어가 관련되어 있다는 것을 의미합니까?

이것은 프로그램이 벽 시간보다 2 배 많은 CPU 시간을 사용함을 의미합니다. 그러한 일이 일어나기 위해서는 그 시간 동안 적어도 3 개의 코어에서 실행되어야합니다.

사용자 CPU 시간과 시스템 CPU 시간의 의미는 무엇입니까?

사용자 CPU 시간은 CPU가 사용자 코드를 실행하는 시간입니다. 시스템 CPU 시간은 CPU가 시스템 코드를 실행하는 시간입니다. 파일에서 읽는 함수와 같이 시스템 함수를 호출하면 함수가 반환 될 때까지 실행중인 사용자 코드에서 실행중인 시스템 코드로 전환합니다.

관련 문제