디시인사이드 갤러리

최근 방문

NEW

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

갤러리 본문 영역

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

제라스(209.205) 2020.04.28 17:14:18
조회 4029 추천 41 댓글 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일차다.



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

추천 비추천

41

고정닉 8

0

댓글 영역

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

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 어떤 상황이 와도 가족 안 굶길 것 같은 생활력 강해 보이는 스타는? 운영자 25/03/24 - -
AD 트릭컬 1.5th Anniv 신규 교주님 절찬 모집 중 운영자 25/03/20 - -
공지 로그라이크 갤러리 이용 안내 [56] 운영자 16.04.08 88306 24
493394 ㄷㅈ) 2렙 데몬스폰 장검맨의 도마뱀과의 목숨을 건 혈투 [2] 로갤러(175.193) 10:01 18 1
493393 블링크 아무쓸모없는거같음 [2] xom(122.38) 09:51 19 1
493392 돌죽 투척 뭔가 미묘한데 [5] ㅁㄴㅇㄹ(211.180) 09:41 17 0
493391 4층 펄용갑 개꿀ㅋㅋ [1] 일십백갤로그로 이동합니다. 09:06 25 1
493390 ㄷㅈ) 고양이(시체)가 복사가 된다구!!! 로갤러(58.77) 08:20 34 0
493389 ㄷㅈ) 퀵블 vs 스프리건 단검 [2] 로갤러(210.103) 04:57 76 1
493388 무기 뭐가 나음? [5] ㅇㅇ갤로그로 이동합니다. 04:02 70 0
493385 ㅌㅈ) 파포탈 원래 갔던맵 계속 다시나옴? 로갤러(27.35) 02:37 29 0
493384 조베죽 복구 완료 [8] ASCIIPhilia갤로그로 이동합니다. 01:54 123 14
493383 ㅇㄹ)골드벨 완성했는데 조합 이거 맞음? [1] ㅇㅇ갤로그로 이동합니다. 01:43 74 1
493382 ㄷㅈ) 이건 계시야.. [5] 로갤러(210.103) 00:43 98 1
493381 록붕 님들 엘린 신기해보이는데 입문해볼까요 [2] 구미호s갤로그로 이동합니다. 03.26 72 0
493380 츄럴광전사 변이술 [3] ㅇㅇ갤로그로 이동합니다. 03.26 66 0
493379 ㄷㅈ) 누가 이번 토너 챌린지 방송하고있네 [1] 로갤러(175.193) 03.26 72 0
493378 ㅇㄹ)천벌중에 공물주면 안오르나? [9] 로갤러(218.237) 03.26 80 0
493377 ㅇㄹ) 농사스킬을 빠르게 올리려면 어떻게 해야하나요? [5] 로갤러(125.128) 03.26 88 0
493376 헤플은 기도술 안올림? [4] ㅇㅇ갤로그로 이동합니다. 03.26 79 1
493375 ㅇㄹ) 마을에만 가면 동료들이 NPC들 죽임... [3] 로갤러(180.71) 03.26 108 0
493373 ㅇㄹ) 모드중에 디스플레이 확장 키니까 생성창 스탯이 안보임 [5] ㅇㅇ(222.113) 03.26 103 0
493372 ㄷㅈ] 시작할때 자동으로 스킬창 뜨도록 하는 RC 어캐설정함?? [2] ㅇㅇ(45.94) 03.26 67 0
493371 아니 대체 돌죽 서버 언제 열리는데 [4] ㅇㅇ(222.112) 03.26 175 5
493370 돌죽 캐릭터씰 들어있는 돌죽빵은 안나오나? [10] ㅇㅇ(119.197) 03.26 143 0
493368 이게 생각없는 오탭질의 결과구나 [6] ㅁㄴㅇㄹ(211.180) 03.26 154 0
493367 톰죽 뉴비 올인원 공략글이나 간단한 팁 줄 사람 있니 [7] 모야니갤로그로 이동합니다. 03.26 93 0
493366 호주죽 렉이 왤케 심하지 ㅇㅇ(211.109) 03.26 50 1
493365 ADHD환자는 돌죽이 어렵다... [16] 로갤러(118.36) 03.26 231 0
493364 ㄷㅈ) 초반에 떨어진 노강 무기중에 뭐가 제일 좋음? [6] 로갤러(39.116) 03.26 95 0
493363 산불 난리났네 아주 [4] xom(122.38) 03.26 158 2
493362 돌죽 타워쉴드는 카이트 쉴드 보다 항상 좋은 거임? [6] ㅁㄴㅇㄹ(211.180) 03.26 102 0
493361 요즘 돌죽이 어렵다고 느낀다면 [4] 모야니갤로그로 이동합니다. 03.26 137 2
493360 돌죽 좀 권능 "쾌 락" 내줄때 됐다. [2] ㅇㅇ(118.235) 03.26 101 1
493359 예전에 리젠마법 하나가 엘리빌론보다 성능 좋다고 들었는데 [5] 로갤러(168.131) 03.26 98 0
493358 시발 점검 언제끝나 시발 로갤러(211.36) 03.26 49 0
493357 점검 언제까지임? 로갤러(123.248) 03.26 45 0
493355 돌죽 고자그 권능 "신체 개조" 내줄때 됐다 ㅇㅇ(110.70) 03.26 61 0
493354 신기한 지형 많네 [1] xom(122.38) 03.26 76 0
493353 소담한 만신전이군 [5] xom(122.38) 03.26 129 3
493352 ㄷㅈ) pbd에 mana shield 붙은 데몬스폰 진짜 좋네 ㅋㅋ 로갤러(175.193) 03.26 63 0
493351 돌죽)최근 무기들간 밸런스는 나쁘지않은 것같음. [3] 와그너스갤로그로 이동합니다. 03.26 128 0
493350 안일사 2번하고 겜 계속 조정중... 머방이갤로그로 이동합니다. 03.26 44 0
493349 ???: 설마 하는사람 별로없는겜 만화를 AI가 그리겠... [3] ㅇㅇ갤로그로 이동합니다. 03.26 184 1
493348 간단 설문참여 구글기프트 3만원(추첨) 드립니다. 많은 참여 부탁! 로갤러(110.10) 03.26 28 0
493346 ㄷㅈ) 방패페널티 계산식 너무 어려운데 [2] ㅇㅇ(211.114) 03.26 97 1
493345 돌죽 코로드 슬로우 볼때마다 기분 나빠져 [2] ㅁㄴㅇㄹ(211.180) 03.26 97 0
493344 초보자는 돌죽이 좆같다 [8] xom(122.38) 03.26 200 1
493343 웹죽아 살아나줘.. 로갤러(123.140) 03.26 61 1
493342 ㄷㅈ)요즘 무기취급이 어떰? [5] ㅇㅇ갤로그로 이동합니다. 03.26 134 0
493339 1층부터 진짜 ㅈ같은 지형 많네 [2] xom(122.38) 03.26 113 0
493335 핸드캐논 데미갓하면 [11] ㅇㅇ갤로그로 이동합니다. 03.26 167 0
뉴스 ‘전국노래자랑’, 산불 여파... “광주 북구 녹화 잠정 연기” [공식] 디시트렌드 03.26
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2