2014-07-16 2 views
0

특정 프로세서의 데이터 만 저장하는 netcdf 파일을 작성하는 특정 작업을 접했습니다. 문제는 다음과 같습니다. (nx) x (ny) x (nz) 개의 도메인으로 나뉘어 진 3D 필드가 있습니다. 각 도메인에는 할당 된 프로세서가 있습니다. x 방향의 특정 위치에있는 도메인의 데이터 만 저장하려고합니다. 즉, 데이터는 ny x nz 프로세서에서만 제공됩니다. 나는 그러한 데이터를 작성하는 방법에 대한 예제를 찾으려고 노력하고 있었지만, 과도하게. 누구든지 이것이 가능하고 또한 사용해야하는 특정 명령이 있는지를 알고 있습니까?특정 프로세서의 netcdf 병렬 파일 작성

예를 들어 if (mpid % rank == 0)를 사용한 조건을 사용하여 데이터를 쓰려고 시도했지만 ... nf90_var_par_access (ncid, varid, nf90_independent) 호출과 함께 성공했지만 성공하지 못했습니다. 절차가 멈춘 것 같습니다.

미리 감사드립니다!

답변

0

사실, 질문을 게시 한 후 몇 시간 만에 문제를 해결할 수있었습니다. 주요한 문제는 nf90_def_dim 호출에서 차원 길이 정의입니다. 이 코드에서는 기본적으로 도메인의 수와 차원의 수를 곱한 값을 가정했습니다. 특정 도메인 만 사용하고 소수의 프로세서에서만 쓰기 프로세스가 작동하는 경우에 맞게이 정의를 변경했습니다.

모두로