다중 스레드 C++ 프로그램이 있습니다. 스위치를 통해 연결된 다른 컴퓨터에서 실행할 수 있다면 처리량이 증가할 것이라고 믿습니다. 모두 동일한 운영체제(Ubuntu)를 사용합니다. 코드를 변경하지 않고 이를 수행할 수 있는 방법이 있습니까? 코드를 변경해야 하는 경우 무엇을 찾아야 합니까?
답변1
코드를 변경하지 않으면 불가능한 경우가 많습니다.
다중 스레드 프로그램은 단일 컴퓨터의 프로세서를 활용합니다. 연결된 컴퓨터의 네트워크에서 동일한 프로그램을 실행하고 해당 프로그램의 개별 인스턴스가 서로 통신하도록 하려면 코드가 서로 다른 컴퓨터에서 실행되는 프로그램의 여러 복사본 간에 명시적인 메시징을 수행해야 합니다. 무리.
이를 수행할 수 있는 라이브러리가 있습니다. 꽤 잘 알려진 표준이 호출됩니다.메시징 인터페이스, 간단히 MPI로 MPI 구현은 대부분의 무료 Unices에 존재합니다.
프로그램에 의해 수행되는 처리가 다음과 같은 경우어색하게 평행하다, 이는 프로그램의 여러 복사본이 서로 통신할 필요 없이 입력 데이터 덩어리를 처리할 수 있음을 의미하며, 이는 해결하기 더 쉬운 문제일 수 있으며 GNU를 사용하여 수행할 수 있습니다 parallel
.
궁극적으로 프로그램이 실제로 수행하는 작업에 따라 다릅니다.