몇 가지 흥미로운 질문이 있습니다. Raspberry Pis로 구축 된 "슈퍼 컴퓨터"가 어떻게 작동하는지 약간 이해하지 못할 수도 있습니다. 자동로드 공유 시스템으로는 작동하지 않습니다. 복잡한 작업이 동시에 수행 될 수있는 조각으로 분류되는 병렬 프로그래밍 이라는 것을 위해 설계되었습니다 . 클러스터 (헤드 노드)의 기본 Pi는 전체 작업 구성을 담당하며 클러스터 (클라이언트 노드)의 각 Pi는 할당 된 작업을 수행하고 결과를 헤드 노드에 다시보고합니다. OpenMPI 와 같은 라이브러리 가 핵심입니다.
또한, 구축 된 Raspberry Pi 클러스터는 효율적인 컴퓨팅 장치로 구축되지 않았습니다. 그것들은 개발 플랫폼 으로 만들어졌습니다 . 32 대의 데스크탑 PC보다 32 대의 라즈베리 파이를 구입하는 것이 훨씬 저렴합니다. 병렬 프로그래밍 소프트웨어를 훨씬 저렴하게 개발하고 테스트 할 수 있습니다. Pis 또는 PC가없는 경우 유일한 대안은 실제 슈퍼 컴퓨터에서 CPU 시간을 요청하는 것입니다. 문제의 컴퓨터 크기에 따라 그렇게하려면 리소스를 사용하기 전에 비용이 많이 들거나 대기 시간이 길어질 수 있습니다. 따라서 사람들이 자신의 개인 클러스터를 구축 한 이유는 무엇입니까? 응용 프로그램이 작동한다는 것을 알면 실제 컴퓨터에서 응용 프로그램을 실행하는 것이 좋습니다.
따라서이 점을 명심하고 구체적인 질문으로 넘어가십시오.
적절한 클러스터에서 Pis는 단일 가상 컴퓨터로 작동하지 않습니다. Sun Grid Engine 과 같은 작업 또는 자원 할당 시스템의 형태로 각 Pi를 느슨하게 제어 할 수 있습니다 . 작업은 필요에 따라 노드에 할당되며 작업이 완료되면 해당 노드의 리소스가 새 작업을 위해 비워집니다.
클러스터에서 각 Pi는 자체 Linux 사본을 실행하므로 각 Pi는 GPIO 포트에 대한 로컬 제어를 유지합니다. 병렬 컴퓨팅 환경에서 소프트웨어가 실제로 어떻게 그것을 사용할지 잘 모르겠습니다.
클러스터는 단일 컴퓨터가 아니기 때문에 실제로 Pi를 더 빠르게 만들지는 않습니다. 당신이 얻는 것은 단순히 한 번에 더 많은 것을 할 수있는 능력입니다. 당신은 2의 배수로 제한되지 않습니다. 그러나 실행 한 작업에 따라 클러스터 된 컴퓨터에는 실제 상한이 있습니다. 200 단계가 필요한 많은 Pis에서 병렬 계산을 실행한다고 가정하십시오. 그러나 다음 단계마다 모든 Pi가 이전 단계에서 계산 한 정보가 필요합니다. 따라서 각 Pi는 반복마다 다른 모든 Pi로부터 데이터를 수신해야합니다. 각 반복 계산에 걸리는 시간에 따라 계산보다 데이터를 보내는 데 더 많은 시간을 소비 할 수 있습니다. 이것이 대부분의 슈퍼 컴퓨터가 InfiniBand를 사용하는 이유입니다회로망. 매우 빠르므로 더 많은 계산을 할 수 있습니다. 이에 대한 해결책은 적은 수의 Pi를 사용하지만 각 반복마다 더 많은 작업을 수행하도록하는 것이지만 알고리즘에 따라 불가능할 수도 있습니다. 따라서 실제 상한입니다. Pis에서는 USB 이더넷이 매우 느리기 때문에 특히 나쁩니다.
따라서 실제 응용 프로그램에서 분산 웹 호스팅! 여기에서 여러 Pi를 활용할 수 있습니다. 단순한 클러스터가 아닙니다. 5 파이가 있다고 가정 해보십시오. 이를 GatewayPi, WebPi1, WebPi2, WebPi3 및 DataPi라고합니다. GatewayPi는 인터넷을 통해 Nginix를 실행하여 웹 요청을 처리하지만 처리는하지 않습니다. 대신에 그것은 부하 분산입니다. 프록시를 사용하고 들어오는 요청을 WebPi1, WebPi2 또는 WebPi3에 무작위로 전달합니다. 이제 더 많은 요청을 동시에 처리 할 수 있기 때문에 웹 인프라의 성능을 세 배로 향상 시켰습니다. DataPi는 어떻습니까? DataPi는 모든 웹 데이터를 저장하고 NFS 서버를 실행하는 하드 드라이브를 연결했습니다. WebPiX는 NFS 공유를 마운트하여 처리 할 데이터에 액세스 할 수 있도록합니다. 이 방법으로 한 위치에서만 백업을 실행하면되며 디스크 공간을 절약 할 수 있습니다.
방금 설명한 것은 본질적으로 Google 및 Facebook과 같은 대기업이 사용하는 모델이지만 Raspberry Pi 크기로 축소되었습니다. 유일한 비용은 Pis의 비용으로 인해이를 수행하는 것이 본질적으로 Pis 클러스터와 동일한 개발 플랫폼 (웹 서비스 용)을 생성하는 것이 병렬 프로그래밍을위한 것입니다. 상대적으로 낮은 계산 능력으로 인해 여러 Pi를 사용하면 대량의 데이터를 처리 할 때 에너지 소비로 성능이 저하됩니다. 그러나 단지 학습을 위해서? 그들은 완벽합니다.