네트워킹에서 파일 (디스크 드라이버) 또는 데이터베이스를 공유합니다. 그러나 네트워크를 통해 어떻게 CPU 또는 RAM을 공유 할 수 있습니까?
네트워킹에서 파일 (디스크 드라이버) 또는 데이터베이스를 공유합니다. 그러나 네트워크를 통해 어떻게 CPU 또는 RAM을 공유 할 수 있습니까?
답변:
이렇게하려면 CPU / RAM 리소스에 액세스하는 프로그램이 해당 리소스에 액세스하도록 특별히 설계되어야합니다. 이러한 방식으로 설정된 시스템을 클러스터라고하며 리소스를 공유하는 일반적인 방법은 MPI (메시지 전달 인터페이스)라는 프로토콜을 사용하는 것입니다. 무료로 다운로드 할 수 있으며 Linux와 함께 사용하면 최소한의 비용으로 강력한 클러스터 (아마도 슈퍼 컴퓨터 일 수도 있음)를 얻을 수 있지만 MPI를 활용하도록 특별히 설계된 프로그램이 없으면 다시 쓸모가 없습니다. 좋은 클러스터 튜토리얼이 있습니다. 그래도 관심이 있으시면 확인하십시오.
편집하다:
클러스터를 설정하려면 여기 에서 자습서를 권장 합니다. 약 1 년 전에이 튜토리얼을 따라 클러스터를 만들었고 꽤 잘 작동했습니다. 튜토리얼은 약간 오래되었으므로 일부 파일은 튜토리얼이 말한 위치가 아닐 수도 있습니다 (때로는 파일이 다른 / 최신 Linux 배포판에서 이동하는 경우가 있습니다). Linux에 익숙하지 않은 경우 문제가되지 않습니다. 이 자습서는 이전 버전의 MPI를 사용하지만 최신 버전을 사용 했으며 쉽게 해결할 수없는 문제는 없었습니다. 현재하고있는 일에 따라 실제로 MPI를 활용할 수있는 프로그램이있을 수 있습니다. 범용 소스에서 다운로드 할 수있는 MPI를 활용하는 비디오 인코딩 및 숫자 처리 프로그램이 있다는 것을 알고 있습니다.
RAM 디스크를 사용하여 RAM을 공유 할 수 있지만 다른 컴퓨터의 RAM에있는 것을 제외하고는 일반 디스크를 공유하는 것처럼 보입니다. 한 컴퓨터가 다른 컴퓨터의 RAM을 마치 자체 RAM 인 것처럼 사용할 수있는 직접적인 방법은 없지만 다른 컴퓨터의 RAM을 사용할 수있는 방법이 있습니다. 다음 단락에서 더 자세히 설명합니다.
CPU 공유에 관해서는 가능하지만 단일 표준은 없습니다. 공유하고 다른 컴퓨터가 필요한 리소스를 가져갈 수는 없습니다. 대신 여러 대의 컴퓨터에서 동시에 작동 할 수있는 응용 프로그램을 특별히 설계해야합니다. 이것을 분산 컴퓨팅이라고하며 SETI @ Home, Einstein @ Home, Climateprediction.net 및 기타 여러 연구 프로젝트에서 사용합니다.
기본적으로 프로그램은 수행해야 할 작업을 분산시키는 하나의 중앙 서버가있는 방식으로 작동합니다. 네트워크의 컴퓨터는 중앙 컴퓨터에서 작업 단위를 다운로드하여 처리합니다. 그 후 중앙 컴퓨터는 클라이언트로부터 결과를 받아 하나의 일관된 결과로 병합합니다. 이 방법으로 컴퓨터는 네트워크를 통해 CPU 및 RAM 리소스를 "공유"합니다. 이것의 단점은 네트워크를 통해 작업 할 수있는 방식으로 프로그램을 작성해야하며 현재 분산 컴퓨팅은 컴퓨터의 일반적인 용도로는 충분히 인기가 없기 때문에 소수의 특수 프로그램 만 지원한다는 것입니다. 한편, 그것은 메인 프레임 컴퓨터에 대한 액세스를 얻는 것보다 많은 수의 개인용 컴퓨터 또는 플레이 스테이션 (3)을 얻는 것이 더 저렴하기 때문에 과학적인 목적으로 일반적으로 사용된다.
네트워크에서 내 응용 프로그램을 공유하기위한 소프트웨어가 있습니까? 외국 네트워크가 필요하지 않습니다! MJH 3 월 12 일 11 일 1시 19 분
XY 문제에 빠졌다면 "CPU를 공유하고 컴퓨터를 램에 액세스하는 방법"에 대한 질문이 아니라 "ZZZZZ를 더 빠르게 사용할 수 있도록 여러 컴퓨터를 어떻게 사용할 수 있습니까?"
사용중인 소프트웨어 및 렌더링 대상에 따라 크게 달라집니다 ( 비디오 를 트랜스 코딩 하거나 3D 모델 / 비디오를 렌더링하고 있습니까?).
몇 가지 예를 선택하기 위해 무료 3D 소프트웨어 인 Blender 는 분산 렌더링을 지원 하여 여러 컴퓨터를 함께 사용하여 하나의 출력을 생성 할 수 있습니다. 비디오 렌더링을하는 경우 빠른 인터넷 검색 을 통해 여러 컴퓨터를 사용하여 비디오 및 오디오 파일을 렌더링 할 수 있는 오픈 소스 프로젝트 MediaEncodingCluster 를 발견했습니다 .
CPU / RAM을 공유 할 수있는 유일한 운영 체제는 plan9입니다. 거의 모든 것을 내보내거나 마운트 할 수 있습니다. 이것은 물론 공연이 훌륭하다는 것을 의미하지는 않습니다.
네트워크를 통해 작업을 위해 CPU / RAM을 공유하는 것이 좋습니다. 현재 우리는 여전히 사고가 발생하는 상자에 프로그램을 유지하는 데 약간의 오래된 개념을 가지고 있지만 동일한 컴퓨터의 여러 CPU가 동일한 코드 스 니펫에 액세스 할 수 있습니다. 우리는 이와 같은 일을하는 하나 이상의 방법을 가지고 있습니다. 웹 페이지의 java는 서버와 클라이언트를 모두 사용하여 작동하지만 서버-클라이언트 방식으로 잠겨있어 작업을 수행합니다 (서버는 대부분의 데이터를 보유합니다). 여러 CPU가있을 때와 같은 방식으로 시스템에 작업을 할당 할 수 있어야하는 작업 (작업에 프로그램 스 니프 및 데이터 스 니프가 할당되어 있어야하는 시스템은 제외) 네트워크에 더 많은 부하를가합니다 작업 자체가 단순한 성격이 아니고 새로운 병목 현상이 발생할 수 있다면