병렬처리관린 질문이 있어 글 올립니다.

그늘   
   조회 4329   추천 0    

 

어디에 글을 올려야 할지 몰라 자유게시판에 올립니다. 

병렬처리관련해서 궁금한게 있는데 물어볼곳이 없어 생각난곳이 여기라 질문글 올립니다.


하고자 하는것은 C로 개발된 exe파일이 있습니다.

하는일은 특정 파일 읽어서 모형돌고 결과파일에 결과적고 끝을 내는 일반적인 형태입니다.

그냥 수행을 했을경우 구동시간이 조금 많이 걸립니다.

현재 구동PC 는 E5-2623V3 CPU가 장착된 워크스테이션입니다.

그런데 CPU상태를 보면 한 2~3개만 10%정도 이용하고 나머지 놀고 있습니다.

CPU전체를 이용하면 조금더 빨리 돌릴수 있지 않을까 하는 생각이 들어 글 올립니다.


실제 구현 프로그램은 C#을 이용하고 있으며 C#으로 위 실행파일을 실행시키는 방식을

이용하고 있습니다.


조언 부탁드립니다.~

좋은 하루 되세요.


짧은글 일수록 신중하게.
NeOpLe 2016-06
1. Multi-threading 을 한 프로그램 내에서 구현하고자 한다면 Parallel Library 를 이용해서 multi-threading 으로 프로그램을 작성하서야 가능합니다.
2. Multi-processing system 에서 여러개의 프로그램을 다중 CPU 상에서 실행하는 것은 Multi-processing 을 지원하는 OS 만 있다면 가능합니다.

하나의 프로그램을 돌리면서 하나의 Core 만 바쁘고 나머지는 왜 놀고 있지라고 생각하는 것은 그 프로그램이 multi-threading 라이브러리릉 이용해서 parallel programming 으로 작성된 것인지 알아야 할 필요성이 있습니다. 그렇게 작성되지 않은 프로그램은 하나의 프로그램 내에서 multi-threading, multi-processing 을 지원하지 않습니다.
김제연 2016-06
프로그램 이 멀티코어 지원안하는것  같으니 가상컴 10개 만드시고 10개 동시에 돌 리세요 아니면 한번 여러개 동시실행 해보시구요
하셀호프 2016-06
개발한 프로그램이  CUDA, openCL, openMP, MPI 등등을 이용하셨나요
이걸 사용하지 않으셨으면 코어가 100개라도 1개만 사용합니다.
그외에는 제연님 말씀처럼 가상컴을 이용하실 수도 있구요
회원K 2016-06
중간에 scratch 파일을 만드는 경우라면 디스크를 SSD로 바꿔보세요.
상당히 속도가 빨라질 겁니다.
박문형 2016-06
인텔(인텔코리아)에서도 클러스터링을 위한 소프트웨어 라이브러리를 판매 하는 것으로 알고 있습니다. (교육과정도 있음)

인텔머신에는 인텔 라이브러리를 써야 팍팍 돌아갑니다..
엠브리오 2016-06
대다수의 프로그램들은 CPU를 한개만 사용하도록 되어 있습니다.

MPI 라고 하는 패러렐 컴퓨팅 라이브러리를 써서 CPU 여러개를 한꺼번에 사용하도록 프로그램을 수정해야 합니다.

https://en.wikipedia.org/wiki/Open_MPI
무아 2016-06
실행파일 이름을 2개로 만들어 봅니다. 예를 들어
test1.exe, test2.exe
이렇게 해서 두개를 동시에 실행시켜서 결과가 따로 잘 나오는데 문제가 없다면
실행파일명을 여러개로 만들고 c# 에서 각각 동시에 실행시켜보는 것은 어떤지요?
아.. 이렇게 하려면 해야할 일들을 미리 나눠줘야합니다.
하나의 소스 데이터를 여러개의 실행 파일로 하는 것이 아니라
여러개의 소스 데이터를 여러개의 실행 파일로 하도록.

쓰고나서 보니 김제연님이 말한 내용이네요 ^^
Wheein 2016-06
해당 exe 파일이 개발 단계에서 multi-threading이나 multi-processing를 이용하지 않게 구현이 되었다면 구현을 다시 하지 않는 이상 손쉽게 바꾸는 방법은 없는 것으로 알고 있습니다. 이런 경우 보통 위에 분들이 말씀해주신 것처럼 exe 파일을 여러개 실행시켜서 CPU를 다 쓰게 하는 방법이 제일 좋습니다.
가끔씩 exe파일을 여러개 실행시킬 경우 실행 환경상의 충돌이 발생할 수 있는데, (가령 tmp파일이 겹친다거나) 이런 경우 docker에서 돌도록 스크립트를 잘 짜시면 서로 충돌 안 나게 몇십개의 instance를 동시에 돌릴 수도 있습니다.


QnA
제목Page 3762/5710
2015-12   1690671   백메가
2014-05   5156328   정은준1
2017-12   4334   조형
2014-09   4334   김병철
2014-11   4334   오홍식
2007-03   4334   이성준
2017-07   4334   motu
2016-03   4334   인호
2015-12   4334   오소리
2017-06   4334   김건우
2016-10   4334   Silverhand
2016-10   4334   김성진75
2014-03   4334   아름다운노을
2018-04   4334   드루와드루와
2015-03   4334   리나
2016-08   4334   적계
2015-07   4334   신쇼기
2016-01   4334   배고프시죠
2017-06   4334   그린
2015-01   4334   난다곰
2020-01   4334   laputa
2014-04   4334   김황중