multi processing 2

[system programming] parallel programming

본 게시글은서울대학교 데이터사이언스대학원 성효진 교수님의데이터사이언스 응용을 위한 컴퓨팅 시스템 강의를학습을 목적으로 재구성하였습니다저번시간에 이어서 남은 병렬 프로그래밍 부분을마무리 해보려고 한다 병렬 실행은 잘못 수행하면 더 많은 오버헤드가 발생해서수행 시간이 더 오래 걸릴 수가 있다이러한 부분은 실제로 연구가 많이 진행되고 있는 부분이다 위 ppt에서 T0이 병렬 실행을 해서 생길 수밖에 없는 오버헤드 값인데load imbalance, communication, excess work가 원인이 된다 mapping은 static mapping과 dynamic mapping으로 구분 가능하다 task queue에 있는 데이터를 스케줄 하는 시점에어디에 mapping할지 이런 것들을 동적으로 결정할 수가 ..

[system programming] program optimization & parallel programming

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