반응형 멀티코어CPU3 [멀티코어CPU] 09. 병렬 프로그래밍 & 하이젠 버그 - 원자적 연산 (atomic operation) : 원자 연산 → 더 이상 나눠지지 않는 연산 : DataRace 문제 발생할 수 있음 → 두 개 이상의 스레드가 공유 자원을 놓고 서로 경제적으로 값을 읽고 써서 발생함 : 원자 연산이 되도록 처리해주어야 함 뮤텍스(mutex) 세마포어(semaphore) 어떤 코드 영역이나 데이터의 배타적 접근 (상호배제)을 보장하는 객체 Critical section 또는 lock이라고도 부름 세마포어는 최대 n명이 공유 자원을 동시에 접근 가능하게 하고 나머지 객체는 한 번에 한 명만 공유 자원에 접근 가능함 조건 변수(conditional variable) 이벤트(event) 한 스레드가 어떤 조건이 만족되거나 신호가 올 때까지 잠자도록 함. 다른 스레드가 이 .. 2024. 4. 11. [멀티코어CPU] 04. 명령어 파이프라인 & 비순차 실행 정내훈 교수님이 추천한 책 「 프로그래머가 몰랐던 멀티코어 CPU 이야기」 - 김민장 지음 위의 책을 토대로 공부한 내용이 작성되었음 - 파이프라인(pipeline) : 작업을 여러 개로 나누고 세부 단계가 서로 동시에 실행할 수 있음 : 연속으로 주어지는 작업을 처리하는 데 있어 처리율을 높이는 일반적인 알고리즘 (레이턴시 개선 X) : 핵심 → 재사용 / 병렬 실행 : 이상적인 처리율 증가는 파이프 라인 단계 수만큼 임 → 아래의 4가지 조건을 만족해야 함 1) 균등한 파이프 라인 단계 (각 단계는 균등한 길이로 나뉨) 2) 같은 작업 (항상 같은 작업만 수행함) 3) 독립적인 작업 (투입되는 작업은 서로 의존 관계 X) 4) 파이프 라인 유지 비용 최소화 (최적의 파이프 라인 깊이 찾아야 함) : .. 2024. 3. 31. [01주차B] 멀티코어 HW & 멀티쓰레드프로그래밍 시작 - 멀티쓰레드 사용 목적 => 병렬 컴퓨터에서의 프로그램 성능 향상 : 멀티 코어 CPU에서의 프로그램 성능 향상 : 멀티 CPU 컴퓨터에서의 프로그램 성능 향상 : 분산 컴퓨터, 싱글 코어 환경에서의 성능 향상 X, 모듈화해서 쉽게 알아보기 X - 멀티코어 CPU : 한 개 이상의 코어로 구성된 CPU : 현재 싱글 코어 CPU는 없다고 봐도 무방 : 코어 = ALU + Register + CU + Cache ⇒ 그냥 CPU와 같음 : 멀티코어 CPU ⇒ 하나의 칩에 여러 개의 프로세서를 포장해 넣음 ( 프로그래머 입장 : 멀티 프로세서와 같음) : 6 Core(Quad Core) 대세 : 앞으로 더욱 많은 Core 사용하게 될 것 -> 기존 프로그램을 Du.. 2024. 3. 28. 이전 1 다음 728x90 반응형