응용 프로그램 인스턴스가 여러 컴퓨터에서 실행되는 시나리오가 있습니까?

StackOverflow https://stackoverflow.com/questions/439714

문제

단일 응용 프로그램 인스턴스는 여러 코어 및 여러 물리적 프로세서를 사용할 수 있음을 알고 있습니다. 클라우드 및 클러스터 컴퓨팅 또는 기타 특수 시나리오를 사용하면 단일 자세가 여러 컴퓨터 또는 여러 OS 인스턴스에서 실행될 수 있는지 모르겠습니다.

이것은 나쁜 프로그래밍으로 간주되는 것 외에도 정적을 사용하기 때문에 나에게 중요합니다. (C#에서와 같이) (글로벌) 변수와 내 프로그램은 해당 변수가 컴퓨터간에 공유되면 예상치 못한 동작을 가질 것입니다.

업데이트 더 구체적으로 할 것입니다. 저는 .NET 응용 프로그램을 작성하고 있습니다. 클라우드 컴퓨팅 호스트에 해당 응용 프로그램을 배포하는 것이 걱정됩니다. 컴퓨터 당 변수의 한 인스턴스가있는 경우.

도움이 되었습니까?

해결책

그러한 시나리오 (여러 컴퓨터의 단일 인스턴스)를 실현하는 방법을 배우려면 몇 가지 기사를 읽어야한다고 생각합니다. MPI.

그것은 A가되었습니다 사실상 분산 메모리 시스템에서 실행되는 병렬 프로그램을 모델링하는 프로세스 간의 통신 표준.

당신의 걱정과 관련하여 : 분명히, 당신은 여러 컴퓨터에서 하나의 인스턴스로 실행되도록 프로그램을 의식적으로 변경해야합니다. 그렇지 않으면, 물론 공유는 일어나지 않으며 수줍은 글을 씁니다, 걱정할 것이 없습니다. 이런 종류의 일은 자동으로 일어나지 않을 것입니다.

다른 팁

어떤 프로그래밍 환경 (언어)을 사용하고 있습니까? "정적"의 의미를 정확하게 정의해야합니다. 아마도 MPI 또는 RPC와 같은 명백한 채널을 제외하고는 다른 컴퓨터간에 정보를 공유 할 수 없을 것입니다.

그러나 추상화 된 고급 환경은 "여러 컴퓨터에서 실행"이라는 개념을 완전히 숨기도록 설계 될 수 있습니다. 클러스터에서 실행할 수 있고 실제로 다른 물리적 시스템간에 정적 변수를 공유 할 수있는 가상 머신을 설계 할 수 있지만이 경우 프로그램이 단일 가상 머신에서 실행되며 하나 이상의 실제 시스템에서 실행되는지 여부 아무런 차이가 없습니다.

이런 일이 일어나는 상황을 상상조차 할 수 없다면 왜 그것에 대해 걱정하고 있습니까?

일반적으로 이것은 어떤 종류의 RPC와 관련된 시나리오에서 발생할 수 있습니다.

그래, distcc가있다. GCC 컴파일러가 배포되었습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top