Skip to main content
QUICK REVIEW

[논문 리뷰] Iterative compilation on mobile devices

Paschalis Mpeis, Pavlos Petoumenos|arXiv (Cornell University)|2015. 11. 09.
Green IT and Sustainability참고 문헌 18인용 수 3
한 줄 요약

이 논문은 실사용자 워크로드를 사용하여 컴파일러 최적화를 오프라인으로 평가할 수 있도록 하는 경량의 기능 수준 캡처 및 재생 메커니즘을 사용하는 이터레이티브 컴파일 프레임워크를 제안한다. 사용자가 자주 사용하는 함수를 재생하기 위해 필요한 최소한의 메모리 상태만 캡처함으로써, 최고 수준의 컴파일러 최적화 대비 최대 57%의 성능 향상을 달성했으며, 평균 사용자 경험 저하율은 단지 0.8%에 그친다.

ABSTRACT

The abundance of poorly optimized mobile applications coupled with their increasing centrality in our digital lives make a framework for mobile app optimization an imperative. While tuning strategies for desktop and server applications have a long history, it is difficult to adapt them for use on mobile phones. Reference inputs which trigger behavior similar to a mobile application's typical are hard to construct. For many classes of applications the very concept of typical behavior is nonexistent, each user interacting with the application in very different ways. In contexts like this, optimization strategies need to evaluate their effectiveness against real user input, but doing so online runs the risk of user dissatisfaction when suboptimal optimizations are evaluated. In this paper we present an iterative compiler which employs a novel capture and replay technique in order to collect real user input and use it later to evaluate different transformations offline. The proposed mechanism identifies and stores only the set of memory pages needed to replay the most heavily used functions of the application. At idle periods, this minimal state is combined with different binaries of the application, each one build with different optimizations enabled. Replaying the targeted functions allows us to evaluate the effectiveness of each set of optimizations for the actual way the user interacts with the application. For the BEEBS benchmark suite, our approach was able to improve performance by up to 57%, while keeping the slowdown experienced by the user on average at 0.8%. By focusing only on heavily used functions, we are able to conserve storage space by between two and three orders of magnitude compared to typical capture and replay implementations.

연구 동기 및 목표

  • 컴파일이 잘 되지 않으며 사용 패턴이 매우 다양한 모바일 애플리케이션을 최적화하는 데 도전한다.
  • 최적화 시도 중 사용자 경험을 떨어뜨릴 수 있는 위험성이 있는 온라인 이터레이티브 컴파일의 한계를 극복한다.
  • 실제 사용 중 수집한 실제 사용자 워크로드를 사용하여 모바일 앱의 개인화된 오프라인 최적화를 가능하게 한다.
  • 런타임 및 스토리지 오버헤드를 최소화하면서도 컴파일러 변환을 정확하게 평가할 수 있는 능력을 유지한다.
  • 사용자 경험을 훼손하지 않은 채 다양한 모바일 아키텍처와 노이즈가 많은 런타임 환경에 적응할 수 있는 시스템을 개발한다.

제안 방법

  • 사용자 상호작용 중에 가장 자주 실행되는 함수를 재생하기 위해 필요한 최소한의 메모리 페이지만 캡처한다.
  • 기존의 리눅스 커널 메커니즘(예: cgroup 메모리 제어)을 활용하여 필요한 런타임 상태를 효율적으로 격리하고 복사한다.
  • 캡처된 기능 상태를 지속 가능한 압축된 형식으로 저장하여 전체 시스템 캡처 대비 스토리지 요구량을 2~3개 주기 감소시킨다.
  • 동일한 조건에서 변환된 바이너리를 실행하는 커스터마이징된 재생 엔진을 사용하여 캡처된 기능 상태를 재생한다.
  • 이더레이티브 컴파일러와 통합하여, 장치가 비어 있고 충전 중인 동안에 오프라인에서 여러 최적화 세트를 평가한다.
  • 환경적 변동성과 동시 실행 프로세스에서 유래한 노이즈를 걸러내기 위해 재생 결과에 통계 분석을 적용한다.

실험 결과

연구 질문

  • RQ1사용자 경험을 해칠 우려 없이 이터레이티브 컴파일을 모바일 애플리케이션에 효과적으로 적용할 수 있는가?
  • RQ2제한된 자원을 가진 모바일 장치에서 실사용자 워크로드를 효율적으로 캡처하고 재생할 수 있는가?
  • RQ3전체 시스템 캡처에 비해 기능 수준의 상태 캡처가 얼마나 스토리지 오버헤드를 줄일 수 있는가?
  • RQ4재생을 통한 오프라인 평가가 사용자 영향을 최소화하면서도 온라인 최적화 수준의 성능 향상을 달성할 수 있는가?
  • RQ5최적화 평가 과정에서 모바일 환경의 런타임 노이즈와 변동성을 어떻게 처리하는가?

주요 결과

  • 제안된 캡처 메커니즘은 사용자 장치에서 평균적으로 0.8%의 성능 오버헤드만 유발하여 일상 사용 중에 감지되지 않는다.
  • 안드로이드 컴파일러의 최고 최적화 수준 대비 핫 함수에서 최대 57%의 성능 향상을 달성했다.
  • 자주 실행되는 함수를 재생하기 위해 필요한 최소한의 상태만 캡처함으로써 스토리지 요구량이 2~3개 주기 감소했다.
  • 재생 엔진은 각 재생된 함수 호출당 추가로 2.11μs의 지연만 유발하여 평가 결과가 실제 성능과 유사함을 보장한다.
  • 오프라인 평가 과정을 통해 단일 전체 응용 프로그램 실행 당 여러 최적화 시도를 수행할 수 있어 최적의 변환 세트를 찾는 데 시간을 크게 단축시켰다.
  • 재생 과정에서 관측된 성능 향상은 생산 환경 실행으로도 효과적으로 이행되었으며, 이는 실제 배포에 적합한 접근법임을 확인했다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.