클러스터위에서 각 노드 위에 프로세스들을 분배시키고 걔네끼리 데이터 주고 받게 해주는게 MPI 라고 있는거 같음.
얘는 그러면 노드끼리 연결할때 소켓을 씀???
지금 아예 눈이 뱅뱅돌아가는게
1. 클러스터 위에서 프로세스를 돌리는 상황에서, 여러 노드가 계산력을 합쳐서 하나의 쓰레드를 돌리는게 가능한가.
즉, 하나의 쓰레드가 여러 노드에 분배되서 존재하기도 하는가.
2. 1번의 답을 no라고 하겠음. 각 노드에 쓰레드/프로세스가 분배되어있다고 가정함.
그러면 클러스터는 멀티쓰레드/멀티프로세스 상황에서 유의미할것임.
이때, SPMD로 프로세스들을 통제하는것이 바로 MPI임
3. 그렇다면 MPI는 무엇인가 IPC 기법을 썼을거임. 소켓을 사용했을까?? 소켓인것임???
구글링해보니까 MPI tcp 쓴다는거같음
근데 그러면 tcp 정도면 충분히 빠르다고 여기는것까진 좋은데... tcp로 직접 프로그래밍하는거 너무 저수준 아닌가 생각되는데... (그래서 mpi가 있는거겠지만) mpi는 spmd에밖에 못쓰는거 아닌가? 서로 다른 프로세스끼리도 mpi로 조율이 가능하려나
당연 소켓이고 하나의 쓰레드가 여러 노드에 분배돼서 존재하긴 어렵지 그렇게 보이게 설계하고 만드는거고 보통 coordinator dispatcher같은 거 두고 통합하지
오오오오 좋은 정보 감사합니다.
Cluster 병렬 처리하는 Datastore나 DB 찾아보면 좋을거야. 아마 하둡이 이런식으로 병렬 처리 할걸...? 실제 니가 원하는 정보인진 모르겠지만 1 query를 병렬처리하는 기법들이 꽤 있음
감사합니당~ 데이터스토어, 하둡 메모
Datastore는 내가 걍 문맥상 쓴 단어임 하둡을 표현할 단어가 마땅치 않아서 ㅋㅋㅋ