바로가기 메뉴
메인 메뉴로 바로가기
본문으로 바로가기

프로그램

  • DAY 2(SDEC)
    10.15(화)
  • TRACK 4
    다양한주제
  • 세션 2
    11:00 ~ 11:45

전체 시간표 보기

임시이미지

정내훈
한국산업기술대학교

멀티쓰레드 프로그래밍이 왜이리 힘드나요 북마크

멀티쓰레드 프로그래밍의 필요성을 대부분의 게임개발자가 느끼고 있다. 하지만 멀티쓰레드로 프로그래밍을 하면 결과는 알 수 없는 버그 투성이가 되고 간신히 디버깅에 성공해도 성능은 오히려 더 떨어지는 현상을 만나게 된다. 이런 현상의 원인은 일반 프로그래머가 쉽게 파악하고 이해할 수 있는 것이 아니다.
여기서는 멀티쓰레드 프로그래밍 시 만날 수 있는 모든 이상현상을 분석하고 그 해결책을 제시한다. 아울러, 멀티쓰레드 프로그램의 성능향상의 필수로 거론되고 있는 Lock-Free프로그래밍에 대해 알아보고 그 구현 방법과 성능을 예제를 통해 살펴보도록 한다.
이와 함께, 기존 게임 서버와 게임 엔진의 멀티쓰레드 구현 구조에 대해 이야기하고, 성능 저하의 주범인 Blocking Programming의 폐해와 그 대안인 Non-blocking Programming에 대해 알아본다. 가장 널리 쓰이는 non-blocking 구현방법인 Lock-Free 프로그래밍에 대한 알기 쉬운 설명과 함께 실제 MMOG서버를 구현했을 때의 성능 향상 결과를 공유한다. 또한, 멀티쓰레드 프로그래밍의 새로운 대안인 Hardware Transactional Memory에 대해 살펴보고 실제 Intel Haswell 프로세서 상에서의 성능 향상을 보여준다.

발표자 소개
한국과학기술원 전산학과 박사, 컴퓨터 구조 전공

2002년 ~ 2008년 NCSOFT
- Lineage Forever 프로그래머
- Alterlife 프로그램팀장
- ProjectM 프로그램팀장
- CTO직속 게임기술연구그룹

2008 ~ 현재
- 한국산업기술대학교 게임공학과 교수
강의대상