Mobile Cloud Computing

Contact: Seungjun Yang, Yongin Kwon

최근 들어 스마트폰이나 태블릿을 포함한 모바일 기기가 점점 더 널리, 다양한 분야에서 사용됨에 따라 이들 기기에서 실행되는 어플리케이션 또한 더욱 복잡하고 다양해지고 있다. 특히 기존에는 데스크탑이나 랩탑, 전용 기기 등을 통해 소비되던 3D 비디오 게임이나 증강 현실, 실시간 비디오 인코딩과 같은 연산 중심 (computation-intensive) 어플리케이션들을 모바일 기기를 이용하여 사용하는 경우가 늘어나는 추세이다. 안타깝게도, 이러한 어플리케이션들의 복잡도가 나날이 높아지는데 반해 모바일 기기의 연산 능력이나 배터리 용량은 그 태생적 한계로 인해 상대적으로 더디게 향상되고 있다.

연산 오프로딩(Computation offloading) 혹은 실행 오프로딩(Execution offloading)은 동작 중인 어플리케이션의 연산 중 일부를 다른 기기로 옮겨 실행함으로써 앞서 설명한 문제점을 해결할 수 있는 대안으로 떠오르고 있다. 이미지 렌더링이나 실시간 인코딩과 같이 높은 수준의 연산 능력을 요구하는 어플리케이션의 일부를, 상대적으로 성능이 낮은 모바일 기기에서 더 강력한 성능의 서버 혹은 클라우드로 “옮김(오프로딩)”으로써 사용자가 느끼는 체감 성능이나 모바일 기기의 전력 효율을 개선하는 것이다. 기존의 서버-클라이언트 혹은 씬 클라이언트 모델이 사용자 단말과 서버 간의 역할 분담을 고정시킨 것과 달리, 오프로딩 기술은 어플리케이션의 “어느” 부분을 “언제” 서버로 옮길지에 대해 동적으로 결정한다. 이 때, 사용자 단말과 서버의 성능 차이와 같은 정적 정보 외에도 사용자 이동에 따른 네트워크 연결 상태의 변화와 같은 동적인 정보까지 고려함으로써 사용자의 사용 패턴에 따라 급격하게 변할 수 있는 모바일 기기의 동작 환경에서도 최적의 역할 분담을 찾아내는 것이 가능하다. 이러한 과정을 통해 모바일 단말의 부족한 성능을 보완하고, 전력 소모 효율을 높여 보다 더 오랜 사용 시간을 보장함으로써 궁극적으로 사용자의 체감 성능을 높이는 것이 오프로딩 기술의 의의이다.

본 연구실에서 진행하는 오프로딩 관련 연구는 다양한 최적화 방법을 통해 오프로딩 기술을 보다 더 효율적으로 만드는 것을 목표로 한다. 이미 진행되었거나 현재 진행 중인 연구 주제는 크게 다음과 같다.

  • 컴파일러 분석 기법을 이용한 오프로딩 최적화 연구
  • 모바일 기기에서 서버로 오프로딩이 이루어질 때, 힙 오브젝트나 런타임 스택과 같은 어플리케이션의 상태 정보 또한 서버로 전송된다. 이러한 상태 정보를 서버로 전송하는 데 드는 시간은 오프로딩을 위한 오버헤드의 대부분을 차지한다. 본 연구는 컴파일러 분석 기법을 이용하여, 상태 정보 중에서 실제로 사용될 부분만 구별하여 서버로 전송함으로써 오버헤드를 줄이고 오프로딩의 성능을 향상시키는 것을 목적으로 한다.

  • 보다 더 효율적인 오프로딩 결정을 위한 성능 예측 기법 연구
  • 모바일 기기에서 실행중인 어플리케이션의 특정 부분을 서버로 옮길지에 대해 동적으로 결정을 하기 위한 필수적인 요소 중 하나가 바로 “성능 예측” 이다. 특정 부분을 서버와 모바일 기기에서 수행했을 시 필요한 연산시간 및 전력소모 등을 예측하여 어느 측에서 수행할 때 더 유리할 지에 따라 결정을 내리게 된다. 하지만, 프로그램의 성능은 입력값이나 프로그램 상태에 따라 달라지고, 이를 동적으로 정확하게 측정하는 것은 많은 시간과 전력이 든다. 본 연구실에서는 프로그램 슬라이싱과 머신러닝 기법을 사용하여 프로그램 수행중에 자동적으로 프로그램 성능을 예측하여, 더 효율적인 오프로딩 결정을 내릴 수 있는 기술을 연구한다.

  • 쌍방향 3D 렌더링 어플리케이션에 특화된 오프로딩 기법 연구
  • 3D 게임과 같은 쌍방향 3D 렌더링 어플리케이션은 유저의 입력이 매우 빈번하게 주어지며, 이에 대한 결과물 또한 이미지의 스트림 형태로 반환되어 그 크기가 매우 크다는 점에서 일반적인 어플리케이션과 차이를 보인다. 본 연구는 이러한 쌍방향 3D 렌더링 어플리케이션에 특화된 오프로딩 기법을 연구하여, 일반적인 오프로딩 기법에 비해 보다 더 효과적인 오프로딩을 수행하는 것을 목표로 한다.