'2014/06'에 해당되는 글 3건

  1. 2014.06.11 CloneCloud: Elastic Execution between Mobile Device and Cloud
  2. 2014.06.10 20140610-20140613
  3. 2014.06.02 20140602 - 20140606

CloneCloud: 
Elastic Execution between Mobile Device and Cloud

Byoung-gon Chun(Intel Labs Berkeley)

Abstract
  • 자동으로 어플리케이션을 transform하여 클라우드로 전송해 오프로딩의 이점을 얻을 수 있게 해주는 시스템을 디자인하고 구현함. 
  • 이 시스템은 flexible partitioner와 어플리케이션 레벨의 VM에서 실행중인 모바일 어플리케이션을 수정없이 클라우드에 execution의 일부분을 오프로딩 시키는 것을 가능하게 하는 execution runtime으로 구성됨.
  • fine granularity에서 (thread 단위)automatic 어플리케이션 파티셔닝을 위하여 Static analysis와 dynamic profiling이란 기법을 사용
  • 시스템이 동작하는 방식은 쓰레드 migration을 통해 job을 off loading시키고, 남아 있는 작업(dependency가 없는)은 모바일 기기에서 수행함. 클라우드의 작업이 끝나면 모바일로 리턴되서 통합됨.
Introduction

Design

Partitioning
Static Analyzer
        • application executable에서 legal partition을 정하는 장치 << constraint가 존재함(distributed execution engine가 필요로 하는 것을 적어둠)
        • 프로그램 성능 향상을 위해서 제한을 둠
          • application method의 boundaries에서만 migration을 허락함(system library method는 허락하지 않음)
          • VM-layer method boundaries에서 migration을 허락함 (native method boundaries에서는 허락하지 않음)
        • Three Constraints
          • PROPERTY 1. Methods that access specific features of a machine must be pinned to the machine.
            • VM에서 제공하는 API에 M이라고 표시해둠.
            • 메인 함수도 여기에 포함
          • PROPERTY 2. Methods share native state must be collocated at the same machine
            • VM layer 아래에서 native state를 만드는 method를 포함하면 같은 곳에 위치시켜야함 이것을 위해서 한 클래스 내의 모든 native method에 대해서 Nat이라고 표시를 함
          • PROPERTY 3. Prevent nested migration
            • 한 메소드에서 migration이 일어나면 그 하위 메소드에서 일어나서는 안됨. 이것을 위해 static control flow graph를 그려서 caller-callee 관계를 파악함

formula of the constraint

Dynamic Profiler
        • 클라우드나 모바일 디바이스에서 input executable을 profile 하는 장치
        • cost모델을 만들기 위하여 사용됨
        • cost metric은 변경 할 수 있으나, 여기선 execution time과 energy consumption at mobile device만 고려함
        • Execution time
          • 프로파일을 만들기 위해서 프로파일러는 randomly chosen data set을 여러번 넣어서 값을 얻음(모바일과 클론(cloud)둘 다에서 실행함) 이렇게 나온 결과의 set S를 output으로 함. 그리고 각각의 execution에 대해서 Tree를 그린다 (T for device, T' for cloud)
          • Tree의 노드의 값이 computation time이고, edge값이 migration time(migration은 suspend-and-capture operation을 시뮬레이션해서 구함)
          • computation cost = Cc(i,l) (l = 0 device , l=1 cloud) i는 node
          • migration cost = Cs(i)
        • Energy consumption
          • CPU activity(processing/idle), display state(on/off), network state(transmitting or receiving / idle)
          • device에서의 power consumption >> Cc(i,0) = P(CPUOn, ScrOn, NetIdle) * T[i]
          • cloud에서 실행 할 때 power consumption >> Cc(i,1) = P(CPUIdle, ScrOn, NetIdle) 왜 T'[i]가 없지?
          • migration power consumption >> Cs(i) = P(CPUon, ScrOn, NetOn)

Optimization Solver
        • static analyzer와 dynamic profiler를 통해서 만들어진 partitions에서 가장 적합한 partition을 찾는 장치 (최소의 cost를 가진 partition)
        • 두개의 트리 T,T'에서 T의 annotation을 T'의 것으로 replace 시켜 최소의 값을 갖는 hybrid profile tree를 만듦.
        • R(m) = 1 << partitioner place migration points
        • R(m) = 0 << non-modification
          • >>migration strategy : all or nothing!

Computing and Migration cost


Distributed Execution
      • two unique feature of Clone cloud
        • thread-granularity migration
        • native-everywhere operation
      • three component for migration
        • a per-process migrator thread
          • assist a process with suspending, packaging, resuming and merging thread state
        • a per-node node manager
          • handles node to node communication of packaged threads, clone image synchronization and provisioning
        • a simple partition database
          • determines what partition to use

  • Suspend and Capture

    • Migrator collect all of a migrant thread's states and pass them to Node manager
  • Resume and Merge
    • state merge - updating the original thread state to match the changes effected at the clone


Implementation
  • static analysis - JChord
  • dynamic profiling 
    • computing and migration cost - modified Dalvik VM
    • energy consumption - Monsoon power monitor
  • capturing and representing execution state - hprof
  • assigning CID/MID - modified Dalvik VM(object creation and destruction)
  • Object mapping table - a separate hash table inside Dalvik VM(Only migration and destroyed)
  • Migration initiation and termination - new system operation ccStart(), ccStop()
Evaluation
  • environment
    • htc g1
      • OS : cupcake
      • comm. : wifi, 3g
    • server
      • Xeon 3.0 Ghz
      • VMWare
    • application
      • Virus scanner, Image searcher, Behavior profiling

execution times of applications at phone and clone alone


Mean execution times of applications

  • application은 core computation function을 offload 시키는 경향이 있음 

    • VS - scanning files for virus signature matching for VS

    • IS - Image processing

    • BP - computing similarities

  • large workloads 일 경우에 성능 향상이 큼

  • migration cost와 computation cost의 관계

Mean phone energy consumption of applications


  • mobile 기기가 기다리는 시간이 길 수록 에너지 saving 증가

  • Energy saving은 execution time과 거의 비례함

  • 예외는 Depth 4의 CC-3G인 경우인데, 실험에서의 energy cost model이 coarse grain이라 나중에 finer-grained model로 더 알아보겠음

Conclusion
  • 자동으로 어플리케이션을 transform하여 클라우드로 전송해 오프로딩의 이점을 얻을 수 있게 해주는 시스템을 디자인하고 구현함. 
  • 좋은 성능 향상을 불러 옴
  • 프로그래머의 개입이 필요없음








저작자 표시 비영리 변경 금지
신고
Posted by youngjinkmi0706

20140610-20140613

2014.06.10 14:21

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

20140602 - 20140606

2014.06.02 13:18

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.



티스토리 툴바