답변:
"병렬 컴퓨팅"과 "분산 컴퓨팅"이라는 용어는 확실히 큰 중복을 갖지만 더 차별화 될 수 있습니다. 실제로, 당신은 이미 "병렬 처리"와 "분산 처리"에 대해 질문함으로써 당신의 질문에 이미 이것을했습니다.
"분산 컴퓨팅"및 "분산 스토리지"를 포함하는보다 일반적인 용어로 "분산 컴퓨팅"을 고려할 수 있습니다. 일반적으로 "분산 된"이라는 용어는 일반적으로 물리적으로 분리 된 시스템간에 네트워크를 통한 일종의 메시지 전달 을 의미합니다 .
용어 "병렬 컴퓨팅"명시 적 용어 "평행"구별에 의해 예를 들어 상기 정의되는 과정에서 또한 "동시"어디 - 약 - 첫 번째 지칭 데이터 병렬 및 행 후자 태스크 병렬 비록을 거기 실제로 엄격하고 구속력있는 정의는 거의 없습니다.
그래서 말할 수 있습니다
지금까지 제시된 답변은 매우 훌륭하지만 병렬 처리와 분산 처리의 특정 차이점, 즉 코드 실행에 중점을 두었습니다. 병렬 프로세스를 고려하면 병렬 처리 수준 (명령, 데이터, 작업)에 관계없이 실행 된 코드는 동일합니다. 단일 코드를 작성하면 행렬 제품을 계산하거나 순열을 생성하는 등 다른 스레드 / 프로세서에 의해 실행됩니다.
반면에 분산 컴퓨팅은 다른 프로세서 (하나 이상의 머신에서)에서 다른 알고리즘 / 프로그램을 동시에 실행하는 것을 포함합니다. 이러한 계산은 나중에 이용 가능한 데이터 통신 / 동기화 수단 (공유 메모리, 네트워크)을 사용하여 중간 / 최종 결과로 병합됩니다. 또한 분산 컴퓨팅은 디스크 병렬 처리 (대개 큰 데이터베이스의 병목 현상)를 이용할 수 있으므로 BigData 처리에 매우 매력적입니다.
마지막으로 병렬 처리 수준의 경우 동기화에 대한 제약 조건으로 간주 될 수 있습니다. 예를 들어, SIMD (Single-instruction Multiple-Data) 인 GPGPU에서, 병렬화는 단일 명령에 대해 서로 다른 입력을 가짐으로써 발생하며, 각 쌍 (data_i, 명령) 은 다른 스레드에 의해 실행됩니다. 분기 분기의 경우 스레드가 다시 수렴 될 때까지 불필요한 계산을 많이 버려야합니다. 그러나 CPU 스레드의 경우 일반적으로 분기됩니다. 그러나 동기화 구조를 사용하여 코드의 특정 섹션을 동시에 실행할 수 있습니다.