안녕하세요.
main() { a(); b(); c(); }
a() { ...... // 10분 걸리는 function }
b() { ...... // 10분 걸리는 function }
c() { ...... // 10분 걸리는 function }
이걸 돌리면 총 30분 걸리죠... 근데, a(), b(), c() 들을 병렬로 돌리면 10분밖엔 안걸릴텐데...
어떻게 병렬로 돌리는 방법을 아시는 분 계신가요?
스레드를 이용한 방법은 동시에 a(), b(), c()함수를 실행시키는 것이
가능은 하지만 전체적인 시간을 줄여 주지는 못할 것으로 보입니다.
병렬 프로그래밍 기법을 이용해서 a() 함수는 현재 컴퓨터에서 실행하고
b()는 다른 컴퓨터 c()는 또 다른 컴퓨터에서 실행하게 해서 결과를
조합하면 좋을 것 같습니다.
만약 a,b,c가 CPU 의존적인 것이라면, CPU를 하나 더 달고, thread로 돌리세요..
---http://coolengineer.com
근데, a(), b(), c() 들을 병렬로 돌리면 10분밖엔 안걸릴텐데... 어떻게 병렬로 돌리는 방법을 아시는 분 계신가요?
단일머신에서 병렬 처리를 하신다면 쓰레드를 이용하시면 될듯합니다.
그리고 또다른 방법으로 클러스터링을 이용한 HPC (High Performance Computing)을 구축하셔도 좋습니다. 여러대의 머신을 네트워크로 서로 연결하시고 MPP(message passing processing) 라이브러리를 사용하여 코딩을 하시면 됩니다.
MPP 라이브러리에는 LAM-MPI 라는게 있습니다.
텍스트 포맷에 대한 자세한 정보
<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]
병렬 프로그래밍을 하세요
스레드를 이용한 방법은 동시에 a(), b(), c()함수를 실행시키는 것이
가능은 하지만 전체적인 시간을 줄여 주지는 못할 것으로 보입니다.
병렬 프로그래밍 기법을 이용해서 a() 함수는 현재 컴퓨터에서 실행하고
b()는 다른 컴퓨터 c()는 또 다른 컴퓨터에서 실행하게 해서 결과를
조합하면 좋을 것 같습니다.
만약 a,b,c가 CPU 의존적인 것이라면, CPU를 하나 더 달고, t
만약 a,b,c가 CPU 의존적인 것이라면, CPU를 하나 더 달고, thread로 돌리세요..
---
http://coolengineer.com
Re: [질문] c 함수내에서 sub function 들을 병렬로 돌리는 방법
단일머신에서 병렬 처리를 하신다면 쓰레드를 이용하시면 될듯합니다.
그리고 또다른 방법으로 클러스터링을 이용한 HPC (High Performance Computing)을 구축하셔도 좋습니다. 여러대의 머신을
네트워크로 서로 연결하시고 MPP(message passing processing)
라이브러리를 사용하여 코딩을 하시면 됩니다.
MPP 라이브러리에는 LAM-MPI 라는게 있습니다.
댓글 달기