분산 프로그래밍이란 무엇입니까?

분산 프로그래밍은 병렬 프로그래밍 또는 병렬 컴퓨팅의 한 형태입니다. 병렬 프로그래밍에는 내일 날씨 예측과 같은 특정 문제에 대해 동시에 작업하는 컴퓨터 내의 컴퓨터와 컴퓨터가 포함됩니다. 컴퓨팅 유닛은 매우 밀접하게 위치 및 조정될 수 있거나 이격 될 수있다. 컴퓨팅 유닛이 분리 된 경우이를 분산 프로그래밍이라고합니다. 이러한 시나리오에서 종종 컴퓨팅 장치가 서로 다르고 운영 체제와 네트워크 설정도 다르기 때문에 컴퓨팅 활동의 프로그래밍이 특히 어렵습니다.

분산 방식으로 문제를 해결할 때 프로그램의 일부가 다른 컴퓨팅 장치에서 실행될 수 있도록 프로그램을 분할해야합니다. 이러한 부분을 종종 "프로세스"라고합니다. 프로세스는 동시에 실행되지만 입력 및 결과를 서로 통신해야합니다. 프로세스가 Intel에서 실행되는 부분과 SUN에서 실행되는 부분과 같은 다른 하드웨어에서 실행중인 경우 프로그램을 다르게 컴파일하고 최적화해야합니다.

충분히 어려운 문제를 해결하는 한 가지 방법은 입력 부분을 분리하고 동일한 알고리즘, 문제 해결을위한 일련의 규칙 또는 단계를 사용하여 다른 컴퓨팅 장치가 다른 부분에서 작동하도록하는 것입니다. 예를 들어, 10,000 쌍의 게놈을 크래킹하기 위해, 첫 번째 1,000 쌍은 제 1 컴퓨팅 유닛에 할당 될 수 있고, 두 번째 1,000 쌍은 모두 동일한 알고리즘을 사용하여 할당 될 수있다. 분산 프로그래밍을 사용하면 한 가지 장점은 서로 다른 컴퓨팅 장치가 동일한 알고리즘을 실행하여 동일한 문제를 해결할 수있어 훨씬 더 나은 솔루션을 얻을 수 있다는 것입니다. 이것은 어떤 사람들은 국경을 연결하는 지그 소 퍼즐을 해결하는 반면 다른 사람들은 특정 색상의 조각을 모으는 것과 비슷합니다.

분산 컴퓨팅 프로세스의 조정은 특히 어려운 작업 일 수 있습니다. 일부 컴퓨팅 장치는 다른 작업을 처리하기 위해 실패하거나 중단 될 수 있습니다. 입력 또는 계산 결과를 포함하는 메시지가 대상에 도달하지 못할 수 있습니다. 프로그램이 순진한 방식으로 작성된 경우 컴퓨팅 장치 또는 일부 메시지가 손실되면 전체 컴퓨터 집합이 중단 될 수 있습니다.

분산 프로그래밍에서 한 프로세스는 제어 프로세스 일 수 있으며 본질적으로 다른 프로세스에서 작업을 수행하거나 모든 프로세스가 "마스터"프로세스가 아닌 피어 투 피어 방식으로 작동 할 수 있습니다. 분산 프로그래밍으로 시도 된 문제의 일부 예는 석유, 단백질 및 생물학적 분자의 모델링, 코딩 된 메시지의 크래킹 및 군사 시뮬레이션과 같은 자원에 대한 지질 데이터 분석을 포함합니다. 지구가 수신 한 무선 메시지에서 지능형 외계 생명체를 검색하는 SETI 프로젝트는 아마도 가장 잘 알려진 예 중 하나 일 것입니다.

다른 언어

이 문서가 도움이 되었나요? 피드백 감사드립니다 피드백 감사드립니다

어떻게 도와 드릴까요? 어떻게 도와 드릴까요?