멀티코어 활용할 방법이 정말 멀티스레딩 뿐이라고?

예전에 `Multicore의 concurrency를 위해선 멀티스레딩 뿐인가?” 라는 글을 썼다. OpenMP나 tbb, 혹은 MS의 Parallel Patterns Library 모두 일을 더 쉽게 만들어주는게 아니다. 그네들은 병렬 프로그래밍을 쉽게해주는 기능을 제공해 주긴 한다. 하지만 당연히 싱글스레드 프로그래밍보다 어렵다. 즉, 원래 목표여야 하는 “병렬 하드웨어 활용을 쉽게해주는 것”이 아니다. 이 툴들의 목적은 현재 단일 스레드로 작성한 프로그램을 , 어떻게 멀티스레드 프로그램으로 […]

병목은 어디에?

2월 말부터 시작해서, 게임 리소스를 네트워크 너머로 배포하는 유틸리티를 작성하고 있다. C# 공부를 겸해서(…) 틈틈이 짜고 있는데, 요 며칠간은 어떤 골치거리 에 매여있는 터라[1] 주로 성능 평가만 했는데, 병목현상이 생기는 곳이 좀 예상치 못한 곳이더라. 개념적으로 보내는 쪽(이하 S), 받는 쪽(이하 R) 두 개의 entity로 구성되며, 대략 다음과 같이 동작한다 S에서 보낼 디렉터리 전체의 요약 […]