2014-05-14 3 views
0

많은 병렬 프로그램에서 병렬 처리는 상당한 비용을 발생시켜 속도 향상을 부 선형으로 만듭니다. 이 경우, 병렬 버전은 순차 버전보다 에너지 효율적입니다. 그러나 사람들은 시간 성능과 에너지 효율 모두에 신경을 쓸 수 있습니다.이 목적으로 일반적으로 사용되는 특정 측정 항목이 있습니까?성능 및 에너지 효율성에 대한 측정 기준이 있습니까?

특히, 최상의 에너지 및 성능 목표를위한 스레드 수를 결정할 수있는 메트릭.

+1

http://en.wikipedia.org/wiki/Performance_per_watt? – nos

+0

@nos 감사합니다. 그것은 건축 설계를 평가하는 데 더 적합합니다. 하지만 제 경우에는 하드웨어가 수정되었습니다. 튜너 블 매개 변수는 사용할 스레드 수입니다. – JackWM

답변

3

가장 일반적인 측정 항목은 와트 당 성능입니다. "Green500 List"를보십시오. Wikipedia에는 ​​와트 당 성능에 관한 기사도 있습니다. 메트릭은 "성능"이 명확하지 않기 때문에 처음 나타나는 것처럼 명확하지 않습니다. FLOPS는 현재 매우 인기가 있지만 많은 결함이 있습니다. 나는 성능/와트가 소프트웨어의 성능을 평가하는 데 사용될 수 없다는 것에 동의한다. 애플리케이션에 따라 와트/초의 성능을 사용하는 것이 좋습니다.

병렬 처리가 비용을 들여서 에너지 효율을 결정하려는 이유가 무엇인지 알 수 없습니다. 실제로, 단일 코어 머신을 사용하고 순수 컴퓨팅을 수행하지 않고 병렬 처리가 에너지 효율성을 어떻게 저하시킬 수 있는지 이해하지 못하고 스레드 간 많은 쓰레기를 수행하고 있습니다. 나는 이것이 당신 자신의 코드가 아님을 짐작하고있다.

소프트웨어의 전력 효율성 : 가장 중요한 두 가지 요소는 다음과 같습니다

  • 이 계산은 계산 사이의 기간이 진정으로 유휴 상태 인 것을 확인 빠른
  • 을 수행하기

이러한 요인이로 분해 다른보다 구체적인 지침 전체 호스트 :

  • ti 명나라는
  • 동기화가
  • 당신이 지속적으로 스레드
  • 을 많이 만들고 종료하는 경우 스레드 풀을 사용하는 좋은 최적화 컴파일러
  • 를 사용하여 병렬 처리를 (스레드 및 벡터화를) 악용 구축 최소화 중단과 (셔터) 폴링
  • 효율적인 고성능 라이브러리 사용
  • 가상 머신을 피하십시오. 자바와 플래시)
  • 는 계산 시간을 감소해야 병렬 스레드 사이에 계산을 나누면 현대 (틱) OS
  • 등 등 등

를 사용하거나 다른 이유는 합병증을 추가? (예, 재귀와 같은 일부 프로그래밍 구조는 코드가 간단하고 깨끗하지만 성능은 떨어지지 만 예외는 예외입니다.) 계산량을 줄이면 에너지 효율성이 높아집니다. 그렇지 않으면 알고리즘과 코드 연습을보십시오.

앱에 대한 세부 정보를 제공 할 수 있다면 더 구체적인 제안을 할 수 있습니다.