멀티 코어 시스템을 사용하여 R 시뮬레이션을 실행 중입니다. 내가 모니터링하고있는 시뮬레이션 결과는 길이가 900 인 벡터입니다. 각 시뮬레이션이 끝나면이 파일을 (행별로) 텍스트 파일에 추가합니다 (write.table 사용). 내 시뮬레이션은 1 : 1000에서 실행됩니다. 랩톱 컴퓨터에서 작업하는 동안 작업 결과가 순차적이기 때문에 결과가 좋았습니다. 내가 클러스터 작업을하면 시뮬레이션이 나뉘며 누가 먼저 작성해야할지 모를 수도 있습니다. 내 주장에 대한 이유는 심지어 내 텍스트 파일의 첫 번째 열 (시뮬레이션 열을 저장하는 데 사용되는이 열)에 대한 불가능한 값조차 얻고 있기 때문입니다. 첨부 할 수있는 샘플 코드가 필요한 경우병렬 시뮬레이션 출력을위한 텍스트 파일 추가
0
A
답변
1
주문을 존중하는 병렬 스레드가있는 텍스트 파일에 쓸 방법이 없습니다. 각 쓰레드는 자신의 버퍼를 가지고 있으며, 쓸 때 적절한 표시가 없다. 왜냐하면 상호 통신이 없기 때문이다. 그래서 그들은 모두 동일한 파일을 동시에 시도 할 것입니다. 다른 스레드가을 쓰는 중일 경우에도 첫 번째 열에는 값을 얻을 수 없습니다.
해결책은 각 스레드에 대해 개별 파일에 쓰거나 값을 다중 스레드 적용 루프의 출력으로 리턴하는 것입니다. 그런 다음 결과를 순차적으로 결합하십시오.
관련 문제
- 1. 출력을위한 XSLT 공간 = 텍스트
- 2. 병렬 컴퓨팅 : 파일 추가
- 3. 병렬 동작 시뮬레이션
- 4. 루아에서 병렬 처리 시뮬레이션
- 5. 자바에서의 병렬 처리 시뮬레이션
- 6. 파일 출력을위한 DCG
- 7. 파일 출력을위한 데스크탑 경로 Java
- 8. Bash 병렬 처리 시뮬레이션 스크립트
- 9. 파이썬에서 출력을위한 텍스트 박스 (텍스트 기반 게임)
- 10. html 출력을위한 bookdown의 R 코드 블록과 텍스트 사이에 공백 추가
- 11. 자바 스윙은 출력을위한 텍스트 영역을 만듭니다
- 12. parfor (병렬 컴퓨팅)를 사용한 Simulink- 시뮬레이션
- 13. 표준 출력을위한 JUnit/Ant XML 파일 형식
- 14. 병렬 IO 및 추가]
- 15. 원하는 행 출력을위한 PHP 배열 추가
- 16. 양식 추가/'텍스트 파일
- 17. Perl에서 시스템 명령어 출력을위한 파일 핸들
- 18. 출력을위한 잘못된 디렉토리 데이터
- 19. XHR2 파일 업로드 시뮬레이션
- 20. 대기중인 시뮬레이션 파일 편집
- 21. 파일 시스템 액세스 시뮬레이션
- 22. 시뮬레이션 드롭 파일 이벤트
- 23. "파일 시스템 시뮬레이션 구현"
- 24. julia에서의 병렬 텍스트 처리
- 25. ksh의 추가 텍스트 데이터 처리 텍스트 파일
- 26. 병렬 프로그래밍 벡터 추가
- 27. 텍스트 파일 추가 및 읽기
- 28. 내 프로젝트에 텍스트 파일 추가
- 29. 검색하고 파일 이름에 텍스트 추가
- 30. R.java에 텍스트 파일 리소스 추가
여기에 '관련 게시물'(http://stackoverflow.com/questions/22104858/is-it-a-good-idea-to-read-write-files-in-parallel)과 'foreach' 꾸러미. 아마도 [여기에 의견] (http://stackoverflow.com/questions/20425071/lock-file-when-writing-to-it-from-parallel-processes-in-r)이 관련되어 있습니다. 또한 [이 게시물] (http://stackoverflow.com/questions/27909677/parallel-simulations-writing-on-the-same-file), 두 번째는'줄리아 '입니다. – lmo
감사합니다. 두 번째 제안에서 주어진 코멘트는 도움이됩니다. – belaya