저는 Matlab, C 및 기타 과학 컴퓨팅용 프로그래밍 언어를 실행하는 분산 컴퓨팅 시스템을 구축하고 싶습니다. 이제 네트워크 서버나 PC로 Lion Mac OS가 설치된 오래된 Mac 컴퓨터가 여러 대 있습니다. 또한 Linux를 설치할 수 있는 최신 16-Xeon 코어 시스템도 있습니다. 새 컴퓨터에 어떤 Linux 배포판을 사용해야 할지 아직 결정하지 않았지만 다음 요소를 고려해야 합니다. 사용할 수 있는 Linux 배포판, 사용할 수 있는 분산 컴퓨팅 소프트웨어, 데이터 백업 및 대기열 할당 관리 방법을 결정하는 데 도움을 주십시오.
Mac 또는 Linux 운영 체제를 사용하는 모든 컴퓨터는 병렬 또는 분산 컴퓨팅을 위한 클러스터 시스템으로 사용할 수 있습니다. 특히 우리는 여러 사용자와 스레드가 있는 대기열의 컴퓨터에서 프로그램을 실행하려고 합니다. 모든 머신이 비대칭인 경우에는 가장 강력한 머신의 속도를 늦추고 싶지 않습니다.
새 시스템은 헤드 노드로 사용하는 것이 가장 좋지만, 최소한 헤드 노드가 다운되는 경우 보조 시스템도 헤드 노드 역할을 할 수 있어야 합니다.
백업 프로세스는 설정이 쉽고 원격으로 제어할 수 있어야 합니다. 이는 처음 두 가지 요소만큼 중요하지 않습니다. 최소한 중요한 데이터는 수동으로 백업할 수 있습니다.
Google을 검색했지만 내 상황에 적합한 솔루션을 찾지 못했습니다. 귀하의 제안에 미리 감사드립니다!
답변1
몇 가지 HPC 클러스터를 구축한 결과, 여러분이 하려는 작업이 클러스터의 노드 간 호환성 문제로 인해 큰 문제를 일으킬 것이라고 말씀드릴 수 있습니다. 이는 아마도 HPC 클러스터 이유를 찾을 수 없는 이유일 것입니다. Google을 통해 직접 답변해 보세요.
이러한 호환성 문제에는 소프트웨어 버전, 시스템 라이브러리, 수치 및 계산 라이브러리, C 및 Fortran과 같은 컴파일러(및 해당 라이브러리), PATH 및 LD_LIBRARY_PATH와 같은 변수, 쉘 유틸리티의 GNU 버전과 GNU가 아닌 버전 간의 차이점, CUDA 가능성 등이 포함됩니다. GPGPU 컴퓨팅(또는 이에 상응하는 것)을 위한 OPENCL과 비교.
이러한 문제 중 대부분은 두 개의 서로 다른 Linux 배포판을 사용하는 것만으로도(또는 클러스터의 서로 다른 노드에서 동일한 배포판의 서로 다른 버전을 사용하는 경우에도) 발생할 수 있습니다.
두 개의 클러스터를 설정하는 것이 더 쉬울 수 있습니다. 하나는 단일 노드(Linux를 실행하는 Xeon)이고 다른 하나는 여러 노드(OS X Lion을 실행하는 이전 Mac)입니다.
그러나 이것이 선택 사항이 아닌 경우 고려해야 할 가장 중요한 것은 Linux 배포판이 아닌 스케줄러입니다.
개인적으로 나는 당신이 원하는 것을 설정하고 싶지 않지만, 해야 한다면 사용을 고려하지 않을 것입니다.PBS 또는 토크, 나는 사용할 것이다진흙. Slurm은 어떤 애플리케이션이 어떤 노드에서 실행될 수 있는지 더 세밀하게 제어할 수 있습니다. 오라클의그리드 엔진원하는 작업을 수행하는 또 다른 옵션이지만 그것이 존재한다는 사실을 언급하는 것 이상을 수행할 만큼 익숙하지 않습니다.