2 대의 컴퓨터의 처리 능력을 결합 할 수 있습니까?


14

여기 몇 가지 질문이 있습니다. 깨달을 수 있기를 바랍니다.

  1. 2 대의 컴퓨터의 처리 능력을 결합 할 수 있습니까?
  2. 어떻게합니까?

7
1) 물론입니다. 2) 엄청난 어려움이 있습니다.
Daniel R은

답변:


11

CPU가 서로 통신하거나 서로의 메모리에 액세스 할 수있는 방법이 없어 논리적으로 분리되어 있기 때문에 실행중인 프로그램이 코드를 실행하기 위해 두 번째 시스템을 사용할 수있는 곳은 투명하지 않습니다.

그렇다고 처리 능력을 결합 할 수 없다는 의미는 아닙니다.

  1. 특정 소프트웨어에는 단백질 폴딩, SETI @ 홈과 같은 다른 기계에서 실행할 수있는 구성 요소가있을 수 있습니다. 이들은 특화된 경향이 있습니다. 즉, Excel을 시작하고 다른 컴퓨터를 사용하여 계산하도록 지시 할 수 없습니다.
  2. 프로세서 집약적 인 작업을 수행하는 경우 보조 시스템을 사용하여 비디오 스트림 인코딩 / 레코딩 등의 작업을 실행할 수 있습니다.

어떤 식 으로든 보조 컴퓨터를 활용하려는 경우 원격으로 제어 할 수 있어야합니다. 이를 수행하는 두 가지 방법은 일종의 원격 액세스 (RDP, VNC) 또는 다른 방법으로 시너지 +를 이용하는 것입니다.


1
예를 들어 랩톱에 4GB의 RAM이 있고 PC에 4GB의 RAM이 있는데 RDP를 통해 8GB의 RAM으로 가상 프로그램을 실행할 수 있습니까?
TGamer

5

가장 많이 사용되는 줄 중 하나-예 및 아니요!

그렇습니다. 이런 식으로 작동하도록 설계된 특정 응용 프로그램의 경우 가능합니다. (일반적으로 클러스터라고 함- 자세한 내용은 여기를 참조 하십시오 )

선반 컴퓨터에서 두 대를 분리하여 서로 묶어서 메모리, 처리 능력 및 기타 모든 것을 얻을 수는 없습니다 (적어도 내가 아는 한).


1
@ ~ quack 예, 특정 응용 프로그램에 대해 말했습니다 ... 질문에 Windows-7 태그가 지정되었으므로, 그는 매일 선반 프로그램이있는 컴퓨터를 의미한다고 가정했습니다 .... 어쨌든-Beowulf 클러스터는 필요하지 않습니다. 특별히 작성된 응용 프로그램? ... 나는 전문가가 아니며, 한 번도 사용하지는 않았지만 beowulf.org/overview/index.html (특히 마지막 두 단락)을 빠르게 읽습니다.
William Hilsum

죄송합니다. 다시 읽은 후 이전 의견을 삭제했으며 이미 클러스터링 개념에 연결되어 있음을 확인했습니다. 베오 울프는 상용 구성 요소를 중심으로 설계되었으며 여러 시스템을 함께 "연결"하는 한 가지 방법이지만, 특별히 설계되지 않은 프로그램에는 적합하지 않습니다.
quck quixote

4

매우 가능합니다! 그러나 귀하의 질문의 단순성으로 판단하면 컴퓨터를 마술처럼 두 배 빠르게 만드는 프로그램을 간단하게 실행하고 싶다고 가정합니다.

프로그램이 실행될 때 HDD, RAM 및 CPU 레지스터 사이에서 메모리를 이동하고 다양한 구성 요소 (예 : 비디오 카드 또는 네트워크 카드)의 주소로 메모리를 이동하도록 CPU를 자극하여 상태를 유지한다는 것을 이해해야합니다. 다른 컴퓨터에서 CPU를 사용하는 데 도움이되는 문제는 동일한 메모리에 액세스해야한다는 것입니다. 다른 컴퓨터에서 컴퓨터 메모리의 미러 이미지를 유지 관리하려면 너무 많은 오버 헤드가 필요하므로 성능을 얻기 위해 다른 컴퓨터를 추가하려는 시도를 쉽게 무시할 수 있습니다. :)

그러나 여러 컴퓨터로 나눌 수있는 유형은 이미지 렌더링 또는 독립적으로 작동 할 수있는 수학적 계산입니다.


3

두 PC의 처리 성능을 하나로 결합하는 방법 인 경우 가장 쉬운 방법은 VMWare ESXi와 같은 소프트웨어를 사용하여 두 시스템을 가상 시스템 호스트로 구성하는 것입니다 (예 : 장치가 호환 가능한 하드웨어를 사용하고 자원 그룹 또는 클러스터를 작성하고 두 컴퓨터의 자원을 사용하는 가상 머신을 작성합니다. 이것은 완전한 2 배속 (가상화로 인해 리소스가 손실 됨)을 얻지 못하고 호환성 요구 사항으로 인해 제한적인 솔루션이지만 질문에 대한 "올바른"답변입니다. 가상 머신은 두 호스트의 처리 능력에서 가상화 유지에 필요한 오버 헤드를 뺀 단일 PC처럼 작동합니다.


호스트 간의 통신이 병목이 될까봐 두렵습니다.
gronostaj

1
예, 호스트 간의 통신에 병목 현상이 발생할 수 있습니다. 이는 오버 헤드의 일부입니다. 기가비트가 아닌 네트워크가 이의 주요 원인이 될 수 있지만, 저렴하고 많은 기가비트 가용성을 고려할 때 이것이 특히 불이익을 받고 있다고 생각하지 않습니다. 그러나 이는 모든 네트워크 분산 처리에 적용되며 VM은 원격 분산 호출 및 네트워크 분산 컴퓨팅 전용 (사용자 정의 작성 방식) 전용 사용자 지정 작성 응용 프로그램보다 훨씬 적은 복잡성을 가진 훨씬 더 유용한 시나리오입니다.
George Spiceland

2

다른 답변에 동의합니다.

  • 거대한 다중 시트 Excel 통합 문서가 있고 Excel을 두 배 빠르게 실행하려면 (공식 및 시나리오 업데이트, 매크로 실행 등) 운이 좋지 않습니다.
  • 1에서 1,000,000까지 모든 정수의 제곱근을 찾는 것과 같이 쉽게 분할되는 사용자 지정 응용 프로그램이있는 경우 문제를 여러 조각으로 나누고 배포하는 것이 쉬워야합니다.
  • π (pi)의 처음 1,000,000 자리를 계산하는 것과 같은 사용자 지정 응용 프로그램이있는 경우 문제 공간을 충분히 이해하면 처리 할 수 ​​있습니다.

분산 (다중 컴퓨터) 환경에서 실행할 소프트웨어 개발에 대해 이야기하는 경우 몇 가지 제안 사항이 있습니다.

  • 원격 프로 시저 호출 (RPC)을 사용하십시오 . 호스트를 파일 서버 또는 웹 서버로 만들 수있는 것처럼 RPC를 사용하면 컴퓨터, 본질적으로 CPU 서버를 만들 수 있습니다. 개념적으로 RPC 클라이언트가 될 하나의 마스터 시스템이 있으며 서버에서 투명하게 실행될 라이브러리 함수를 호출합니다. 가장 간단한 형태로,이 아키텍처는 하나의 CPU 만 즉시 실행되므로 성능상의 이점을 제공하지 않습니다. 그러나 비동기 모델에서 클라이언트는 서버에서 원격 프로 시저를 시작한 다음 서버가 실행되는 동안 다른 작업을 수행 할 수 있습니다.
  • UPC (Unified Parallel C) 와 같은 병렬 처리 용으로 설계된 언어를 사용하십시오 . 이는 분산 데이터 및 동시 실행 기능을 갖춘 C 언어의 확장입니다. 참고 문헌 :
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.