- 프로세서 처리 속도의 한계
실리콘 칩 상에서 전자 흐름의 최대 속도는 빛의 속도의 1/10배
칩들로 구성되는 컴퓨터의 속도는 이론 상 한계 있음
- 병렬 처리
다수의 프로세서들을 이용하여 여러 프로그램들을 분담하여 동시에 처리하는 기술
반도체 소자의 물리적인 특성에 의한 프로세서 속도 상의 한계 극복할 수 있게 해줌
- 조건
많은 수의 프로세서들로 하나의 시스템 구성할 수 있도록 작고 저렴하며 고속인 프로세서들의 사용이 가능해야 함
한 프로그램을 여러개의 작은 부분들로 분할하는 것이 가능해야 하며 분할된 부분들을 병렬로 처리한 결과가 전체 프로그램을 순차적으로 처리한 경우와 동일한 결과 얻을 수 있어야 함
- 문제와 해결
프로세서 문제는 반도체 기술 발전과 VSLI 의 집적도가 크게 증가함으로써 만족되고 있음
프로그램 분리는 문제 분할과 프로세서간 통신이 해결되어야 함
- 문제 분할
병렬처리를 위하여 하나의 문제를 여러 개로 나누는 작업
프로그램의 순차적 처리 필요성 때문에 근본적으로 불가능 할 수 있음
프로그램을 프로세서의 수마큼 분할할 수 업석나 균등한 크기로 분할 할 수 없는 경우에 프로세서의 이용률이 낮아져 성능 향상 낮을 수 있기 때문에 중요함
순차적으로 처리해야 하는 부분 최소하할 수 있는 병렬 알고리즘 개발 필요
- 프로세서간 통신
프로세서들이 서로 필요한 데이터를 교환하기 위한 통신
하나의 프로그램이 여러 개의 작은 부분들로 나눠져 서로 다른 프로세서들에 의해 처리되는 경우 프로세서들 간의 데이터 교환 필요
- 그 외
알고리즘의 병렬성을 표현해줄 수 있는 병렬 프로그램 언어와 컴파일러, 프로세서들이 각종 하드웨어 자원들을 공유할 수 있도록 하는 상호 배타 메커니즘, 경합을 줄이고 이용률을 극대화 할 수 있도록하는 운영체제 등 필요함