삼성전자 DS 부문 소프트웨어연구소 과제 제안서
description
Transcript of 삼성전자 DS 부문 소프트웨어연구소 과제 제안서
SAMSUNG SECRET
삼성전자 DS 부문소프트웨어연구소
과제 제안서2013. 9. 12
SAMSUNG SECRET프로젝트 과제 제안
구분 내용
주제 Python 기반 성능 Metric Monitor Tool 개발
내용Linux 의 Ftrace Tool 에서 얻어진 CPU Utilization Ratio, Disk Throughput 등의 데이터를 수동으로 쉽게 분석 할 수 있는 GUI Tool 을 개발한다 .
필요지식 Linux, 환경 , Python 및 관련 Library (Numpy, Pandas, PyQt, PyQtGraph) 기초 문법
교육 / 훈련 효과 Linux 환경에 대한 이해Python 및 GUI 라이브러리 동작 구조에 대한 이해
개발기간 2013.9 ~ 2013.11
인원 3 명담당자 박상규 책임 연락처 010-5501-1259/
1
SAMSUNG SECRETPython 기반 성능 Metric Monitor Tool 개발
내용 및 목적 trace 결과나 CPU Utilization, Disk I/O Throughput 등의 Data 를 읽어들여 사용자가 수동으로 분석하기 위한 Tool 을 개발 Test 용 Metric Data 는 제공됨 PyQtGraph 에 대부분의 참고 로직이 제공되므로 , Python 및 GUI Programming 에 경험이 있다면 어렵지 않게 수행 가능한 프로젝트
SAMSUNG SECRETPython 기반 성능 Metric Monitor Tool 개발
GUI 전체 Overview 좌측에는 GUI Control Panel, 우측에는 Graph 창이 존재한다 . 윈도우 상단에는 Menu Bar, ToolBar 등이 존재한다 . 좌측 Control Panel 에는 Section 별로 Sub Menu 및 Control 등이 존재한다 . 우측에는 복수개의 그래프 패널들이 존재한다 . 하위 GUI 는 모두 PyQtGraph 에서 제공함
SAMSUNG SECRETPython 기반 성능 Metric Monitor Tool 개발
그래프 패널 모드 1 개부터 4 개까지의 확대 , 축소 창을 가질 수 있으며 , 사용자가 선택 가능하다 . 프로그램 종료시에 각 창의 레이아웃이 저장되며 , 재실행시 동일한 위치 및 레이아웃을 가져야 한다 . 각 창 사이의 크기는 조절 가능하다 .
SAMSUNG SECRETPython 기반 성능 Metric Monitor Tool 개발
ROI(Region of Interest) 관심 영역을 사용자가 직접 표기할 수 있도록 기호를 삽입 – 직선 , 박스 , 화살표 기호 형태 그래프 위도우 내에 ROI 삽입이 가능하여야 한다 . 한 그래프내의 ROI 는 연결된 다른 그래프에서도 확대 , 축소되어 동일한 자리에 보여야 한다 . 별도의 ROI 윈도우가 존재하여 , 삽입된 ROI 의 종류가 정렬되어 보여야 한다 . ROI 윈도우의 한 ROI 항목을 클릭하면 , 해당 ROI 위치로 그래프 윈도우가 Scroll 하여야 한다 . 삽입된 ROI 목록들은 Load/Save 가 가능하여야 한다 .
SAMSUNG SECRETPython 기반 성능 Metric Monitor Tool 개발
Custom Grid & XY Axis 그래프의 확장 , 축소시 x, y 축의 단위는 적절하게 변환하여 표기되어야 한다 .
SAMSUNG SECRETPython 기반 성능 Metric Monitor Tool 개발
자동 Scrolling 기능 사용자가 직접 그래프 윈도우를 스크롤 할 필요 없이 , 일정 시간 간격으로 자동으로 스크롤할 수 있는 기능을 삽입한다 . 특정 키보드 입력에 따라 스크롤 시작 , 잠시 멈춤 , 재개 , 종료 가 가능하다 . 스크롤링 여부와 관계 없이 사용자의 ROI 및 화살표 기호 , 키보드 입력이 가능하여야 한다 . 입력된 화살표 기호 및 키보드는 별개의 창에 선별되어 쉽게 보여줄 수 있어야 하며 , 윈도우 내의 항목을 클릭하면 해당 항목을 그래프 윈도우가 보여주어야 한다 .
custom plotting 기능 plotting 시에 graph 는 사용자 정의된 도형으로 그릴 수 있어야 한다 . e.g.) call flow depth 가 10 을 넘어가는 점에 대해서는 (y-axis 가 10 이상인 경우 ) 해당 지점의 point 를 굵은 사각형 모양으로 plotting 할 수 있어야 한다 .
backgound filling 기능 그래프 윈도우의 특정 background region 에는 지정된 색상으로 filling 할 수 있어야 한다 . e.g) 특정 시간이나 날짜등의 데이터에 대해서는 background 를 검은색으로 채우는 기능 .
코딩시 유의점 모든 로직들은 클래스로 추상화하여야 한다 . 추상화된 데이터들은 확장성 있게 설계 되어야 한다 . 클래스의 메서드들은 최대 20 라인을 넘지 않도록 작성하여야 하며 , 공백과 주석을 적절히 활용하여 이해하기 쉽도록 작성하여야 한다 . Qt Designer 를 이용하여 GUI 와 Logic 을 분리하여야 한다 .
SAMSUNG SECRET프로젝트 과제 제안
구분 내용
주제 기계학습을 이용한 성능 Metric 패턴 인식기 개발
내용Linux 의 Benchmarking Tool 에서 얻어진 CPU Utilization Ratio, Disk Throughput 등의 데이터를 기계 학습을 이용하여 특정 Job 에 대한 패턴을 분석하는 Tool 을 작성한다 .
필요지식 Linux, 환경 , Python 및 관련 Library (Numpy, Pandas, Scikit-learn, PyBrain, MLPy, PyML)
교육 / 훈련 효과 Linux 에서의 Machine Learning 개발 동작 원리 파악
개발기간 2013.9 ~ 2013.11
인원 3 명담당자 박상규 책임 연락처 010-5501-1259/
2
SAMSUNG SECRET기계학습을 이용한 성능 Metric 패턴 인식기 개발
내용 및 목적 Hadoop 등에서 다양한 benchmark tool 을 수행하면 이에 따른 성능 metric 은 benchmark 결과에 따라 모두 달리 보여짐
각 benchmark solution 의 resource utilization pattern 을 이용하여 어떠한 benchmark 수행 결과인지를 판단한다 . benchmark 의 종류를 판단한 후 , 어떤 지점에서 utilization 이 극대화되기 시작하는지를 판단한다 . 판단 및 예측에 사용되는 머신 러닝 알고리즘은 추후 공지
SAMSUNG SECRET기계학습을 이용한 성능 Metric 패턴 인식기 개발
구현 내용 DB 화된 Test Data 의 분류 Test Data 의 판별
DB 화된 Test Data 의 분류 Test Data 로 제공되는 Data 를 Category 에 맞춰 category 로 나눈다 .
Test Data 의 판별 새로 입력되는 Test Data 의 Scrolling 시간이 지남에 따라 각 Category 별 확률 및 예상 경로를 GUI 로 보여준다 . 해당 category 에서 어떤 시점에 utilization 이 극대화되는지를 판별하여 예측한다 .