디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

병렬화 프로그래밍이 편견없이 보편화 됐으면 좋겠다

좍이(59.7) 2011.02.02 20:21:23
조회 139 추천 0 댓글 2

다중 CPU 하드웨어가 보급된지는 오래지났지만,


병렬화 프로그래밍이 현업에 미치는 영향은 미미하다.

동영상 인코딩과 같이 시간이 오래 걸리는 일이나,

대형 소프트웨어 개발 업체에서나 간간히 적용할 뿐이다.

무거운 일을 할 땐, 언제나 병렬화 제안을 하지만, 통과한 적이 없다.

이른바 성급한 최적화라면서 말이다.


병렬화의 위력을 알리기 위해 간단한 스크립트를 짠 적이 있다.

파이선 10줄 가량의 코드로 자동화 테스트 스크립트 수행을 CPU만큼의 프로세스를 띄워서

일을 분배하여 수행하도록 했다.

5분의 코딩으로 2시간이 걸리던 자동화 테스트 코드는 2배가 빨라져 1시간만에 수행이 되었다.
(5시간을 썼다면 20분만에 수행이 되게 할 수 있었을거라 생각한다)

하지만 돌아오는 반응은 냉담했다. 

"프로세스 여러 개 띄우는게 병렬화냐?"


난 코드 최적화를 좋아하지 않는다.

성능 향상은 아마도... 아마도 되겠지만,

코드가 지저분해지기 때문이다.

루프 언롤링 같은 기법은 정말 혐오한다.


그럼 병렬화도 코드 최적화일까?

성능 향상을 위한 방안이기 때문에?

난 아니라고 생각한다.

병렬화는 코드 최적화가 아니라, "알고리즘"이다.

때문에 처음부터 고려하지 않고, 개발 중간에 병렬화를 적용하는 것은 매우 어렵다.


대다수의 관리자들은 병렬화로 인해 복잡도가 올라가고, 따라서 프로젝트가 실패할 확률이 높아지기 때문에 기피한다.

하지만 본래 병렬화 같은 기법이 코드의 질을 높인다는 것을 그들은 모른다.

병렬화된 알고리즘을 잘 수행되기 위해서는 동기화가 중요하다.

때문에 자연스럽게 함수형 프로그래밍을 하게 되고, 자원간의 관계를 생각하게되고,

최대한 동기화 요소가 없도록 노력하기 마련이다.

TDD를 하면 테스트를 위한 코드를 짜기 때문에 코드가 깔끔해지듯,

병렬화를 적용하면 자원간의 관계를 고려하게 되기 때문에 불필요한 결합이 줄어든다.



여하튼 병렬화를 단순히 최적화 기술로 인식하는 풍토가 안타깝다.

내가 병렬화를 하겠다는 이유는 간단하다.

"있는 자원을 쓰지 않는 것은 낭비"이기 때문이다.


물론 병렬화 도입을 통해서 코드의 복잡도가 올라가는 것은 바람직하지 않지만,

복잡도를 올리지 않고도 병렬화를 충분히 도입할 수 있다는게 내 주장이다.


하지만 국지적인 병렬화는 좋지 않다고 생각한다.
(예를 들어 for문 하나, 하나를 돌리는데 모두 병렬화를 적용하는 것.)

그것은 의심할 여지없는 성급한 최적화다.

하지만 TBB 같은 것을 도입하지 않고,

간단히 전체적인 스케쥴링 객체 하나만 만들어도

충분히 모든 CPU를 사용하는 병렬화 구조를 구현할 수 있다.

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 가족과 완벽하게 손절해야 할 것 같은 스타는? 운영자 24/06/24 - -
236988 나누기질문좀 [10] 인천백수갤로그로 이동합니다. 11.03.05 65 0
236987 에러가 뜨긴 뭘떠 ㅡㅡ;; [5] SODmaster갤로그로 이동합니다. 11.03.05 119 0
236986 나보다 어린 여자개발자한테 모욕감느낌 [9] 개발자(112.186) 11.03.05 309 0
236985 아 이거도저히못하겟는데요 deley함수 C++에 안된대요 [7] gasd(211.201) 11.03.05 90 0
236984 횽들 C언어 나누기 질문좀.. [2] 인천백수갤로그로 이동합니다. 11.03.05 118 0
236983 C++ 수정할떄 지워지는현상이거 어떻게안되나요 [3] gasd(211.201) 11.03.05 68 0
236981 여기가 컴갤인가요? [1] ㅇㅀㄹ(58.143) 11.03.05 119 0
236980 C++ 1초마다 출력하려고하는데요 좀 가르쳐주세요 ㅜ [2] gasd(211.201) 11.03.05 185 0
236975 편입 vs SI [2] 무일푼(219.250) 11.03.05 128 0
236972 횽들 프로그래밍 공부용 노트북 크기좀 추천해줘염 [2] qwerty(124.49) 11.03.05 218 0
236971 원격조종 바퀴벌래 [2] 땡칠도사갤로그로 이동합니다. 11.03.05 170 0
236970 상호배제(뮤텍스)와 임계영역이 관련이 있나요? [5] 컴돌이(58.77) 11.03.05 235 0
236969 니들은 프로그래머에 환상을 가지고 있어 [1] 계백(61.255) 11.03.05 121 0
236968 앱개발동아리를 들어갔는데요 [7] Hello.C갤로그로 이동합니다. 11.03.05 142 0
236967 웹뿐만아니라 어플리케이션에도 접근성이 중요하다. 계백(61.255) 11.03.05 43 0
236966 세상엔 세가지 종류의 사람이 있습니다. [3] Rub2(114.201) 11.03.05 186 0
236965 6줄 짜리 c언어 질문 [5] ㅇㅇㅇ(61.75) 11.03.05 152 0
236964 해일리언니가 있다!! elwlwlwk갤로그로 이동합니다. 11.03.05 74 0
236963 형들 지렁이게임은 이제 할수 있는데 ㅁㄴㄻㄴㄷ(121.169) 11.03.05 88 0
236962 서울미림여자정보과학고등학교에서 동아릭 강사분을 모집합니다. [4] 야잌(125.240) 11.03.05 227 0
236961 루비는 정말 매력적인 언어입니다. [10] Rub2(114.201) 11.03.05 209 0
236960 아 어제 고기부페갔는데 속이 안좋다... [4] 꿀레(14.33) 11.03.05 109 0
236959 [유머] 회사생활, 직장생활하면서 신입사원 모두들 공감하게 되는 내용 니카루갤로그로 이동합니다. 11.03.05 311 0
236958 독수리 타법인데 500타 넘기기 힘드네여 ㅋ [2] (175.246) 11.03.05 130 0
236957 안자는 분들... 자바좀 도와주세요! [1] 자바배우는놈(112.186) 11.03.05 73 0
236955 궁금..C#으로 플그램 맹글어서 배포해도 상관없어? 캐닭(112.133) 11.03.05 65 0
236954 C++배우고 자바배우니깐 자바 드럽다 [4] 자바배우는놈(112.186) 11.03.05 268 0
236953 일단 내가 이해한 MVP 패턴 [2] 캐닭(112.133) 11.03.05 536 0
236952 오느로 터지는 MVC 떡밥 [7] SODmaster갤로그로 이동합니다. 11.03.05 116 0
236950 횽들 MVC 실습은 해봤고.. MVP로 해보려고 하는데 [30] 허허벌판갤로그로 이동합니다. 11.03.05 192 0
236949 JDK 다운로드 링크좀..... 이상하게 설치가안됨 [2] 자바배우는놈(112.186) 11.03.05 109 0
236948 Rtㅁ 귀여워 SODmaster갤로그로 이동합니다. 11.03.05 86 0
236947 경력이라는게...... [3] 캐닭(112.133) 11.03.05 135 0
236944 학교에서 어떤 여자 살람이 [1] 분당살람갤로그로 이동합니다. 11.03.05 147 0
236943 자바배워볼려고 하는데 [2] 자바배우는놈(112.186) 11.03.05 81 0
236942 외국에 컴공이나 게임관련된 대학교 어디가 유명함?? [3] dd(14.54) 11.03.05 215 0
236941 디버깅 하는법좀 알려조오... ㅡㅜ... [8] ㅁㄷ(112.148) 11.03.05 96 0
236939 이바보형 [7] clique갤로그로 이동합니다. 11.03.05 61 0
236938 안드로이드에서 도스가 실행된다면??? [3] 곰고미(112.186) 11.03.05 149 0
236937 아미치겠닭 ㅋㅋㅋㅋㅋ이거 왜이런거에요? 디씨님들 자비좀 ㅠㅠ [7] 쿤킨갤로그로 이동합니다. 11.03.05 189 0
236936 큰일났음 빨리보셈~~~~~급함 [5] 형들아(112.186) 11.03.04 59 0
236934 python 잘아시는분,,,궁금한게 있는데요 [8] 늅뉴(125.186) 11.03.04 158 0
236933 루비는 정말 매력적인 언어입니다. [4] Rub2(114.201) 11.03.04 86 0
236930 젠장 [7] 뇌자알갤로그로 이동합니다. 11.03.04 90 0
236928 엑셀 문서 편집 방법 및 프로그램 제작 문의 [3] 전부날아가보자갤로그로 이동합니다. 11.03.04 117 0
236927 전문대 전자관데 [6] 반도체(116.45) 11.03.04 120 0
236926 저는 성실한 학생이므로 [5] 뇌자알갤로그로 이동합니다. 11.03.04 112 0
236925 아까 올렸던 만화 하나 더 올릴께 이것도 맞음? [6] 나체효과갤로그로 이동합니다. 11.03.04 141 0
236924 형들 이 만화 어떻게 생각함? [7] 나체효과갤로그로 이동합니다. 11.03.04 202 0
236922 노트북...... 노트북.... 노트북... [6] 울트라씬(220.81) 11.03.04 124 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2