디시인사이드 갤러리

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

갤러리 본문 영역

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

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

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


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

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

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

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

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


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

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

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

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

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

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


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

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

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

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


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

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

난 아니라고 생각한다.

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

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


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

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

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

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

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

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

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



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

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

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


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

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


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

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

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

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

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

추천 비추천

0

고정닉 0

0

댓글 영역

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

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 가족과 완벽하게 손절해야 할 것 같은 스타는? 운영자 24/06/24 - -
235834 횽들아.. 트리플G갤로그로 이동합니다. 11.02.24 35 0
235833 아이디어 중요해. [2] 아닭(112.216) 11.02.24 97 0
235832 사업쵸보들의 망상 번외편. [3] ㅁㄴㅇㄹ(175.199) 11.02.24 175 0
235831 아침부터 디씨 왜이리 느림? 꿀레(14.33) 11.02.24 62 0
235830 (새벽부터 헛솔) 아이디어 중요하지 않나요? [2] 미클갤로그로 이동합니다. 11.02.24 117 0
235829 덕짤 좀 그만 올리셈 [1] 다람쥐v갤로그로 이동합니다. 11.02.24 109 0
235828 1기가 인터넷이 또 쫙 퍼진다는데 [1] 계백(61.255) 11.02.24 192 0
235827 덕짤 투척! [2] 땡칠도사갤로그로 이동합니다. 11.02.24 142 0
235826 또 올리자 얍 ㅁㅇㅁ(211.117) 11.02.24 77 0
235825 야심한밤엔 역시 덕짤 [1] elwlwlwk갤로그로 이동합니다. 11.02.24 116 0
235824 그래 아이디어 아이디어~좋아해라 [7] 계백(61.255) 11.02.24 111 0
235823 좀 올라가라 - ㅅ-) [1] 땡칠도사갤로그로 이동합니다. 11.02.24 97 0
235821 에잇 야심한밤엔 덕짤이지 [1] ㅁㅇㅁ(211.117) 11.02.24 121 0
235820 UI 무시하는 새퀴들은 다 때려죽여야 된다. [4] DMW(125.138) 11.02.24 204 0
235819 레알 아이디어가 가장 중요한가? [5] 훗쇼갤로그로 이동합니다. 11.02.24 137 0
235818 땡칠횽 감동이야 ㅜㅜ elwlwlwk갤로그로 이동합니다. 11.02.24 37 0
235817 사업 초보들의 망상 끌어올리긔...... [1] 훗쇼갤로그로 이동합니다. 11.02.24 103 0
235816 뭐 어떻게~ 될까요 라고 묻지말고 일단 알고리즘을 짜봐라.. ㄷㅈ(121.88) 11.02.24 55 0
235814 올라가라 얍 [3] 땡칠도사갤로그로 이동합니다. 11.02.24 98 0
235813 c언어 공부하는데 답봤는데도 자꾸 오류가 나네요 도와주세요 ㅠㅠ [3] ㅜㅜㅜ(219.255) 11.02.24 131 0
235811 안드로이드 위치 추적에 관해서 [8] 늅늅(183.101) 11.02.24 223 0
235810 야동 토렌트 잔뜩 모아둔 블로그 알려준다! [2] 두부드랍셔틀갤로그로 이동합니다. 11.02.24 1096 0
235808 횽들 TAOCP 이거 다 나오긴하는거야?? 이좆보행갤로그로 이동합니다. 11.02.24 93 0
235807 슬럼프 참 오래가네 [4] yankuk갤로그로 이동합니다. 11.02.24 101 0
235806 심심이 어플은 과연 튜링테스트를 통과할 수 있는가에 대한 철학적 담론 [1] 스택오버플로(114.203) 11.02.24 172 0
235805 프로그래머는 뭘로 돈 버냐? 프로그램 개발해서? [1] 맛효성(61.252) 11.02.24 230 0
235804 git [1] 레시피(114.206) 11.02.23 68 0
235803 님들 웹 개발자 할껀데 드림위버가 도움 되나요? 드림위버 CS4 [1] 플랑이(118.32) 11.02.23 103 0
235802 솔직히 프로그래머 vs 웹디자이너.. 어떤게 더 낫냐? [5] 맛효성(61.252) 11.02.23 216 0
235801 회사 생활 조언좀... [1] ㅋㅋㅋ(175.198) 11.02.23 88 0
235800 백만 팩토리얼 졷뉴비(210.106) 11.02.23 205 0
235799 횽들 뭔가 굉장히 잘못되가는거 같아.. [2] 허허벌판갤로그로 이동합니다. 11.02.23 91 0
235798 프갤러들이 원하는 덕짤판 절대영역 [6] ㅁㅇㅁ(211.117) 11.02.23 222 0
235796 레노버키보드 쓰는 횽들 있음? (175.120) 11.02.23 306 0
235795 바다용 위젯을 하나 만들었는데.. 부락페스티발갤로그로 이동합니다. 11.02.23 61 0
235794 프갤에 현상금 들고 찾아왔쑝.txt [9] 가출한애찾음(116.32) 11.02.23 132 0
235793 One Source - Multi Use 아직은 아니거임? [4] asdf(125.188) 11.02.23 91 0
235791 디시인사이드 앱 테스트 [3] 유리한갤로그로 이동합니다. 11.02.23 214 0
235790 java 우월한가 보네 1위야 [6] 어둠이(118.176) 11.02.23 200 0
235789 C/C++ 가 실무에서 가장 인기있는 언어라는게 사실임??? [6] 어둠이(118.176) 11.02.23 216 0
235788 횽들아 노트북 둘중에 추천좀요 ! [8] 캔시(211.245) 11.02.23 145 0
235787 고속 푸리에 변환으로 구현하는 무한정밀도 [1] 일광면(119.198) 11.02.23 182 0
235786 안뇽? 늅늅 [1] 트리플G갤로그로 이동합니다. 11.02.23 49 0
235784 횽들 비베가 C언어보다 딸리나여? [5] 어둠이(118.176) 11.02.23 143 0
235783 안드로이드 질문염. 재탕 [3] 로이드(218.49) 11.02.23 81 0
235782 '사업 쵸보들의 망상' 에 대하여... 천재플머(175.196) 11.02.23 119 0
235781 머리 아파 -_- [6] 미클갤로그로 이동합니다. 11.02.23 120 0
235780 아오 횽드라 리눅스 입문서좀 [4] 개밥바라기.갤로그로 이동합니다. 11.02.23 149 0
235779 편입 올킬로 재수확정인데, 수능을 다시 볼까? [6] 재수생(124.80) 11.02.23 173 0
235777 아이디어 이딴건 초딩도 가지고 있는거야 [5] 계백(61.255) 11.02.23 112 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2