실험적으로 런타임을 비교하기위한 표준이 있습니까?


10

내 상황

개발 한 소프트웨어 모듈에 대한 논문을 작성 중이며 동일한 작업을 위해 런타임을 다른 모듈과 비교하고 싶습니다. 나는 런타임 실험의 단점을 알고 있지만 내 경우에는 그 주위에 방법이 없다고 가정하십시오. (이론적으로 이론적으로 일부 속성을 추론 할 수 있지만 모든 것에 충분하지는 않습니다.)

벤치마킹에 사용하려는 특정 시나리오 에는 문제 의 복잡성 과 세부적인 문제를 결정 하는 랜덤 시드  두 가지 매개 변수가  있습니다. 주로 대한 의존성을 보여주고 싶습니다  . 예비 조사와 이론에 따르면, 이 런타임에 미치는 영향 은 미미하거나 무시할 만합니다. 단일 작업을 완료하는 데 최대 10 분이 걸립니다.n아르 자형아르 자형

실제 질문

그러한 실험을 수행하는 데 일반적으로 허용되거나 게시 된 절차 또는 적어도 일반적인 함정 목록 (이상적으로 게시)을 찾고 있습니다.

내가 지금까지 찾은 것

아무것도. 인터넷 검색은 모든 종류의 관련없는 결과를 보여 주지만 올바른 용어를 사용하지 않을 수 있습니다. 내가 좋은 표준으로 알고 있는 키워드 최소값 (아래 참조)을 포함해도 도움이되지 않았습니다.

내가 어떻게 할까

  • 가능한 한 비활성화 된 GUI와 같이 잠재적으로 방해가되는 소프트웨어를 사용하여 동일한 시스템에서 모든 실험을 실행하십시오.

  • 모든 모듈에 동일한 시나리오를 선택하십시오 (예 : 동일한 및  r) .아르 자형

  • 각 시나리오마다 서로 다른 모듈을 무작위 순서대로 직접 테스트하십시오. 다시 말해서, 다른 모듈에 대한 루프가 가장 안쪽에 있습니다. 이것은 기계 성능의 변동이 느리기 때문에 (예를 들어 온도 변화로 인해) 다른 모듈에서 바이어스를 피해야합니다. 임의 순서는 캐싱 또는 하나의 모듈이 항상 같은 모듈 이후에 테스트되는 것과 같은 효과를 통한 편견을 피해야합니다.

  • 에 대해 벤치 마크와 다른 시드가있는 여러 시나리오에서 최소 런타임을 사용하십시오. 이것은 개별 실행을 매우 나쁘게 만드는 기계 성능의 짧은 시간 변동으로 인해 다른 모듈에 대한 편견을 피해야합니다.


"내 경우에는 그 방법이 없다"고 생각하는 이유를 설명하는 데 도움이 될 수 있습니다. 그러나 물론이 질문은 그 자체로 충분히 초점을 맞추기 때문에 별도의 질문으로 연결될 수 있습니다.
Apiwat Chantawibul

@ 빌리 스카 : 당신이 원하는 것을 정확히 모르겠습니다. 별도의 질문으로 실험적 접근에 대한 추론을 설명해야하는 이유는 무엇입니까? 나는 이것에 대해 의문의 여지가 없다.
Wrzlprmft

반복 실험의 최소 런타임을 취하는 것에 동의하지 않습니다. 위쪽으로 만 윤곽선이 있다고 생각하는 것 같습니다. 아웃 라이너를 아래쪽으로 가질 수도 있습니까? 평균, 중간 값, 최대 값 등 여러 통계를 동시에 검사하는 것이 더 일반적입니다. 그들이 당신이 예상하지 못한 것을 보여줄 수 있다는 것을 누가 알겠습니까. 결국 실험적인 실험입니다.
Apiwat Chantawibul

2
이것은 매우 광범위합니다. 예를 들어 McGeoch의 "실험 알고리즘 안내서"와 같은 주제에 관한 책을 쓸 수 있습니다. "과학을 수행하기위한 표준이 있습니까?"라는 질문을 할 수도 있습니다. 따라서 이것이 합리적인 범위인지 확실하지 않습니다. 더 구체적인 질문이 있습니까?
Raphael

답변:


2

CC McGeoch의 "실험 알고리즘 안내서"는

  • 알고리즘 실험을 설정하는 방법
  • 결과를 해석하고 사용하는 방법
  • 필요한 경우보다 의미있는 결과를 반복하는 방법.

2

각 실행의 경과 시간 외에도 몇 초의 사용자 및 시스템 모드, 총 IP 패킷 및 총 디스크 I / O를보고하십시오 (일부 숫자가 지속적으로 "낮음"이고 경과 시간에 무시할만한 영향을 미치는 경우에만).

https://wiki.freebsd.org/BenchmarkAdvice PHK 등을 포함하여, 좋은 조언을 제공

ministat를 사용하여 숫자가 유의한지 확인하십시오. "통계에 대한 만화 안내서"구매 고려

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