내 프로그램을 병렬 프로그램으로 변환하는 방법을 생각하는 데 어려움을 겪고 있습니다. 기본적으로 데이터 집합 (객체의 벡터)이 있고 각 클러스터에는 반복자 벡터가 있고 각 반복자는 데이터 집합의 원래 위치를 가리키는 클러스터 그룹을 추출합니다.반복자를 사용하여 C++ 프로그램을 Boost MPI 병렬 프로그램으로 변환
내가하고 싶은 일은 클러스터를 병렬로 만드는 프로세스를 만든 다음 모든 클러스터를 주 스레드로 다시 보냅니다. 문제는 부스트를 사용하여 모든 것을 직렬화하고 MPI를 통해 보내고 iterators를 직렬화하지 않는다는 것입니다. 반복자 대신 데이터 세트에 포인터를 사용하는 것만으로 생각했지만 클러스터를 주 스레드로 다시 보낼 때 주 스레드가 새로 만든 개체에 대한 모든 포인터를 데이터 세트를 가리 키도록해야합니다. 벡터 대신 (그리고 오래된 개체를 삭제하십시오), 그리고 나는 정말 좋은 해결책이라고 생각하지 않습니다. 그리고 나는 이것을 너무 빨리하는 방법을 생각할 수 없습니다.
그건 단지 첫 번째 부분입니다. 그 후에 다시 클러스터에 스레드를 보내야만 다른 계산을 수행 할 수 있으므로 클러스터를 수집하는 프로세스가 너무 느려서는 안됩니다.
감사합니다.
OpenMP가 아닌 MPI를 사용 하시겠습니까? 단일 멀티 코어 컴퓨터에서 여러 스레드를 사용하거나 여러 컴퓨터에서 여러 프로세스를 함께 연결하고 싶습니까? –
오랫동안 복용 해 주셔서 유감스럽게 생각합니다. 이메일로 알림을받을 예정이라고 생각했습니다. 여러 대의 컴퓨터가있는 MPI입니다. 그것이 프로젝트를 위해 최상인지 확실하지 않지만, 슬프게도 나는 지금 그것에 충실해야한다. 지금 문제를 해결했지만 감사합니다! – Rafael