58
슈퍼컴퓨팅과 데이터 어낼리틱스 프레임워크, 그리고 유니스트의 빅데이터 처리 프레임워크 남범석 UNIST (울산과학기술원)

[232] 수퍼컴퓨팅과 데이터 어낼리틱스

Embed Size (px)

Citation preview

Page 1: [232] 수퍼컴퓨팅과 데이터 어낼리틱스

슈퍼컴퓨팅과 데이터 어낼리틱스 프레임워크, 그리고 유니스트의 빅데이터 처리 프레임워크

남범석 UNIST (울산과학기술원)

Page 2: [232] 수퍼컴퓨팅과 데이터 어낼리틱스

contents

1. 슈퍼컴퓨팅과 빅데이터 2. UNIST의 빅데이터 분석 플랫폼 3. 맺음말

Page 3: [232] 수퍼컴퓨팅과 데이터 어낼리틱스

1. Supercomputing & BigData

Page 4: [232] 수퍼컴퓨팅과 데이터 어낼리틱스

Supercomputing

• High Performance Computing

• Scientific Computing

• Data Intensive Computing

• Computational Science

/Rocket Science

• High-end Computing

Page 5: [232] 수퍼컴퓨팅과 데이터 어낼리틱스

Supercomputing 아키텍처

1980’s 1990’s 2000’s

Source: Top 500

Page 6: [232] 수퍼컴퓨팅과 데이터 어낼리틱스

Supercomputing Today

- Clusters of commodity (Intel/AMD x86) HW & IBM bluegene

- High-speed, low-latency interconnect (Infiniband)

- Coprocessors (GPU, Xeon Phi)

- Storage area networks (SANs) & local disks for temporary files

Hardware ecosystem

Page 7: [232] 수퍼컴퓨팅과 데이터 어낼리틱스

High-end Computing & Industry

HPC

ENIAC (1946) 최초 Business Computer (1951)

CERN 통신 시스템(1989)

FTP, Gopher, NNTP (1969)

NCSA Mosaic (1993)

World Wide Web dot-com bubble (1997~)

Page 8: [232] 수퍼컴퓨팅과 데이터 어낼리틱스

High-end Computing & Industry

HPC

Active Data Repository (1998) BigData/Hadoop (2005)

Grid Computing (1998) Amazon EC2 (2006)

Page 9: [232] 수퍼컴퓨팅과 데이터 어낼리틱스

HPC & Industry

Innovation & Growth

Money

Page 10: [232] 수퍼컴퓨팅과 데이터 어낼리틱스

2008

Source: Top 500

Page 11: [232] 수퍼컴퓨팅과 데이터 어낼리틱스

Recession & HPC

Exa 스케일? 연간 수천만달러 전기세

Source: AAAS, Top 500

Page 12: [232] 수퍼컴퓨팅과 데이터 어낼리틱스

BigData: Recession?

Source: Gartner, Apache Foundation

2005

Page 13: [232] 수퍼컴퓨팅과 데이터 어낼리틱스

BigData? HPC?

Image Source: solar-citrus.tumblr.com

BigData HPC

Isn’t that what I’ve done

in the past?

Page 14: [232] 수퍼컴퓨팅과 데이터 어낼리틱스

Hadoop’s Uncomfortable Fit in HPC

Why? 1. Hadoop is an invader!

2. Running Java applications (Hadoop) on supercomputer looks funny

3. Hadoop reinvents HPC technologies poorly

4. HDFS is very slow and very obtuse

Source: G. K. Lockwood, HPCwire Image Source: solar-citrus.tumblr.com

Page 15: [232] 수퍼컴퓨팅과 데이터 어낼리틱스

HPC Ecosystem

Application level

Middleware

System software

Cluster Hardware

Applications and Community Codes

FORTRAN, C, C++, and IDEs

Domain Specific Libraries

programming model

Lustre (Parallel File System)

MPI/OpenMP/ OpenCL/CUDA

Batch Scheduler (SLURM,SGE)

Linux OS

Infiniband/Ethernet

SAN/Local Storage

X86 Servers+ Coprocessors

Page 16: [232] 수퍼컴퓨팅과 데이터 어낼리틱스

BigData Ecosystem

Application level

Middleware

System software

Cluster Hardware

Mahout, R, etc

MapReduce

programming model

Hadoop File System

HBase Big Table

Linux OS

Ethernet Local

Storage X86 Servers

zooke

eper

Spark

Hive Pig, etc ...

Virtual Machines and Cloud

Page 17: [232] 수퍼컴퓨팅과 데이터 어낼리틱스

ADR vs MapReduce

- Data Intensive Computing Framework

- Scientific Datasets 처리

1998 Active Data Repository (ADR)

Processing Remotely Sensed Data

NOAA Tiros-N

w/ AVHRR sensor

AVHRR Level 1 DataAVHRR Level 1 Data• As the TIROS-N satellite orbits, the

Advanced Very High Resolution Radiometer (AVHRR)sensor scans perpendicular to the satellite’s track.

• At regular intervals along a scan line measurements

are gathered to form an instantaneous field of view

(IFOV).

• Scan lines are aggregated into Level 1 data sets.

A single file of Global Area

Coverage (GAC) data represents:• ~one full earth orbit.

• ~110 minutes.

• ~40 megabytes.

• ~15,000 scan lines.

One scan line is 409 IFOV’s

Source: Chaos project: U.Maryland, College Park

Page 18: [232] 수퍼컴퓨팅과 데이터 어낼리틱스

DataCutter vs Dryad, Spark

2000 DataCutter - Workflow 지원 Component Framework

- Pipelined components (filter)

- Stream based communication

class MyFilter : public Filter_Base {

public:

int init( int argc, char * argv[] )

{ ... };

int process( stream_t st[] ) { ... };

int finalize( void ) { ... };

}

Source: Chaos project: U.Maryland, College Park

Page 19: [232] 수퍼컴퓨팅과 데이터 어낼리틱스

HPC & BigData

HPC 와 BigData 의 공통 해결 과제 1. High-performance interconnect technologies

2. Energy efficient circuit, power, and cooling technologies

3. Power and Failure-aware resilient scalable system software

4. Advanced memory technologies

5. Data management- volume, velocity, and diversity of data

6. Programming models

7. Scale-up? Scale-out?

Page 20: [232] 수퍼컴퓨팅과 데이터 어낼리틱스

HPC for BigData

Infiniband/RDMA for Hadoop - Wide adoption of RDMA

- Message Passing Interface (MPI) for HPC

- Parallel File Systems

- Lustre

- GPFS

- Delivering excellent performance

- (latency, bandwidth and CPU Utilization)

- Delivering excellent scalability

Page 21: [232] 수퍼컴퓨팅과 데이터 어낼리틱스

HPC for BigData

Infiniband/RDMA for Hadoop - Socket 기반의 Java RPC

- HPC는 고속 lossless DMA 통신 사용

Application

Socket

Transport

NIC Driver

NIC

Application

Socket

Transport

NIC Driver

NIC

Buffer

Buffer

Buffer

Buffer

Buffer

Buffer

Buffer

Buffer

Buffer

Buffer

Application

Socket

Transport

NIC Driver

NIC

Application

Socket

Transport

NIC Driver

NIC

Buffer

Buffer

Buffer

Buffer

Source: D.K.Panda, ISCA15 tutorial

Page 22: [232] 수퍼컴퓨팅과 데이터 어낼리틱스

HPC for BigData

Lustre File System for Hadoop - Intel HPC distribution for Hadoop

- Map task의 중간 결과물을 Lustre FS 에 저장

Source: Intel

Page 23: [232] 수퍼컴퓨팅과 데이터 어낼리틱스

HPC for BigData

RDMA 기반 In-Memory Merge

Source: D.K. Panda, ISCA 15 Tutorial

Map 1 Output (sorted)

Map 2 Output (sorted) Reducer

Map 1 Output (sorted)

Map 2 Output (sorted) Reducer

1. Sorted map output is divided into small pieces based on shuffle packet size

and size of the key-value pairs

2. As small portion of data is shuffled, merge can take place in memory

Page 24: [232] 수퍼컴퓨팅과 데이터 어낼리틱스

HPC for BigData

Scale out vs Scale up 1. Scale-out

2. Scale-up

Performance

Performance

Scale-up is more cost-effective (Microsoft – SOCC 2013)

Page 25: [232] 수퍼컴퓨팅과 데이터 어낼리틱스

EclipseMR

남범석 UNIST (울산과학기술원)

Page 26: [232] 수퍼컴퓨팅과 데이터 어낼리틱스

contents

1. 슈퍼컴퓨팅과 빅데이터 2. UNIST의 빅데이터 분석 플랫폼 3. 맺음말

Page 27: [232] 수퍼컴퓨팅과 데이터 어낼리틱스

2. EclipseMR

Page 28: [232] 수퍼컴퓨팅과 데이터 어낼리틱스

DHT 기반 빅데이터 프레임워크

CHORD DHT(Distributed Hash Table,분산해시테이블) 특징

1. Decentralized Data Structure

2. 결함 내성

3. 확장성 (P2P)

4. 바이너리 서치/Short cut->빠른 데이터 검색

14

15 0

1

2

3

4

5

6

7 8

9

10

11

12

13

{13,14,15} {0,1}

{2,3,4}

{5,6,7}

{8,9,10,11,12}

Page 29: [232] 수퍼컴퓨팅과 데이터 어낼리틱스

Chord DHT

Consistent Hashing 1. Hash function assigns a key to each node and each data

- key = hash(IP,port)

- key = hash(dataID)

ex) Insert new_data:

10 = hash(new_data)

12 = successor(10)

: successor(X) : actual node following X

14

15 0

1

2

3

4

5

6

7 8

9

10

11

12

13

{13,14,15} {0,1}

{2,3,4}

{5,6,7}

{8,9,10,11,12}

Actual node

Data keys

Page 30: [232] 수퍼컴퓨팅과 데이터 어낼리틱스

Chord DHT

Join Algorithm ex) A new server X joins

: 9 = hash(X_IP,X_port)

: 1 = Search(9) 14

15 0

1

2

3

4

5

6

7 8

9

10

11

12

13

{0,1,2,3, 4,5,6,7,8, 9,10,11,12, 13,14,15}

Actual node

Page 31: [232] 수퍼컴퓨팅과 데이터 어낼리틱스

Chord DHT

Join Algorithm ex) A new server X joins

:7= hash(X_IP,X_port)

: 1 = Search(7) 14

15 0

1

2

3

4

5

6

7 8

9

10

11

12

13

{0,1,8,9, 10,11,12, 13,14,15}

{2,3,4, 5,6,7}

X

Page 32: [232] 수퍼컴퓨팅과 데이터 어낼리틱스

Chord DHT

Join Algorithm ex) A new server Y joins

: 12 = hash(Y_IP,Y_port)

: 7 = Search(12) 14

15 0

1

2

3

4

5

6

7 8

9

10

11

12

13

{8,9,10, 11,12}

{0,1,13, 14,15}

{2,3,4, 5,6,7}

Page 33: [232] 수퍼컴퓨팅과 데이터 어낼리틱스

Chord DHT

Routing Algorithm Finger Table

- 자신으로부터 2k 번째 key의 successor

- ex) 노드1 의 Finger Table 14

15 0

1

2

3

4

5

6

7 8

9

10

11

12

13

{13,14,15} {0,1}

{2,3,4}

{5,6,7}

{8,9,10,11,12}

20

21

22

24

k 2k successor(2k)

0 1+1 4

1 1+2 4

2 1+4 7

3 1+8 12

Page 34: [232] 수퍼컴퓨팅과 데이터 어낼리틱스

Chord DHT

Routing Algorithm Finger Table

- 자신으로부터 2k 번째 key의 successor

- ex) 노드15 의 Finger Table 14

15 0

1

2

3

4

5

6

7 8

9

10

11

12

13

{13,14,15} {0,1}

{2,3,4}

{5,6,7}

{8,9,10,11,12}

20 21 22

24

k 2k successor(2k)

0 (15+1)%16 1

1 (15+2)%16 1

2 (15+4)%16 4

3 (15+8)%16 7

Page 35: [232] 수퍼컴퓨팅과 데이터 어낼리틱스

Chord DHT

Routing Algorithm Decentralized Binary Search

14

15 0

1

2

3

4

5

6

7 8

9

10

11

12

13

Decentralized

특징

1. Decentralized Data Structure

2. 결함 내성

3. 확장성 (P2P)

4. 빠른 데이터 검색

Page 36: [232] 수퍼컴퓨팅과 데이터 어낼리틱스

EclipseMR의 아키텍처

이중 DHT 구조 바깥 DHT: 인메모리 캐시

안쪽 DHT: 분산 파일 시스템

14

15 0

1

2

3

4

5

6

7 8

9

10

11

12

13 14

15 0

1

2

3

4

5

6

7 8

9

10

11

12

13

Key Design Principle

1) 로드 밸런싱

2) 인메모리 캐시 적중율

Page 37: [232] 수퍼컴퓨팅과 데이터 어낼리틱스

EclipseMR의 아키텍처

File Upload 1) 128MB 청크로 분할

2) 분할된 청크의 Hash Key를

사용하여 저장될 서버 지정

3) Replication

- replication factor = 3

- 지정된 서버의 좌우 actual

node에 저장

14

15 0

1

2

3

4

5

6

7 8

9

10

11

12

13 14

15 0

1

2

3

4

5

6

7 8

9

10

11

12

13

Page 38: [232] 수퍼컴퓨팅과 데이터 어낼리틱스

EclipseMR의 아키텍처

File Upload 14

15 0

1

2

3

4

5

6

7 8

9

10

11

12

13 14

15 0

1

2

3

4

5

6

7 8

9

10

11

12

13

Big File

Chunk-1

Chunk-2

Chunk-n

...

Page 39: [232] 수퍼컴퓨팅과 데이터 어낼리틱스

EclipseMR의 아키텍처

File Upload 14

15 0

1

2

3

4

5

6

7 8

9

10

11

12

13 14

15 0

1

2

3

4

5

6

7 8

9

10

11

12

13

Chunk-1

Chunk-2

Chunk-n

...

Page 40: [232] 수퍼컴퓨팅과 데이터 어낼리틱스

EclipseMR의 아키텍처

File Replication 14

15 0

1

2

3

4

5

6

7 8

9

10

11

12

13 14

15 0

1

2

3

4

5

6

7 8

9

10

11

12

13

Chunk-1

Chunk-2

Chunk-n

...

Page 41: [232] 수퍼컴퓨팅과 데이터 어낼리틱스

EclipseMR의 아키텍처

File Metdata Decentralization 14

15 0

1

2

3

4

5

6

7 8

9

10

11

12

13 14

15 0

1

2

3

4

5

6

7 8

9

10

11

12

13

Big File

Chunk-1

Chunk-2

Chunk-n

...

Partitionining/Replication 메타데이터 : Hash(Big File)→3

Page 42: [232] 수퍼컴퓨팅과 데이터 어낼리틱스

EclipseMR의 아키텍처

File Read 14

15 0

1

2

3

4

5

6

7 8

9

10

11

12

13 14

15 0

1

2

3

4

5

6

7 8

9

10

11

12

13

1) successor(Hash(Big File)→3)→4

2) 노드 4에서 파일 정보 획득

- Chunk 갯수, ACL

분할 정보,복제정보, etc

3) Hash(Chunk-1)→14

Hash(Chunk-2)→5

BigFile 메타데이터

Page 43: [232] 수퍼컴퓨팅과 데이터 어낼리틱스

EclipseMR의 아키텍처

File Read 14

15 0

1

2

3

4

5

6

7 8

9

10

11

12

13 14

15 0

1

2

3

4

5

6

7 8

9

10

11

12

13

4) Search_InMemory(Hash(Chunk))

- 인메모리 캐시에서 히트 발생 기대

Chunk-1

Chunk-2

5) If Cache Miss → DHT 파일시스템에서

읽어 캐시에 저장

Page 44: [232] 수퍼컴퓨팅과 데이터 어낼리틱스

EclipseMR의 아키텍처

Load Balancing 14

15 0

1

2

3

4

5

6

7 8

9

10

11

12

13 14

15 0

1

2

3

4

5

6

7 8

9

10

11

12

13

Q: 만약 Hash 키 13,14,15 가 다른 키에

비해 무수히 많이 엑세스 된다면?

A1: Migration

A2: Replication

Page 45: [232] 수퍼컴퓨팅과 데이터 어낼리틱스

Cache Migration/Replication:

- 인메모리 캐시의 데이터를

이웃 노드로 복제 혹은 이동

- 마이그레이션 알고리즘:

- Locality-aware Fair 스케줄러

- 인메모리 캐시의 Hash 경계선을

움직여 로드밸런싱 유지

EclipseMR의 아키텍처

Load Balancing 14

15 0

1

2

3

4

5

6

7 8

9

10

11

12

13 14

15 0

1

2

3

4

5

6

7 8

9

10

11

12

13

Page 46: [232] 수퍼컴퓨팅과 데이터 어낼리틱스

- 만일 Application이 key13을 읽기

위해 노드 12의 인메모리 캐쉬 검색.

- Cache Miss 발생 시 로컬디스크가

아닌 이웃한 노드 15에서 읽어야함

→ 성능 저하

- But! 15에 저장된 데이터들은 12에 복제

되어 있어 Local에서 읽음

- 경계가 극단적으로 변하지 않는 이상 로컬

리티 보장

EclipseMR의 아키텍처

Remote Data Access 14

15 0

1

2

3

4

5

6

7 8

9

10

11

12

13 14

15 0

1

2

3

4

5

6

7 8

9

10

11

12

13

Page 47: [232] 수퍼컴퓨팅과 데이터 어낼리틱스

- 로드밸런싱을 위해 Hash Key

경계선을 움직일 경우, Hash Key

경계선의 Decentralization이 어려움

- Leader Election 을 통해 Hash Key

경계선과 Job Scheduling을 담당할

Frontend 노드를 P2P로 결정

EclipseMR의 아키텍처

In-Memory Hash Key Boundary 14

15 0

1

2

3

4

5

6

7 8

9

10

11

12

13 14

15 0

1

2

3

4

5

6

7 8

9

10

11

12

13

Page 48: [232] 수퍼컴퓨팅과 데이터 어낼리틱스

- 최근 데이터 액세스 분포를 사용하여 Hash Key 경계를 분할

Locality-aware Fair Scheduler

In-Memory Hash Key Boundary Management

14 15 0 1 2 3 4 5 6 7 8 9 10 11 12 13

Page 49: [232] 수퍼컴퓨팅과 데이터 어낼리틱스

Locality-aware Fair Scheduler

In-Memory Hash Key Boundary Management

0

0.2

0.4

0.6

0.8

1 0

6

12

18

24

30

36

42

48

54

60

66

72

78

84

90

96

10

2

10

8

11

4

12

0

12

6

13

2

13

8

CD

F

server 1: [0,35)

server 2: [35,47)

server 3: [47,91)

server 4: [91,102)

server 5: [102,140)

new task T1 (HK=43)

new task T2 (HK=69)

Page 50: [232] 수퍼컴퓨팅과 데이터 어낼리틱스

EclipseMR 에서의 MapReduce Job Scheduler

A

A

B

C

D

E

F

B

C

D

E

F

5

5 11

15

18

26 38

39

47

57

55

EclipseMR MR application 1 1

2

3 4

4

5

5

3

6 reduce tasks

6

Serv

er

Hash Key Range

A [57~5)

B [5,11)

C [11,18)

D [18,39)

E [39,48)

F [48,57)

- accesses a file (hash key=38)

: data block 5 & 56

Page 51: [232] 수퍼컴퓨팅과 데이터 어낼리틱스

EclipseMR vs Hadoop & Spark

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

PageRank Sort Word Count Grep KMeans

Nor

mal

ized E

xecu

tion

Tim

e

EclipseMR Hadoop Spark

25x

3x

50x

6x

50x

Page 52: [232] 수퍼컴퓨팅과 데이터 어낼리틱스

3. 맺음말

Page 53: [232] 수퍼컴퓨팅과 데이터 어낼리틱스

Ongoing Works

MachineLearning on EclipseMR - GPU ML 패키지와 EclipseMR의 통합

Hadoop에서 GPU를 쓰는건 너무 어려워요.

WORLD'S LARGEST ARTIFICIAL

NEURAL NETWORKS WITH GPU

Source: Stanford Al Lab

Page 54: [232] 수퍼컴퓨팅과 데이터 어낼리틱스

Ongoing Works

Cassandra/NoSQL - Cassandra 와 EclipseMR의 통합

- NewSQL on EclipseMR

DHT 인메모리 캐싱/RDMA 를 활용한

고속 NewSQL 엔진 개발

14

15 0

1

2

3

4

5

6

7 8

9

10

11

12

13

{13,14,15} {0,1}

{2,3,4}

{5,6,7}

{8,9,10,11,12}

Page 55: [232] 수퍼컴퓨팅과 데이터 어낼리틱스

Ongoing Works

MPI/RDMA - 수퍼컴퓨팅 SGE/SLURM 환경에서 수행 가능

EclipseMR은 Hadoop 디몬이 필요 없으니 수행 가능합니다. mpirun으로 수행하세요.

빅데이터처리

Page 56: [232] 수퍼컴퓨팅과 데이터 어낼리틱스

맺음말

HPC & Big Data는 공통 과제를 함께 해결 - HPC의 Scale-up technologies를 BigData에 우선 적용

- UNIST 수퍼컴퓨팅센터/초고성능 빅데이터 사업단

- EclipseMR 및 다양한 HPC + BigData 연구 중

Page 57: [232] 수퍼컴퓨팅과 데이터 어낼리틱스

Q&A

Page 58: [232] 수퍼컴퓨팅과 데이터 어낼리틱스

Thank You