디시인사이드 갤러리

최근 방문

NEW

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

갤러리 본문 영역

멀티스레딩(멀티코어)에 대한 (그나마)간략한 설명.araboja

제라스(209.205) 2020.04.28 17:14:18
조회 3888 추천 40 댓글 27
														

로갤에서 쿨타임마다 돌아오는 주제 중 하나가 드포 멀티스레딩에 대한 부분임


맨날 올라오지만 맨날 반응은 비슷한데 좀 아는 애들은 절대 안된다 고 모르는 애들은 넣어줄 수 있는거 아니냐 로 갈림

장난으로 왜 못넣냐 하는 나같은애들도 있는데 그건 넘어가고


그래서 이김에 한번 왜 적용하기 힘든지에 대해서 글 써보려고 함. 최대한 이해하기 쉽게 쓸꺼나 엄밀히 따지면 틀린부분이 있을수도 있음.

그런거 있으면 아는사람이 댓글에 달아주셈




먼저 기본적인것부터 집고 가자.


보통 게이머들이 멀티스레딩 이라고 부르는건 싱글코어(CPU)만 사용하는게 아니라 멀티코어(CPU)를 사용하는것을 뜻함.

하이퍼스레딩이니 뭐니 그런거 넘기고 1코어 = 1CPU라고 생각하는게 편하니 이 기준으로 설명하겠음.


CPU도 간단하게 집고 넘어가면 대부분 알겠지만 대부분의 연산을 하는, 사람으로 따지면 머리같은 부분임. 그냥 여러 사람이 존재한다고 이해하는게 편할듯

상식적으로 게임을 돌릴 때 머리 하나만 사용하는게 아니라 사람 여려명을 사용하게 되면 빨라지는게 당연하지 않겠음?

그러나 현실은 그렇지 않다 라는 거에서 매번 같은 상황이 발생하는거임


드포 이야기에서 나왔으니 드포를 예시로 들자. 애초에 로갤에서 다루는 다른게임 중 멀티코어가 그나마 필요한 게임은 카타클 정도밖에 없기도 하고




viewimage.php?id=3fb1d92de0&no=24b0d769e1d32ca73ded80fa11d028310c0dd27a92083f8186361ad12ee4c0ca60db8e8e69f243e7e3fec19f4aa100590d578d8b4aaad38121201efe3451ace5


갓-겜으로 거듭날 스팀 드포의 소개 페이지에서 가져온 스샷임


이 스샷에서 보이는것만 따져서 CPU가 어떠한 일들을 해야할까? 대충 나열해보자


개개인의 드워프마다 AI가 돌아가겠고

드워프가 상호작용 하고있는 물체에 대한 계산(나무를 베는데 얼마나의 시간이 걸리는지, 흘렀는지, 나무가 몇개나오는지 등등)

기본적인 환경에 대한 계산(나무 및 곡물이 자랄 시간인지, 물이 어디로 흐를것인지 등)

그래픽을 사용자에게 보여주기 위해 출력하는 일

BGM이나 효과음 등 소리에 대한 부분을 처리하는 일

등등등 사용자가 입력한것에 대한 처리 같은 기본적인 운영체제의 일이나 다른 세력이 뭘 하는지, 지하는 어떤지 같은 것들도 많음


지금은 저 일들을 하나의 CPU가 도맡아서 하고있고 나머지 CPU는 드포를 손도 안대고 있어서 느린거니 다른것도 일하게 하면 된다! 라는거지



viewimage.php?id=3fb1d92de0&no=24b0d769e1d32ca73ded80fa11d028310c0dd27a92083f8186361ad12ee4c0ca60db8e8e69f243e78e92c79b42a00153bb57bc6713518c7ecbe356a57337553bf3


짤 처럼 CPU가 3개가 있다고 가정해보자


드포에 멀티코어를 적용했다고 가정하고
1. 드워프만 다루는 CPU
2. 환경만 다루는 CPU
3. 그래픽 사운드 등을 다루는 CPU 

로 나눴다고 생각해보자


이상적인 부분은 각자 맡은 부분을 알아서 하는게 제일이지. 그럼 성능이 비약적으로 향상될 수 밖에 없음


하지만 드워프가 환경을 다루는 상황이 존재하겠지? 나무를 벌목한다던가 곡물을 수확한다던가

그럼 이제 여기서 버그가 터지게 되는데 나무를 벌목하는 상황을 예로 들어보자


만약 드워프가 나무를 벌목한 타이밍과 나무가 성장하는 타이밍이 겹치게 되면?
사람 한명은 '나 나무 다 벌목했음 ㅇㅇ' 이라고 주장하고 다른 사람 한명은 '나무가 더 성장했음!' 하고 주장을 하는데 누가 맞는걸까?

둘 다 자기가 맞다고 주장하게되고 보통은 그나마 누가 먼저 주장했냐에 따라 결과가 나뉨

1.나무가 잘렸음에도 불구하고 더 자란 나무가 새로 생기거나(먼저 자르고 나무가 성장해서 결국엔 성장한 나무가 남는경우)
2. 운이 좋으면 버그가 안일어날 수도 있겠지(나무가 먼저 성장하고 벌목되서 남아있는 나무가 없는 경우)


3번 CPU는 자기가 판단할 권한이 없으니 그냥 결과적으로만 보고 판단하기만 해서 처리하게 됨.

번외로 3번같은 경우는 다른애들이랑 부딪힐일이 없으니 많은 게임에서 이런 CPU만들어서 조금이라도 빨라지게 만듬)


물론 버그가 안일어나게 하는방법도 있음. 1번 CPU가 벌목을 하게 될 때 2번 CPU에게 메시지를 전달하면 됨

'나 벌목 시작할테니 나무 상태 건드리지 마. 다 끝나면 이야기 할테니 그때 나무가 벌목된 상태로 업데이트 하면 됨 ㅇㅇ'

이라고 하면 문제가 생기지 않겠지. 근데 메시지를 전달하는거 자체가 시간이 많이 소모되는 부분임(일 처리하는거에 비해 수백~수천배까지 시간이 듬)

이러한 메시지 전달이 매우 자주 일어나게 된다면 혼자 일할때보다 여러명이 일할 때 더 시간이 많이 필요하게 됨



다른 예시로 1번 CPU는 1,2,3번 드워프를 담당하고 2번 CPU는 4,5,6번 드워프를 담당하면 어떻게 될까?


그렇게되면 각각의 드워프가 길을 갈 때 경로가 겹치는지, 겹치지 않는지 계산하게 될 경우

1,2,3번 끼리는 경로가 안겹치게 하기가 쉬움. 왜냐? 같은 CPU에서 이루어지는 작업은 데이터를 공유하기 때문에 문제가 없음

하지만 1번 CPU는 4,5,6번 드워프가 현재 어디에 있는지, 뭐하고 있는지, 어딜 가려고 하고있는지 등등 데이터가 없음

불편해보이지만 컴퓨터 구조 상 어쩔 수 없으닌 불만있으면 죽은 폰노이만 깨워서 이따구로 디자인 했는지 물어봐야함.


이렇게되면 또 2번 CPU한테 물어봐야 하는데 드워프끼리는 계속 상호작용이 일어날것이니 계속 물어봐야함. 그러면 싱글코어보다 더 느려지는거임


마지막으로 가끔은 이런일도 있음.
1번 CPU가 어떠한 일 하다가 잠시 딴생각한 사이에 2번 CPU가 일이 진행되고 있지 않으니 자기가 그 일을 가져와서 처리하는 경우

이건 드포까지 갈 일도 없이 현실세계에서의 간단한 예를 들어보자


철수와 영희가 있고 인스턴트 커피를 타야하는 상황이라고 가정하면

철수가 커피를 까서 컵에 붓고 잠시 다른일을 하는 상황임. 그럼 영희가 볼땐 커피가 만들어지고 있지 않으니 자기가 커피를 타겠다고 커피타는일을 뺏는거임

그러면 영희는 지금 커피타는 일이 어느단계까지 진행되었는지 파악을 해야하고 커피를 넘겨받아야 하고 심지어 일 시작한지 얼마 안되서 가끔씩 해멤.

그럼 철수 혼자 커피타는것보다 시간이 더 오래 걸리겠지.



이렇듯이 멀티코어 프로그래밍은 만능 현자의돌이 아니라 잘못 사용하면 문제가 더 생겨버리는 원자력 같은 놈임.

제작자가 모든 상황을 예측할 순 없으니 버그가 생길 확률은 미친듯이 올라가고 잘못 사용한 순간 성능이 올라가는게 아니라 떨어질정도가 됨

추가로 게임만 문제가 아니라 OS(윈도우)가 멀티코어를 어떻게 운영하는지도 알아야하니 괜히 전문인력 데려와야한다고 하는게 아님.


그리고 멀티코어로 계획된 프로그램이 아니라 싱글코어로 계획된 프로그램을 멀티코어로 바꾸는건 새로 만드는것보다 몇배의 노력이 더 들어감

이런저런 이유들로 인해서 드포 제작자는 멀티코어를 조지는것보다 싱글코어를 효율적으로 조지는게 낫다고 생각한거겠지. 맞는 판단 이기도 하고



여기까지가 왜 사람들이 멀티스레딩(멀티코어)를 지원 하도록 안(못)하는 이유를 간략하게 써봤음.

하지만 모든 고난과 역경을 뚫고 스팀드포가 멀티코어를 지원할 수도 있으니 오늘부터 스팀드포 멀티코어 지원 기원 1일차다.



잘못된부분, 이상한부분 지적 받고 이해 안가는건 댓글 다셈. 나 안자면 대답해드림

추천 비추천

40

고정닉 8

0

댓글 영역

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

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 뒤숭숭한 시국에 기부나 선행으로 모범이 되는 스타는? 운영자 25/01/06 - -
공지 로그라이크 갤러리 이용 안내 [56] 운영자 16.04.08 85989 24
483483 ㅇㄹ) 신앙도는 어캐올림? ㅇㅇ(180.71) 10:46 5 0
483482 왈도 시발롬 [3] ㅇㅇ갤로그로 이동합니다. 10:38 25 0
483481 ㅇㄹ) 여동생 ㅇㅇ갤로그로 이동합니다. 10:37 22 3
483480 ㅇㄹ)양조도 레벨있나? [4] ㅇㅇ갤로그로 이동합니다. 10:35 18 0
483477 ㅇㄹ)주괴는 어캐만듬? [2] ㅇㅇ(180.71) 09:44 38 0
483475 ㅇㄹ)행운스탯 다이스 리롤 적용 범위가 어느정도임? 로갤러(172.225) 09:41 18 0
483472 ㅇㄹ)의외로 양조통 [6] ㅇㅇ갤로그로 이동합니다. 09:21 59 0
483471 ㅇㄹ)겨울된다고 밭에 박아놓은 씨앗 사라지는 건 아니지..? [3] 로갤러(175.192) 09:16 48 0
483465 ㅇㄹ) 지각능력이 크리 올려주는거 알고 있었음? [1] 로갤러(194.114) 08:45 59 0
483463 ㅇㄹ)농부 한명 끌고와서 로갤러(211.234) 08:33 39 0
483461 엘린)냉장고 어느정도 썩는거 막아줌? [3] ㅇㅇ(59.23) 08:28 51 0
483460 ㅇㄹ) 명중률 계산식 보고 온 소감 [4] 로갤러(194.114) 08:24 61 0
483456 ㅇㄹ) 아직까지는 개 초라하네 ㅇㅇ갤로그로 이동합니다. 07:51 51 0
483454 ㅇㄹ) 이 게새끼 뭐임 ㅁㅊ [8] ㅇㅇ(175.213) 07:42 110 1
483451 ㄷㅈ) 새 캐릭 이름 어캐 바꿈?? [2] 로갤러(61.99) 07:25 61 0
483444 ㅇㄹ)전기의 화살 마법서 마법가게에서 팜?? [2] 로갤러(121.163) 05:57 68 0
483442 ㅇㄹ) 소원 설마 한글로 쳐야하는거야? [7] 로갤러(211.168) 05:39 113 0
483439 ㅇㄹ] 실 어케만듦?? [3] ㅇㅇ(211.228) 03:36 59 0
483433 ㅇㄹ) 그 소원 빌때 앞에 뭐 루비너스 아다만타이트 이런것도 붙나? [8] ㅇㅇ(222.234) 02:49 111 0
483432 ㅇㄹ) 소원으로 제일 적합한거 뭐가있음? [7] ㅇㅇ(222.234) 02:48 117 0
483431 ㅇㄹ)뭐냐 아쿠아 마을 정수기 쓰면 랜덤으로 소원주네? [8] ㅇㅇ(222.234) 02:43 117 0
483429 엘린) 느려짐이면 제작도 느려짐? [8] ㅇㅇ(59.23) 02:37 79 0
483427 마갤이었으면 공지로 공략같은것도 모아뒀을라나 [2] ㅇㅇ(121.171) 02:27 88 1
483425 ㅇㄹ) 레시피 얻는거질문좀 [8] ㅇㅇ(222.234) 02:18 86 0
483424 ㅇㄹ) 코르곤 아니면 괜찮은 고기 없음? [8] 로갤러(211.168) 02:11 95 0
483421 ㅇㄹ) 초반에 마법 수급 어캐해? [7] 로갤러(218.237) 02:00 84 0
483420 ㅇㄹ)농사 못하는게 11월부터임? 12월임? [5] ㅇㅇ(59.23) 01:58 70 0
483417 ㅇㄹ) 테크트리가 안올라가는데 어떻게해? [6] ㅇㅇ(59.23) 01:37 100 0
483416 엘린덕에 로갤이 북적이네 [2] 로갤러(211.241) 01:37 108 0
483415 ㅇㄹ)가죽 양산 가능함?? [6] 로갤러(121.162) 01:36 75 0
483414 ㄷㅈ) VpEn^oka 뱀파암살자연재 3 - 거미굴 [3] 로갤러(121.169) 01:32 60 5
483411 ㅇㄹ) 주문서 읽어서 주문배우는데 [6] 로갤러(115.22) 01:13 65 0
483409 ㅇㄹ) 비옥도 패치 전에도 텐트에서 양봉은 안됐음? [6] 로갤러(175.117) 01:06 80 0
483407 ㅇㄹ)농부 영입했는데에.. [14] ㅇㅇ(222.234) 00:54 122 0
483406 ㅇㄹ) 이건 또 뭐야 ㅋㅋㅋ [2] ㅇㅇ갤로그로 이동합니다. 00:52 109 0
483404 ㅇㄹ)도적길드에있는 금으로된거... [4] 3분컷갤로그로 이동합니다. 00:45 90 0
483403 ㄷㅈ) 옘병 [3] 독수갤로그로 이동합니다. 00:39 85 1
483400 동화 가챠 쩌네 ㅇㅇ(222.234) 00:27 50 0
483397 하루에 한 번 웨이시 증오하기 344일차 ㅇㅇ(210.222) 00:02 31 0
483395 엘린) 트롤샌드백이나 존나패야지 [2] ㅇㅇ(59.11) 01.09 102 0
483393 ㅇㄹ)우선 어느정도 씨앗 품질을 존나 올리고 [1] ㅇㅇ(222.234) 01.09 71 0
483391 그래서 로스트랜드는 언제나오냐고시발 [3] Khelerd갤로그로 이동합니다. 01.09 89 1
483390 ㅇㄹ)과일 밖에다 가격표 놓고 팔면 오래되면 상함? [1] Lasshole갤로그로 이동합니다. 01.09 80 0
483389 ㅇㄹ) 확실히 출하 상자로 파는것보다 [7] ㅇㅇ(222.234) 01.09 110 0
483387 엘린은 근접공격이 없는건가요? [4] 코인고수(125.180) 01.09 101 1
483385 ㄷㅈ) ㅅㅂ Undying Armoury 얘 뭐임 대체 [5] 독수갤로그로 이동합니다. 01.09 101 1
483384 ㅇㄹ) 피트로 신앙 16만들어서 기도했는데 [6] ㅇㅇ(180.71) 01.09 107 0
483382 ㅇㄹ) 오늘 생일이야 [1] 로갤러(175.117) 01.09 55 0
483381 ㅇㄹ)more notification 모드 쓰는 사람 있슴? [4] 로갤러(175.192) 01.09 75 0
뉴스 “아들 키운 보람 있네”…샤이니 키, 어머니 퇴임 병원에 5000만 원 기부 (나혼산) 디시트렌드 01.09
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/4