mpi 프로그램 질문

qiiiiiiiip의 이미지

클러스터를 이용한 병렬처리관련 질문입니다..

현재 openmpi를 이용한 클러스터가 구축되어있는데요,

파일 리스트를 입력으로 받아서 각각의 파일별로 계산을 해서
각각의 출력 파일을 저장하는 프로그램입니다..
각각의 파일이 독립적으로 처리되고 서로 영향을 주지 않습니다.
아주 단순한 병렬처리인데요..

현재는 파일리스트를 미리 균일하게 나누고,
mpirun으로 여러 프로세스가 각각의 파일리스트를 처리하도록 하는데요,

이경우 프로세스간에 속도차가 있어 어떤건 미리 끝나고, 어떤건 늦게끝나는
낭비가 있습니다..

보통 이러한 태스크의 경우 어떤 식으로 처리하는지요?
전체 파일목록을 가지는 queue가 있고,
그 밑에 여러 프로세스가 이 queue에서 처리할 파일을 하나씩 가져오게 하고 싶은데,
이러한 경우에 대한 예제코드가 있을까요?

kwchun의 이미지

병렬 처리라기보다는 클러스터에 작업을 나눠서 처리하시려는 것 같은데요. 보통 이런 경우는 MPI가 아니라 SLURM과 같은 작업관리자를 씁니다.

qiiiiiiiip의 이미지

답글 감사합니다..
SLURM을 찾아봤는데, 제가 하려는것에 비해 너무 복잡해보이네요..

MPI는 잊어버리고.. 하고 싶은일은 아래와 같습니다.

1. a.out이라는 프로그램이 있고 이게 하는일은 아래와 같습니다.
filelist.txt를 입력으로 받아서 라인별로 읽어서,
하나의 입력파일을 처리해서 하나의 출력파일을 생성

2. filelist.txt 파일의 라인수가 꽤 깁니다 (처리해야하는 파일의 숫자가 많습니다)

3. filelist.txt를 효율적으로 나눠서 여러개의 a.out에서 나눠서 처리하도록 하고 싶습니다.
( 기존은 균등하게 나눠서 mpi로 뿌림 )

4. cluster로 구성된 여러 머신을 쓸수도 있고, 하나의 머신의 여러 CPU/core를 쓸수도 있습니다.

5. 기존 코드의 변경은 최소한으로 하고 싶습니다..

--

나름 고민해본 방법은, 별도의 main.c를 만들어서,
여기서 filelist.txt를 읽고,
기존 프로그램을 popen으로 여러개를 열어서,
pipe로 file이름을 각 프로세스에 뿌려주면 어떨까 싶은데요..

공통된 pipe에(stdin?) 파일명을 넣어주면 여러 프로세스 중 idle한 프로세스가
자동으로 그걸 하나씩 가져가는게 가능할까요?

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.