11th Kandroid Conference
The Gate of the AOSP #4 :
Gerrit, Memory and Performance
행사일정
일시 : 2013년 3월 29일(금) 오전 9시 ~ 오후 6시
장소 : 한국과학기술회관 국제회의실 (강남역 12번출구)
좌석 : 총 300석 [사전등록 현황 보기]
대상 : 안드로이드 플랫폼/애플리케이션에 관심있는 분
주최 : www.kandroid.org
프로그램
사회 : NHN 김영임 부장
입장 : 08:30 ~ 09:00

시간 발표 내용 발표자
09:00 ~ 09:50
Gerrit - 코드 리뷰 시스템 도입의 필요성 및 운영

세션목표 : 먼저 코드 리뷰 시스템을 도입해야 한다는 것을 알면서도 도입하지 못하는 현실에 대해서 살펴보도록 하겠습니다. 그리고 구글의 AOSP 생태계 참여하기 위한 첫번째 관문인 구글의 소스리뷰 시스템 - Gerrit에 대해서 살펴보고, 어떤식으로 운영되고 있는지 알아보겠습니다.

잡설 몇가지

- 3가지 나쁜 거짓말
- 누가 안드로이드를 만드나?
- AOSP에 참여하는 구글러에 대한 몇가지 통계
- Python의 창시자가 구글에 입사해서 맨 처음 한 일은?

코드 리뷰

- 코드 리뷰의 목적
- 코드 리뷰 시스템이란
- 많은 사람들이 코드 리뷰 시스템을 도입하지 못하는 이유
- 코드 리뷰 시스템 도입시 얻을 수 있는 효과
- 코드 리뷰에 대한 오해

Gerrit
- Gerrit의 역사
- Gerrit Workflow
- Gerrit 실제 사용 예
- Gerrit 사용자의 역할
- AOSP에서의 실제 예
- Gerrit 외 여러가지 Review 소프트웨어의 간략한 소개
차영호 (Young-Ho Cha)
- WindRiver
10:00 ~ 11:50
SMP & Group scheduling

세션목표 : 리눅스 커널에서 사용되는 프로세스 스케줄러에 대해 살펴본다. 다양한 프로세스들을 어떠한 기준으로 선발하여 실행하는지 알아보고 최근의 멀티코어 환경에서 스케줄러의 효율성을 높이기 위해 어떠한 기법들이 사용되고 있는지 살펴봄으로써 시스템에 대한 이해를 높일 수 있다.

Process scheduling
- scheduler basics
- O(1) scheduler
- CFS

SMP scheduling
- cpu load tracking
- scheduler domain
- load balancing

Group scheduling
- control groups
- task group
김남형(Namhyung Kim)
- LG 전자
12:00 ~ 13:30 점심 시간
13:30 ~ 14:20
Task Parallelism with KTC & Bionic/OpenMP for Multicore-based Android

세션목표 : 불과 몇년전까지만해도 멀티코어는 고성능 서버에서의 주요 관심사였습니다. 그러나, 최근에 스마트폰의 등장과 함께 애플리케이션의 빠른 실행속도를 위하여 모바일 폰에도 멀티코어 CPU가 주요 이슈가 되었습니다. 따라서, 태스크들의 병렬화를 위해서 OpenMP 규약에 준하는 코드를 안드로이드 플랫폼에서 동작 시키는 것은 중요합니다. 이미 개발되어 있는 기존의 대용량 애플리케이션 소스 코드를 단 시일에 멀티코어를 인지하는 소프트웨어로 재생산할수 있기 때문입니다. 본 세션에서는 이를 위해 필요한 크로스 툴체인 과 OpenMP 기술들에 대해서 자세히 발표합니다.

특히, 기존에 개발된 대형 프로젝트의 소스코드를 멀티코어 환경을 위해 다시 개발하지 않고,"OpenMP on Bionic"를 이용하여 빠른 시간 내에 멀티코어환경에 최적화된 자바 애플리케이션을 재생산할 수 있는 방법에 대해 공개합니다. 상업화를 위해서는 안드로이드 자바 애플리케이션에 내장하여 동작시킬 수 있는 컴포넌트 방식이 필요합니다. 이를 통해서 우리는 안드로이드 플랫폼의 어떠한 추가적인 수정도 필요없게 됩니다. 결과적으로 기존 안드로이드 플랫폼의 수정 없이 어떻게 "OpenMP on Bionic"을 안드로이드 자바 애플리케이션에 적용하여 구글스토어에 업로드 동작시킬수 있는지에 대해 실제적인 Know-How들을 제시합니다.

Kandroid Toolchain Overview

- Why we need Toolchain knowledge?
- The Goal of Kandroid Toolchain
- Toolchain Features
- C library difference between Glibc and Bionic

Design for running OpenMP on Bionic

- Evolution of parallel programming
- The existing approaches for task parallelism
- OpenMP APIs VS. Pthread APIs
- Architecture design for task parallelism

Implementation of OpenMP on Bionic

- The Evaluation (Existing system VS. OpenMP method)
- "Hello! Multicore world." example using NDK

The current status for OpenMP/Bionic

- Detecting CPU count on CPU-DVFS devices.
- OpenMP under AOSP
- Contributing OpenMP/Bionic into AOSP
- Limitation of OpenMP in the real environment
임근식 (Geunsik Lim)
- 닉네임(인베인)
- 삼성전자
14:30 ~ 15:20
Jank Busting

세션목표 : 본 세션에서는 젤리빈에서 공개된 프로젝트 버터를 기술적 관점에서 분석해 본다. 이는 플랫폼의 레이턴시를 iOS 수준으로 낮추기 위한 구글의 도전이며, Jank Busting으로도 알려져 있다. 구체적으로 오디오 레이턴시를 줄이기 위한 Fast Mixer, 렌더링 레이턴시를 줄이기 위한 VSync 등이다. 구글 엔지니어가 보여주는 다채로운 기예의 향연을 마음껏 즐겨보자.

- Linux Scheduling Policy
- Audio Output Overview
- Rendering Overview
- Problems with Audio & Rendering Latency
- Fast Mixer: Purpose, Concept, Implementation
- VSync: NativeLooper, EventThread, Choreographer
김태연 (Edward T. KIM)
- 닉네임: 에드워드(Edward)
- 부산대학교 소프트웨어
  품질 연구실(SQUARE Lab.)
15:20 ~ 15:50 휴식
15:50 ~ 17:40
Memory and Performance

세션목표 : 본 세션에서는 애플리케이션 개발시 주요 이슈로 대두되는 메모리와 성능 문제를 다룹니다. 안드로이드 플랫폼 버전별로 메모리 및 성능관련 특징들이 어떻게 변해왔는지를 살펴보고, 이와 관련된 API와 툴을 설명합니다. 더불어 메모리 Leak과 OOM 관련 사례분석을 통해 문제해결방법을 제시하며, 화면 스크롤 성능 개선 방안과 SMP 프로그래밍 관련 준수사항을 구체적인 사례를 기반으로 설명합니다.

Memory
- Introduction : Historical Distribution & Change History
- Memory Management Overview:
Android Linux Kernel / User Space Library /
Tools / Framework APIs
- OOM Case Study #1 : Snapshot Analysis w/ MAT
- OOM Case Study #2 : Historical Analysis w/ kmemtracer
- Conclusion : Memory Issue Processing Flow

Performance
- Introduction : Historical Distribution & Change History
- Performance Analysis Overview :
Android Linux Kernel / User Space Library /
Tools / Framework APIs
- Case Study #1 : Scrolling performance
- Case Study #2 : Android SMP Programming Guide
- Conclusion : Performance Sensitive Paths

이경민 (Kyungmin Lee)
- 닉네임(snailee)
- LG전자

양정수(Yang, Jeong Soo)
- 닉네임(들풀)
- www.kandroid.org 운영자