[프로그래밍] MPI를 windows에서 사용하는 방법

2022. 7. 26. 21:18·프로그래밍 Programming

필자는 컴퓨터 전공이 아니라서 아주 기초적인 컴공 지식 밖에 모른다.

그래서 다른 사람의 소스코드를 쓰다가 어려움을 겪었는데 간단한 결과를 소개하고자 한다.

 

 

내가 쓰려고 했던 것은 딥러닝 학습에서 네크워크의 gradient surface를 보여줄 수 있는 그림이었다.

이를 위해서 

 

https://github.com/tomgoldstein/loss-landscape

 

GitHub - tomgoldstein/loss-landscape: Code for visualizing the loss landscape of neural nets

Code for visualizing the loss landscape of neural nets - GitHub - tomgoldstein/loss-landscape: Code for visualizing the loss landscape of neural nets

github.com

 

이곳에 있는 코드를 쓰고 싶었다. 그런데

mpirun -n 4 python plot_surface.py --mpi --cuda --model resnet56 --x=-1:1:51 --y=-1:1:51 \
--model_file cifar10/trained_nets/resnet56_sgd_lr=0.1_bs=128_wd=0.0005/model_300.t7 \
--dir_type weights --xnorm filter --xignore biasbn --ynorm filter --yignore biasbn  --plot

 

다음과 같은 코드를 보고 어떻게 써야하는지 몰라서 고생했다.

MPI(message Passing Interface)라고 해서 구글에 검색했을 때 가장 먼저 나온 결과를 보면, 병렬 프로그램을 여러 대의 컴퓨터에 돌리기 위해 메시지를 전달해주는 프로그램이라고 한다. 깊게 이해하기에는 내 전공과 관련이 없어보여서 일단은 사용하는 방법에 집중하였다.

 

사람들이 C코드 내지 C++코드에서 MPI 헤더를 import하여서 프로그램을 짜고, 이 프로그램을 Linux shell에서 동작시키는 것을 보았다. 물론 Linux에서도 셋팅이 필요하겠지만 일단 참고하지 않았다.

 

그런데 나는 리눅스를 쓸 생각이 없는데다가 python을 써야했기 때문에 좀 더 찾아보았다.

 

찾아본 결과, windows에서는 Microsoft MPI라는 프로그램이 있어서 

https://www.microsoft.com/en-us/download/details.aspx?id=54607 

 

Download Microsoft MPI v8 (Archived) from Official Microsoft Download Center

Important! Selecting a language below will dynamically change the complete page content to that language. Download Stand-alone, redistributable and SDK installers for Microsoft MPI. Details Note: There are multiple files available for this download. Once y

www.microsoft.com

위의 사이트에 들어가서 Microsoft MPI를 다운받는다.

 

사이트에서 Download 버튼을 누르면

다음과 같이 나오는데 반드시 두 개 다 다운받아서 설치해야한다. 아래 MSMpiSetup.exe만 설치해도 되는 줄 알았다가 나중에 동작이 안되는 걸 알고 다 설치했다.(...)

 

 

그런 다음에 명령프롬프트를 열어서 

mpiexec -help

를 명령어에 치면 제대로 동작할 때 설치된 것이다.

나는 위와 같이 나왔다.

참고로 Linux에서는 <mpirun>이라는 명령어를 쓰고 windows에서는 <mpiexec>라는 명령어를 쓴다고 한다.

 

 

그리고 이제 내가 원하는 python 파일을 실행하면 된다.

다만 그냥 명령프롬프트에서 python 파일을 실행하면 라이브러리를 import할 때 문제가 많이 생길 것이다.

anaconda prompt에서 내가 원하는 가상환경에서 돌리도록 하자.

 

 


 

 

참고자료

https://nyu-cds.github.io/python-mpi/setup/

 

Python MPI: Setup

Microsoft MPI To use MPI with Windows, you will need to install the free download of Microsoft MPI. Go to the installation page and download MSMpiSetup.exe. Once downloaded, run the executable and follow the instructions. Next, add the path C:\Program File

nyu-cds.github.io

 

저작자표시 비영리 변경금지 (새창열림)

'프로그래밍 Programming' 카테고리의 다른 글

[에러기록] 아나콘다와 관련된 수많은 에러들  (0) 2022.12.29
[에러기록] CondaHTTPError: HTTP 000 CONNECTION FAILED for url  (0) 2022.12.26
[매트랩MATLAB] Symbolic expression에서 미분 및 적분 수행  (0) 2022.07.02
[C/C++] 포인터와 배열의 관계  (0) 2021.08.08
Git bash 명령어 정리 (5) 협업을 위한 관리  (0) 2021.07.20
'프로그래밍 Programming' 카테고리의 다른 글
  • [에러기록] 아나콘다와 관련된 수많은 에러들
  • [에러기록] CondaHTTPError: HTTP 000 CONNECTION FAILED for url
  • [매트랩MATLAB] Symbolic expression에서 미분 및 적분 수행
  • [C/C++] 포인터와 배열의 관계
보통의공대생
보통의공대생
수학,프로그래밍,기계항공우주 등 공부하는 기록들을 남깁니다.
  • 보통의공대생
    뛰는 놈 위에 나는 공대생
    보통의공대생
  • 전체
    오늘
    어제
    • 분류 전체보기 (458)
      • 공지 (1)
      • 영어 공부 English Study (40)
        • 텝스 TEPS (7)
        • 글 Article (21)
        • 영상 Video (10)
      • 연구 Research (99)
        • 최적화 Optimization (3)
        • 데이터과학 Data Science (7)
        • 인공지능 Artificial Intelligent (40)
        • 제어 Control (45)
      • 프로그래밍 Programming (103)
        • 매트랩 MATLAB (25)
        • 파이썬 Python (33)
        • 줄리아 Julia (2)
        • C++ (3)
        • 리눅스 우분투 Ubuntu (6)
      • 항공우주 Aeronautical engineeri.. (21)
        • 항법 Navigation (0)
        • 유도 Guidance (0)
      • 기계공학 Mechanical engineering (13)
        • 열역학 Thermodynamics (0)
        • 고체역학 Statics & Solid mechan.. (10)
        • 동역학 Dynamics (1)
        • 유체역학 Fluid Dynamics (0)
      • 수학 Mathematics (34)
        • 선형대수학 Linear Algebra (18)
        • 미분방정식 Differential Equation (3)
        • 확률및통계 Probability &amp; Sta.. (2)
        • 미적분학 Calculus (1)
        • 복소해석학 Complex Analysis (5)
        • 실해석학 Real Analysis (0)
      • 수치해석 Numerical Analysis (21)
      • 확률 및 랜덤프로세스 Random process (2)
      • 추론 & 추정 이론 Estimation (3)
      • 기타 (26)
        • 설계 프로젝트 System Design (8)
        • 논문작성 Writing (55)
        • 세미나 Seminar (2)
        • 생산성 Productivity (3)
      • 유학 생활 Daily (6)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    수치해석
    고체역학
    텝스공부
    딥러닝
    Linear algebra
    Statics
    MATLAB
    우분투
    JAX
    Dear abby
    IEEE
    에러기록
    obsidian
    논문작성
    Zotero
    Python
    인공지능
    옵시디언
    teps
    텝스
    수식삽입
    생산성
    논문작성법
    Numerical Analysis
    ChatGPT
    WOX
    Julia
    pytorch
    LaTeX
    matplotlib
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
보통의공대생
[프로그래밍] MPI를 windows에서 사용하는 방법
상단으로

티스토리툴바