compiler 2

[system programming] program optimization & parallel programming

본 게시글은서울대학교 데이터사이언스대학원 성효진 교수님의데이터사이언스 응용을 위한 컴퓨팅 시스템 강의를학습을 목적으로 재구성하였습니다 저번 시간에 이어서compile optimization에 대해서 계속 해보려고한다 타일링도 굉장히 중요한 최적화 기법 중에 하나이다기본적으로 배열을 순차적으로 처음부터 끝까지nesting을 하는 것이 일반적인데타일링은 처음부터 끝까지 도는게 아니고tile이라고 하는 작은 iteration으로 쪼갠다음에하나하나 차근차근 또 도는 방식이다loop을 나누는 개념이라고 생각하면 편하다 타일링의 에씨이다B는 block size인데 타일의 크기이다이러한 타일링을 하는 가장 큰 이유는 바로cache locality 때문이다 만약 내가 코드를 병렬로 실행한다고 하면내가 타일링을 했..

[system programming] program optimization (compiler와 최적화 기법)

본 게시글은서울대학교 데이터사이언스대학원 성효진 교수님의데이터사이언스 응용을 위한 컴퓨팅 시스템 강의를학습을 목적으로 재구성하였습니다이번 시간에 정리할 내용은프로그램 최적화에 관련된 내용이다 컴파일 언어에서는 컴파일러가 우리가 작성한 코드를자체적으로 최적화를 해주는 역할을 한다그렇다면 컴파일러는 어떤 방법으로 최적화를 진행할까?또한 컴파일러 이외에우리가 코드 레벨에서 코드를 작성할 때어떻게하면 최적화된 코드를 작성할 수 있을까?이 프로그램 최적화는 이와 관련된 내용이다 이런 컴파일러의 최적화 과정을 이해해야우리가 어떻게 프로그램을 짜야하는지 알 수 있다고 한다 이번 시간에 배울 목차이다 우리가 보통 알고리즘을 공부할 때는asymptotic complexity라고 해서흔히 빅오 표기법으로 시간 복잡도를 ..