MPICH2 사용할때 mpiexec 명령에서 실행파일은 어떻게 만드나요?

priuss의 이미지

클러스터에서만 프로그램 돌리다가 이번에 PC에서 병렬 계산 해보려고 MPICH2 깔았는데요.

포트란에서 짠 코드를 PC에서 executable 파일로 만드는 방법.(컴파일 하는 방법)

(지금 인텔포트란 쓰고 있는데 PC에서는 컴파일이 안되네요.)

혹시나 해서 클러스터에서 컴파일시켜 만들어놓은 실행파일을 PC로 가져와서 MPICH2 돌려보니깐

launch failed: CreateProcess(C:\Users\priuss\Desktop\2d_ORIGINAL) on 'JaeHyun-PC' failed, error 193 - (null)

이런 에러가 뜨네요. 이건 무슨 에러인가요? ㅠ

이것저것해보고 있는데 혼자 하려니 막히는게 너무 많네요. ㅠㅠ

Aeropark의 이미지

클러스터와 PC의 환경(OS)와 MPI 종류 (MPICH2 / OpenMPI / MS-MPI 등) 등이 다를 경우 컴파일을 다시 하셔아 합니다.

윈도용 mpich2를 까셨다면, MPICH2 폴더내 include와 lib 폴더가 있습니다. 이 폴더 위치 및 라이브러리 파일을 인텥 포트란 컴파일시 옵션을 주셔야 합니다.

비주얼 스튜디오 IDE를 사용하시는 경우 Project property에서 Fortran -> General 내 Additional Include Directories에 (MPICH2 경로)\include 를 설정하시고

Linker -> General 내 Additional library Directories에 (MPICH2 경로)\lib 설정하시고

Linker -> Input 내 Additional Dependencies에 fmpich2.lib을 설정하시면

MPI 병렬 코드를 컴파일 하실 수 있습니다.

IDE 사용하시지 않는 경우 위 3개의 설정 (Include / lib 폴더 / lib 이름)을 ifort 명령어 옵션을 지정해주시면 됩니다.

Life is like a turbulent flow

priuss의 이미지

댓글 감사합니다 지금 말씀하신 설정은 다 해서 테스트 해보고 있는데요.

간단한 mpi프로그램

program main
include 'mpif.h'
double precision sum, step, pi, x, tsum
integer myrank, nprocs, ierr, is, ie
call mpi_init(ierr)
call mpi_comm_size(mpi_comm_world, nprocs, ierr)
call mpi_comm_rank(mpi_comm_world, myrank, ierr)

write(*,*) myrank

call mpi_finalize(ierr)
end

돌려봤는데

fatal error LNK1147: '/VERSION:C:\Program' 옵션에 숫자가 잘못 지정되었습니다.
warning : locally defined symbol __imp_MPIFCMB7 imported x64\Debug\main.obj

에러랑 워닝 메세지가 뜨네요. 에러가 난것은 링커 지정이 잘못된 건가 싶어서 다른 linker->input 경로를 바꿔줘봤는데도 그대로네요 ㅠ

priuss의 이미지

Linker -> Additional Dependencies 이거 역할이 뭔가요? 이거 빼니깐 잘 돌아가네요..;; ㅎ