병렬 컴퓨터 사용해 보신분 계시나요?

DebPolaris의 이미지

저는 컴퓨터 전공자도 이니고 병렬 컴퓨팅에 대한 들어만 봤습니다
검색을 하다보니 드는 생각이 소스를 만들 때 병렬처리 코드를 넣줘양 되는걸로
알고있는데

그렇다면 병렬 코드가 들어가지 않은 소스로 만들 프로그램도
병렬 컴퓨팅으로 돌릴 수 있나요? 좀더 정확히 말하면
일반 소스로 만들어진 프로그램도 병렬 컴퓨터의 기능을
제다로 사용할 수 있는지 궁금합니다

병렬 처리가 된 프로그램으로만 제대로 가능을 하는지 궁금합나다

가능한 자세히 답변 부탁드립니다

익명 사용자의 이미지

코드의 병렬화는 멀티스레딩이나 MPI 같은 것으로 해주는 것을 말합니다
아무리 간단한 openmp나 cilk도 어느 정도 코딩은 해줘야 합니다
근데 코딩을 엉망으로 하면 병렬처리를 해도 성능이 나아지지 않기 때문에 알아야 할 것이 많습니다

책을 보신다면 "멀티코어 CPU 이야기"라는 책을 읽어보시는 것도 좋을 것 같습니다

DebPolaris의 이미지

결국 싱글 코드로 작성된 프로그램은 병렬처리할 수 없나 보군요...

-----------------------------------------------------
남이 가르쳐주는 것만 받아들이는 것이 아니라, 스스로 만들고, 고쳐가는 사람을 '해커'라고 부른다.
그리고 자신이 쌓아온 노하우를 거리낌없이 나눌 줄 아는 사람을 '진정한' 해커라고 한다.
-Rob Flickenger 'Linux server hacks'

DEBIAN TESTING, KDE...
debpolaris.blogspot.kr

익명 사용자의 이미지

싱글 코드로 작성된 프로그램을 병렬로 수행하는
가장 간단한 방법은 해당 프로세스를 여러개 돌리는 것입니다.
그러기 위해서는 수행전에 데이터를 나누고, 수행후에 데이터를 합치는
부분이 필요합니다. 그게 병렬처리의 핵심입니다.

나그네나그네의 이미지

수퍼스칼라라 해서, 단일 core에서 주어진 프로그램을 instruction level로 병렬 실행하는 기술은 이미 90년도부터 나왔었습니다 :) 아마 I5, I7에도 모두 들어갔을 거에요. 하지만 프로그램 내의 data dependency 때문에 utilization이 낮은건 사실이지요..

거기에 SMT라 해서, 수퍼스칼라와 합쳐져서 여러 thread를 단일 core에서 병렬 실행을 하는 기술이 2000년도 초반에 개발되었는데 최근 CPU에 들어갔을 진 모르겠네요.

최근(이라기보단 이젠 약간 지났죠) 나온 multi-core도 어찌보면 프로세스 레벨로 병렬화를 이미 지원을 하고 있는 것이구요.

GPU까지 병렬화를 수행을 하려고 한다면 (Nvidia같은 경우) Cuda같은 것으로 코딩을 별개로 해 주어야 하는 것은 사실입니다.

cloud 레벨은 말할 것도 없구요 -_-ㅋ(hadoop..)

결론은, 이미 core 레벨에서 어느 정도 병렬화가 진행되고 있고, 그 이상 parallelization을 하고 싶다면 추가적 코딩이 필요하다입니다

익명 사용자의 이미지

인텔의 smt는 하이퍼스레딩이라고 하죠
ppc등 다른 벤더도10년 전에 상용화 되었습니다만 효율은 그닥이긴 하죠

DebPolaris의 이미지

모두 답변 감사합니다. 결국 방법이 있긴 있지만 완벽히 하려면 병렬화된 소스를 짜는 수 밖에 없군요

-----------------------------------------------------
남이 가르쳐주는 것만 받아들이는 것이 아니라, 스스로 만들고, 고쳐가는 사람을 '해커'라고 부른다.
그리고 자신이 쌓아온 노하우를 거리낌없이 나눌 줄 아는 사람을 '진정한' 해커라고 한다.
-Rob Flickenger 'Linux server hacks'

DEBIAN TESTING, KDE...
debpolaris.blogspot.kr

댓글 달기

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