요즘 컴퓨터들은 코어가 여러 개 있는 게 대부분입니다. 계산 작업 같은 걸 할 때는 최대한 여러 코어를 동시에 돌려야 더 빨리 결과를 얻을 수 있으니 소프트웨어가 원래 다중코어를 동시에 사용할 수 있는 걸 쓰는 게 좋겠죠.

근데 계산용 소프트웨어 중에 보면 mpi를 지원하긴 하지만 mpi를 쓰지 않은 상태에서는 그냥 코어 하나만으로 계산하는 것도 많이 있습니다. 이런 경우에는 좀 안타깝긴 하지만 단일 머신에서 mpi를 돌려서 계산을 해야 하는 일이 발생하곤 하죠.

보통은 클러스터 셋업을 할 때 ssh 무인증 설정을 하지만, 저는 위에 설명한 용도로 쓰기 위해 ssh 무인증 설정이 필요했습니다. meep이라는 FDTD (Finite Difference Time Doamin) simulation 소프트웨어를 돌리려고 하는데, 이게 여러 코어를 동시에 쓰려면 mpi를 써야만 하는 식으로 만들어져 있거든요.

방법은 간단합니다. http://unhead.tistory.com/19 글에 나와있는 것처럼 하면 되는데요, 여기에 간단하게 정리해 보면 이렇습니다.

  1. /etc/ssh/sshd_config 파일 수정 (아래의 내용이 있는 부분을 모두 uncomment해서 활성화)
    1. port 22
    2. RSAAuthentication yes
    3. PubkeyAuthentication yes
    4. AuthorizedKeysFile      .ssh/authorized_keys
  2. service ssh restart 명령 내려서 ssh 데몬 restart (여기까지는 당연히 root 권한으로, 이 밑으로는 일반 사용자 권한으로)
  3. 홈 디렉토리로 가서 ssh-keygen -t rsa 명령 실행
    1. 뭐 자꾸 묻는데, 그냥 엔터 세 번 치면 됨
  4. 아래 명령 실행
    1. cd .ssh
    2. cp -RfpP id_rsa.pub authorized_keys
  5. 머신이 여러 대 있을 경우에는 모든 머신에 각각 자신 및 다른 모든 노드들의 authorized_keys 값들이 다 들어가도록 내용을 복사해서 같게 만들어줘야 합니다. 단일 머신인 경우에는 4번까지만 하면 됩니다.
이렇게 해 두면 단일 머신에서 mpirun으로 mpi 작업 실행시킬 때 처음에 한 번만 yes 입력해 주고 나면 그 후로는 매번 비번 입력하지 않아도 됩니다.

뭔가 더 나은 방법이 있는 것 같긴 한데 귀찮아서 여기까지... ㅠㅠ

참고: meep을 mpi로 돌리는 것 관련해서는 http://ab-initio.mit.edu/wiki/index.php/Parallel_Meep 페이지를 참조하시면 됩니다.

+ Recent posts