리눅스 클러스터 HPC 구축에 대해서 질문

이광조의 이미지

실험을 하는데 동시에 여러개를 돌려야하는 실험이 있어서 문의 드립니다.

HPC, MPI, diskless cluster등 여러가지 자료가 있어서 해깔리기도 하고 해서 조언을 구합니다.

정확한 용어를 모르므로 클러스터로 통일하겠습니다.

저에게 우분투가 깔린 6코어 12쓰레드 2대, 4코어 8쓰레드 1대, 4코어 2대, 2코어 1대 PC가 있습니다.

현재 작업을 일일히 콘솔로들어가서 할당해주고 있는데요 예를 들면 a.exe를 100번 실행시켜야한다고하면 100/(12*2+8+4*2+2) 해서

각각 배치파일을 만들어서 돌립니다. 실행파일은 같지만 argument 는 전부 다릅니다.

제가 얻고자 하는 결과는 다음과 같습니다.

1. 제가 100개의 작업을 시켜 놓으면 알아서 비는 CPU에 작업 넣어줬으면 좋겠습니다.
2. NS2, NS3(이건 MPI가 있더군요),그리고 for루프가 중첩이 있는 프로그램의 성능향상이 코드 변경없이 이루어졌으면 좋겠습니다.
3. 메모리가 각각 다른데요 12G, 8G, 4G 입니다. 이게 통합되서 36기가로 관리되는건지 아니면 각각 작업만 따로 할당되는건지도 궁금합니다. 리소스 관리를 어떻게 하는걸까요
4. 그리고 다른 사용자가 로러에서 클러스터를 안이용하고 작업을 실행시켰을경우 해당 프로그램도 고려해서 작업할당을 하는지 궁금합니다.
5. 추가 제거가 용이 했으면 좋겠습니다. MPICH이것도 exports와 mount관리만 해주면 쉽게 되는건가요?

문서는
https://help.ubuntu.com/community/Servers

이곳의 클러스터설치관련 문서를 보고 NFS로 폴더를 공유해서 클러스터 프로그램들이 작업을 할당해주는거같던데요 왠만하면 재설치 할 필요가 없는 첫번째 방법으로 했으면 좋겠습니다.

문서에는 작업할당을 시키는 방법은 안나오고 구축후에 테스트만 보여주고 있어서요

시간만 있으면 삽질을 하고 다 알아내면 좋겠지만 시간이 없어서 염치 불구하고 미리 경험하신 분들의 조언을 구합니다.

제가 물어보는내용이 너무 뻔한내용이라서 특성 문서나 책 구글등에 널려있다면 해당 키워드와 최신 링크를 알려주셨으면 좋겠습니다.

감사합니다.

junilove의 이미지

이책을 참고하시는 게 도움이 될것 같습니다.
http://www.yes24.com/24/goods/1972803?scode=032&OzSrank=1

저도 이제 막 시작하는 단계인데, 사용하시는 프로그램 또는 라이브러리, 소스, 알고리즘에 따라서 방법이 다양할 것 같습니다.
제가 사무실에서 지원하는 프로그램은 설치 이후에 NFS mount정도만 추가해주면 cluster node가 추가되는 형태입니다.

익명 사용자의 이미지

몇년전 기억이지만...
grid(혹은 모든 노드)의 비어있는 노드에 job을 할당해서 던져주는 자동화된 제대로 된 스크립트/패키지는 없던 것으로 기억하고,
좀더 단순한 클러스터용 스크립트/패키지는 존재했던 것으로 기억합니다.
dsh가 그 예이고...

mpi 경우에도 두가지가 있는데, mpich는 하나의 mpich 스크립트가 p4 백앤드를 통해서 tcp/ip를 통해 job을 던져주는 비교적 저차원의 간단한 스크립트로 구성된 것이고,
lam-mpi의 경우에는 이보다 약간 복잡하게 lam client가 클러스터노드에서 모두 실행이 되고있고, 서버단에 lam server가 실행되어서 client의 상태를 주고받으면서
job이 실행되는 형태입니다.

mpich는 소규모에서 간단히 구성해서 사용하기 편리한 것 같고, lam-mpi + job queue 서비스를 통해서 좀 더 대규모 클러스터 서비스를 관리하는 것 같더군요.
---------
mpi를 쓰는게 아니라 그냥 일반 실행파일을 여러개를 돌리는 것이라면 그냥 스크립트를 만들어서 node별로 출력파일 이름만 다르게 하되,
나머지 클라이언트의 모든 구성은 동일하게 (/home만 nfs로 마운트, 그 이외의 클라이언트 OS는 개별/혹은 램상주+nfs 조합)하는게 간단합니다.

요새는 어떤지 잘 모르겠습니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.