본문 바로가기

CS/멀티코어 컴퓨팅

(5)
멀티코어 컴퓨팅 - Introduce Moore's Law : Doubling of the number of transistors on integrated circuits roughly every two years Clock Speed is not. Currently, CPU clock speed is not increasing rapidly becuase power comsumption and heat genaration is too high to be tolerated in high clock speed CMP : Chip MutiProcessor SMP : Symmetric MultiProcessor Amdahl's law : Potential program speedup is defined by the fraction of code ..
멀티코어 컴퓨팅 - Important Concepts in Concurrent Programming Concurrency / Parallelism : logically / Physically simutaneius processing 동시성/병렬성: 논리적/물리적으로 동시에 처리되는 것 Sychronization: coordication of simutaneous events(thread/ processes) in order to obtain correct runtime order and avoid unexpected race condition. 동기화: 올바른 실행 순서를 얻고 예기치 않은 경쟁 상태를 피하기 위해 동시적 이벤트(스레드/프로세스)를 조정하는 것 Mutual Exclusion : ensuring that no two processes or threads are in their critic..
멀티코어 컴퓨팅 - JAVA Thread Programming Thread 정의 - 프로그램 내에서 단일 순차적 흐름을 나타냄 - 스레드는 프로그램의 프로세스 내에서 실행되며 해당 프로세느와 환경에 할당된 자원을 활용합니다. 각 스레드의 구성요소 - Program counter - Register set - Stack 스레드간의 공유 Code section Data section OS resources such as open files 멀티 프로세스 vs 멀티 스레드 Process - 자식 프로세스는 부모의 프로세스를 동일하게 카피 - 상대적으로 비쌈 - 그러나 동시성을 고려하지 않아도됨 개꿀! thread - 자식과 부모는 자원을 공유함 - 상대적으로 쌈 - 동시성을 고려해야함 어려움 자바의 스레드 모델 자바는 내장 스레드를 가지고 있다. 응용 프로그램은 적어도 ..
멀티코어 컴퓨팅 - Performance of Parallel Programs Creating a Parallel Program 1. Decomposition - Decomposition 이란 작업물을 분할하는 것이다. 1~ 100 까지 숫자를 연산해야한다고 하면 1~ 10까지 11~20까지 등으로 작업물을 나누는 것이다. 이러한 작업물을 나누는 대는 두가지 방법이 있다. BLOCK : 쓰레드의 개수만큼 크게크게 나눈다. CYCLIC : 잘개 나누고 쓰레드에 할당한다. BLOCK을 사용하면 크게 나누지 않아 오버헤드가 적지만 로드밸런싱이 좋지 않고 CYCLIC은 로드밸런싱은 좋지만 오버헤드가 많다. 상황에 따라 다르지만 CYCLIC이 효과가 좋을 때가 많다. 이를 Domain Decomposition 이라한다. Functional Decomposition은 작업 유형에 따라 나누는..
멀티코어 컴퓨팅 - Create a Parallel Program 멀티코어 컴퓨팅의 궁극적 목표는 결국 Better Perfomence 를 내는 것이다. 이름과 마찬가지로 a + b c + e 위 코드를 병렬 컴퓨팅 처리해서 한번에 계산하면 연산 속도는 2배 빠를 것이다. 1. Decomposition 처리할 작업을 분류한다. A라는 거대한 작업이 있다면 이를 a b c d로 분류하는 것이다. 이 때 a b c d중 어떤 작업을 병렬처리할 수 있는지도 분류하는데 이때 병렬처리 가능한 부분이 클 수록 성능개선치가 높아진다. - Amdahl's Law 성능 개선치 예상 공식 이때, 프로세서가 2억개 있어도 순차처리가능 부분은 무조건 25초가 걸린다. 그러나 병렬처리가 가능한 부분은 거의 0초로 줄일 수 있다. Speed Up = old running time / new r..