Download pptx - File reverse & merge

Transcript
Page 1: File reverse & merge

Merge & Reverse국민대학교 컴퓨터공학부

20113336 채한울

Page 2: File reverse & merge

기존 코드 성능측정 결과 총 5 회 측정 결과1 회 : 75.82s2 회 : 68.40s3 회 : 70.03s4 회 : 73.14s5 회 : 75.81s

평균 : 72.64s

Page 3: File reverse & merge

개선된 코드 성능측정 결과 총 5 회 측정 결과1 회 : 11.45s2 회 : 11.18s3 회 : 10.93s4 회 : 10.75s5 회 : 12.03s

평균 : 11.27s

Page 4: File reverse & merge

성능측정 결과 비교기존 코드보다 평균 약 6.45 배 빨라졌다 . 성능 = Improved / Origin

= 0.16

Page 5: File reverse & merge

개선 1. String Reverse & Save Function

각 file 의 line 별로 한번씩 ‘reverse 와 동시에 새로운 배열에 저장’한다 .

Page 6: File reverse & merge

개선 2. open() & read() & write() 사용기존 file I/O 함수들 (fopen, fgetc, fputc) 을 open() & read() & write() 함수들로 바꾼다 .

Heap 영역에 filesize 만큼의 배열을 할당하고 각 file 을 ‘한번의 system call’ 만을 하여 읽는다 .

마찬가지로 결과값도 filesize*2 만큼의 배열을 할당하여 ‘한번의 system call’ 만을 하여 쓴다 .

Page 7: File reverse & merge

개선 3. Multithreading한 line 을 reverse 하고 배열에 저장하는 과정을 Multithreading 을 쉽게 하는 OpenMP 사용하여‘Multithreading’ 한다 .

Page 8: File reverse & merge

실패한 시도 1현재의 코드는 각 라인을 reverse 할 때 2 개의 thread 로 나눠서 실행한다 .HW 가 4 개의 core 를 가지고 있으므로 4 개의 thread 로 나눠서 실행해 봤지만 각 line 의 길이가 짧아 multithread 로 얻는 이득보다 overhead 가 더 커졌다 .

평균 20.59s 로 약 1.9 배 느리다 .

Page 9: File reverse & merge

감사합니다


Recommended