mpi 프로그래밍에 관해서는 io 용으로 언제 공동 작업을 사용해야합니까? 개별 파일 포인터 IO 파일에 대해 공유 파일 포인터 IO 작업을 사용해야하는시기는 언제입니까?MPI IO에 관한 질문
답변
집합 MPI I/O은 일반적으로 더 최적화되어 있으며 코드에 일반 I/O 포인트가 있고 모든 프로세스가 동시에 도달하는 경우이를 선호 할 수 있습니다. 오버 헤드를 최소화하기 위해 적은 수의 프로세스를 사용하여 더 적은 수의 큰 데이터 청크를 작성하기 위해 실제 쓰기 (예 : 노드 당 하나)를 수행 할 수 있습니다. 또한 실제 writting 전에 데이터를 수집하기 시작할 수도 있습니다.
예를 들어의 경우, 문제에 대해 잘 분해 된 도메인이 있고 각 시간 단계의 끝에서 업데이트 된 값을 쓰고 싶다면이 방법을 사용하는 것이 좋습니다.
집합 작업은 이름에 _all
부분으로 표시되며 그 반대는 프로세스와 독립적 인 단일 작업 작업 (예 : _all
제외)입니다 (예 : 다른 프로세스에서 다른 데이터를 쓰는 프로세스가있을 수 있음). 기타). 모두 차단 및 비 차단 버전을 모두 가지고 있습니다. "집합 적"은 "차단"을 의미하지 않는다는 것을 명심하십시오.
단일 작업과 전체 작업은 "개별 파일 포인터"버전 (가장 단순함), "명시 적 오프셋"버전 (_at
) 및 "공유 파일 포인터"(_shared
(단일 작업) 또는 _ordered
(전체)).
각 프로세스 내에서 다른 파일을 쓰고 싶다면 개의 개별 파일 포인터을 사용할 수 있습니다. 이것은 프로세스 당 많은 양의 데이터를 쓸 수있을뿐만 아니라 많은 노드를 가지고 있고 대역폭을 줄이기 위해 로컬 방식으로 작성하는 것이 좋습니다. 어떤 시나리오와 파일 시스템이 정확히 유용한 지 모르겠지만 "정상적인"문제에서는 오버 헤드를 줄이기 위해 작은, 작은 데이터 스트림보다는 소수의 큰 데이터 스트림을 갖는 것이 일반적으로 더 좋습니다. 당신은 또한 이것을위한 약간의 사후 처리 이유가있을 수도 있고 단순히 모든 종류의 프로세스가 같은 종류의 데이터를 쓰는 것은 아닙니다.
같은 파일에 대해 이야기 :당신은 당신의 파일에서 다른 지점으로 각 프로세스를 가리 키도록 오프셋 명시 적으로 사용할 수있다.
주로 프로세스 그룹으로 작업 할 때 공유 포인터 버전을 사용할 수 있습니다. 따라서 각 프로세스는 참조로 공유 포인터에서 시작하여 그 뒤에 적절한 위치에 쓸 수 있습니다.
포인터가 파일보기과도 연결된다는 점에 유의하십시오. 그러나 이것은 또 다른 큰 주제입니다.
- 1. IOS에 관한 동영상에 관한 질문
- 2. 스레드에 관한 논리에 관한 질문
- 3. 객관적인 질문, xpath에 관한 질문
- 4. MPI 질문 보내기 및 받기
- 5. 데이터 압축에 관한 질문
- 6. 특성에 관한 질문
- 7. 포인터 계산에 관한 질문
- 8. parcelable 오브젝트에 관한 질문
- 9. 알파 값에 관한 질문
- 10. Quartz.net에 관한 질문
- 11. 유동체 레이아웃에 관한 질문
- 12. scjp enum에 관한 질문
- 13. PHP와 Java에 관한 질문
- 14. 유닉스 코드에 관한 질문?
- 15. mysql_real_escape_string에 관한 질문
- 16. 로드 밸런서에 관한 질문
- 17. Backpropogation 알고리즘에 관한 질문
- 18. 스왑의 성능에 관한 질문
- 19. 상속에 관한 질문
- 20. IOCP에 관한 질문
- 21. Lucene 채점에 관한 질문
- 22. 표시에 관한 UIDatePicker 질문
- 23. MKMapView에 관한 질문 Annotations
- 24. 대상 재활용에 관한 질문
- 25. 검색에 관한 질문
- 26. Ajax에 관한 질문
- 27. clock() 함수에 관한 질문
- 28. log4net의 AdoNetAppender에 관한 질문
- 29. 캐스팅에 관한 질문
- 30. grails 필터에 관한 질문