시스템개발방법론 @ 포항공대 김장우 2012 년 7 월 26 일 포항공대고성능컴퓨팅연구실 성공적인시스템개발방법? 1 1
목차 성공적인시스템 성공적인시스템의개발방법 시스템레벨디자인 시스템모델링및시뮬레이션기술 시스템워크로드기술 시스템개발방법론 @ POSTECH 2 태권 V 를성공적으로개발하려면? - 개발기간? - 개발비용? - 전투대상? - CPU? 운영체제? 메모리? - 철강재료? - 부품연결기법? - 조종사및조종방법? - 태권도? 검도? - 전력공급? - 물속에서싸워야할까? Environment - 전투중오작동이나면? -.. 3 2
도대체무엇이문제일까? 모델링 / 시뮬레이션을통해다양한하드웨어와소프트웨어들의조합으로이뤄진복잡한시스템의성능 ( 또는전력, 안정성..) 을정확하게분석하고예측하는것은매우어렵다. 4 목차 성공적인시스템 성공적인시스템의개발방법 시스템레벨디자인 시스템모델링및시뮬레이션기술 시스템워크로드기술 시스템개발방법론 @ POSTECH 5 3
시뮬레이션 : 아키텍트의주요무기 시스템개발용시뮬레이터는 C/C+ 등의언어로이뤄진대규모소프트웨어 디자인모델링 - 성능 / 전력 / 안정성 - 새로운기술적용 디자인비교 - 다양한스펙 / 부품 - 다양한어플리케이션 디자인평가 디자인확정 고급시뮬레이션기술이없으면경쟁력있는제품개발불가능 6 시뮬레이션 : 목표 정확한시뮬레이션 목표디자인과의일치성 (e.g., CPU vs 스마트폰시뮬레이션 ) 빠른시뮬레이션 목표정확도의시뮬레이션을빨리할수있는가? (e.g., 1일 vs 1달 ) 쉬운시뮬레이션 시뮬레이션을쉽게할수있는가? (e.g., 시뮬레이터개발비용? 인력확보?) // 개발정확도 // 개발기간단축 // 개발비용절감 고급시뮬레이션기술이란? 정확하고빠르며손쉬운시뮬레이션기술 7 4
정확하고빠른시뮬레이션의어려움 (1/2) 예 : 고급스마트폰 HW 의복잡도증가 멀티코어 / 멀티쓰레드 CPU/.. 메모리 / 플래쉬 /.. GPU/ 디스플레이 /... SW 의복잡도증가 운영체제 / 시스템소프트웨어 /.. 멀티미디어 / 영화 / 게임 /.. 소셜네트워크 / 클라우드 /.. 이모두를프로그램으로정확히구현하면시뮬레이터의느린속도로인해개발적용불가능 8 정확하고빠른시뮬레이션의어려움 (2/2) 예 : 멀티코어 CPU 실제 CPU 대비속도저하도 단순에뮬레이션모드 < 2배 SW 개발용시뮬레이터 ~1000배 시스템 (HW/SW) 개발용시뮬레이터 ~1000,000배 실제 CPU 의 1 분 1 년의시뮬레이션기간 성공적인시스템개발을위해선택적시뮬레이션, 워크로드축약등의고급시뮬레이션기술필요 9 5
목차 성공적인시스템 성공적인시스템의개발방법 시스템레벨디자인 시스템모델링및시뮬레이션기술 시스템워크로드기술 시스템개발방법론 @ POSTECH 10 워크로드개발및운영의어려움 예 : 어떤워크로드를대상으로개발을해야할까? 풀시스템워크로드 (full system workload) 사용자가바라보는워크로드 o 3D 게임, 고화질동영상, 끊어지지않는화상통화등 시뮬레이터에서사용하는워크로드 o 서킷시뮬레이션, 단순계산프로그램, 메모리테스트프로그램 성공적인모델링 = 성공적인시뮬레이션 + 의미있는워크로드 풀시스템워크로드를모델링 / 시뮬레이션이가능하게축약하는고급기술필요 11 6
목차 성공적인시스템 성공적인시스템의개발방법 성공적인시스템개발방법론 @ POSTECH CPU 분야연구 GPU 분야연구 Cloud/Big Data 분야연구 요약 12 Our approach: Critical-Path Aware Fast Simulation One smart simulation only, and theory tells everything E.g. 35% loss due to L2 d-cache miss 30% loss due to branch misprediction 20% loss due to floating-point division 15% loss due to data dependency Key advantages Algorithm needs to analyze only in-flight instructions Post-analysis tools can be used to reduce # of simulations Statistical data-correlation methods can be applied Sim VS Sim comparison is easy (e.g., RTL vs Timing) 13 7
목차 성공적인시스템 성공적인시스템의개발방법 성공적인시스템개발방법론 @ POSTECH CPU 분야연구 GPU 분야연구 Cloud/Big Data 분야연구 요약 14 GPU programming is HARD Programmers must do everything! Programmers must do everything right! Programmers must do this process over and over! GPU is useless to the most of programmers, if you care PERFORMANCE. 8
Programming (for performance) is Hard Application-dependent performance variation IPC varies with grid/block combinations Portability (for performance) is Hard Architecture-dependent performance variation IPC varies with architecture combinations 9
Scalability (for performance) is Hard Multi GPU-dependent performance variation Performance won t increase even if you add more GPUs 18 Current Programming & Optimization Unbounded # of painful re-optimizations (if possible) 10
목차 성공적인시스템 성공적인시스템의개발방법 성공적인시스템개발방법론 @ POSTECH CPU 분야연구 GPU 분야연구 Cloud/Big Data 분야연구 요약 20 Performance cannot be guaranteed No true multi thing! Virtual machine is only virtual > Resource contention exists ALUs, caches I/O devices Net bandwidth > Difficult performance analysis [Example 4-core CPU] 21 11
Performance cannot be monitored Difficult to analyze the performance of my system There is no standard workload for cloud How to model workloads on cloud? Cloud workloads are unique Typical o SPEC CPU, PARSEC, TPC-C, TPC-H, Cloud Known for straightforward instruction-, memory-, and thread-parallelism o NoSQL database, web server, mail server, map & reduce, (likely on top of virtualization) Known for large scale, network and I/O bound, complicated behaviors How to model, build, reduce, and evaluate cloud workloads? 23 12
Cloud software is too expensive Can t use immature open-source solutions Lack of key features e.g., monitoring, migration, RAS, backup,... Can t afford commercial solutions costs up to 1000s of dollars per CPU + licensing fees (for advanced management features) Price for 1,000~10,000 nodes? How to modify commercial engines? 24 Our approach @ POSTECH PosCloud: Advanced open-source based cloud engine 25 13
PosCloud: open-source implementation Postech Cloud Engine - monitoring - analysis - deployment - virtualization - live migration - power saving POSTECH Datacenter (100+ nodes) Tools OpenStack Condor Hadoop Xen Function Infrastructure as a Service (IaaS) Workload scheduling Scalable file system Virtualization 26 PosCloud: advanced operating system Quality of Service Reliability, Availability, Serviceability Slow Fail OFF OFF Cloud Engine OFF Scalable Node M anagement 27 14
PosCloud: Big Data storage 28 PosCloud: Workload CloudSuite Benchmark suite consists of scale-out applications Covers broad range of applications: 6 different categories SPECvirt Performance evaluation of a single datacenter server Measures all system components: hardware, virtualization platform, virtualized guest OS and application software 29 15
PosCloud vs Others Service Quality Typical Open-source Typical Commercial PosCloud IaaS Service Performance - + Power - + Cloud Computing Management Recovery - + Availability - + Other Features -? Open-source Platform - - S/W costs ~$0 1000s of $ per CPU ~$0 Commercial-level services at near zero prices! 30 Research projects under PosCloud Performance monitoring Performance counter virtualization Resource contention identification Fast, live migration of virtual machines Quality-of-Service guarantee Load balancing for power re-cycling Realistic workloads Large-scale, virtual machine throughput test Potential workload reduction Big data management Scalable object-oriented storage engine SSD-HDD hybrid storage 31 16
Summary What we are doing @ POSTECH CPU performance analyzer Fast and accurate simulation and modeling GPU programming Compiler and architectural supports PosCloud: open-source cloud engine Quality-of-Service guarantee Performance monitoring and prediction VM, process, function migration Cloud-level workloads Scalable & reliable big data storage 32 Question? Thank You! Jangwoo Kim e-mail: jangwoo@postech.ac.kr http://www.postech.ac.kr/~jangwoo 33 17