반복 방법 비교 : 반복 횟수와 CPU 시간


14

임의의 정방 행렬을 반전시키는 두 가지 반복 방법을 비교하고 있습니다. 행렬은 임의적이기 때문에 모든 테스트 사례는 다른 반복 횟수와 다른 경과 시간을 모두 사용합니다. 내 질문은 평균 CPU 시간 외에도 두 방법 모두 방법을 비교하는 데 유용한 정보로 얻은 반복 평균 값입니다.


4
희망을 더 명확하게하기 위해 귀하의 질문을 다시 말씀드립니다. 어떤 식 으로든 당신의 의미를 바꾸지 않았는지 확인하십시오.
Godric Seer 2016 년

3
@GodricSeer 귀하의 수정으로 내 질문이 개선되었습니다. 감사합니다
srijan

답변:


12

일반적으로 두 성능 비교 방법이 모두 적합합니다.

  • CPU 시간을 비교 하는 것은 가장 흥미로운 지표입니다. 하루가 끝나면 어떤 방법이 더 빠른지에 관심이 있기 때문입니다. 그러나 종료 기준이 비교 가능한지 확인하십시오 (예 : 두 방법 모두 동일한 정확도로 근사값을 산출 함). 단점은 테스트를 수행 한 머신에서 어떤 메소드 (및 더 중요한 구현 )가 더 빠르다 는지를 알려줍니다 . 다른 아키텍처 또는 소프트웨어를 가진 다른 머신이 동일한 승자를 선택한다고 보장 할 수 없습니다.

  • 반면에 반복 횟수를 비교하는 것은 기계 독립적이지만 두 방법이 매우 다른 반복을 갖는 경우 잠재적으로 오도 할 수 있습니다. 매우 낮은 정확도 만 필요한 경우).

예, 두 숫자를 모두주는 것이 합리적입니다. 세 번째 옵션도 있습니다.

  • 기본 연산 수 비교 . 두 반복이 모두 같은 종류의 적당히 비싼 작업으로 구성되어 있지만 다른 수 (각 반복에서 같은 수는 아닐 수도 있음)가 필요한 경우 이러한 작업 의 수 를 계산하는 것이 좋습니다 . 귀하의 경우 가능성이 높은 후보는 행렬 벡터 또는 행렬 행렬 곱셈입니다.

[1] 여러 번의 실행에 대한 통계를 명확히 제시합니다. 평균을 표시하는 경우 표준 편차도 포함하는 것을 잊지 마십시오.


5
그냥 수단을 사용하지 마십시오! 랜덤 입력으로 테스트 포인트가 충분하면 분포를 플로팅합니다.
Bill Barth

1
@BillBarth-좋은 점이지만, 항상 실현 가능한 것은 아닙니다. 그러나 평균과 함께 표준 편차를 제공하는 것이 항상 가능해야합니다. 실제로, 성과보고를 위해 제시 할 통계는 훌륭한 후속 질문처럼 들립니다.
Christian Clason

@BillBarth 당신은 좋은 지적을했다. 그러나 여러 테스트 매트릭스를 순서대로 사용하고 있습니다. 이러한 경우 분포를 플로팅하는 것이 불가능하므로 다른 모든 테스트 매트릭스에 대한 분포를 플롯해야합니다. 그래서 나는 그것들을 표로 만들고 싶었습니다. 귀하의 의견에 감사드립니다.
srijan 2016 년

1
@ srijan : 데이터를 얻을 수 있으므로 어디서나 히스토그램을 그려야합니다. 당신은 그것들을 모두 출판 할 필요는 없지만, 분포의 그래프가 당신에게 바다 이상의 수 또는 평균을 말해 줄 것이라고 약속합니다.
빌 바스

반복 당 실행 시간을 포함시킵니다. 각 행렬이 다르기 때문에 실행 시간이 다른 반복 횟수가 다를 수 있습니다. @Cristian의 말과 함께 반복 당 실행 시간이 유용합니다.
jbcolmenares

4

반복 횟수가 잘못된 경우 "속도"를 제안하기 때문에 오해의 소지가있는 메트릭이라고 생각합니다. 이 차이점을 보여주는 몇 가지 다른 전제 조건을 비교하는 간단한 예는 다음을 참조하십시오. http://www.dealii.org/developer/doxygen/deal.II/step_6.html#Possibilitiesforextensions


답변 해주셔서 감사합니다. 이 줄을 이해하지 못했습니다. '반복되지 않을 때 속도'를 제안하기 때문에 오해의 소지가있는 메트릭의 반복 횟수 '를 이해할 수 없습니다. 당신이 제안한 예는 이해하기가 다소 어렵습니다.
srijan 2016 년

내가 말하는 것은 종종 "반복 횟수"가 "CPU time used"와 동일하다는 것을 나타내므로 반복 횟수가 적은 방법도 더 빠릅니다. 그러나 내가 연결 한 수치로 알 수 있듯이 그것은 사실이 아닙니다.
Wolfgang Bangerth 2016 년

이제, 나는 당신의 요점을 완전히 이해했습니다. 사각형 행렬의 역을 근사화하기 위해 newtons 방법으로 관찰 한 것과 같습니다. 방법의 순서가 증가하면 처음에는 CPU 시간과 반복 횟수가 감소하지만 순서가 증가하면 CPU 시간 시작이 증가하지만 반복 횟수는 감소합니다. 대답 해 주셔서 감사합니다.
srijan 2016 년

2

다른 답변에서 명확하지 않은 경우 반복 횟수가 큰 O 인수입니다.

절대 속도에는 좋지 않습니다. 왜냐하면 평균 반복 시간에 따라 달라지기 때문에 방법마다 크게 다를 수 있습니다.

예를 들어, 배열 인덱스 계산 비용을 무시하는 경향이 있으며 이는 CPU 시간의 큰 부분을 차지할 수 있습니다.

추가 : 또한 다른 곳에서 지적했듯이 메소드를 호출 할 때마다 일반적으로 설정 비용이 있습니다. 매트릭스가 일반적으로 크지 않은 경우, 설정 비용 자체가 CPU 시간의 큰 부분을 차지할 수 있습니다 (제거하면 속도에 큰 차이가 생길 수 있습니다).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.