본문 바로가기
무모한 도전-주식 인공지능 만들기

ray를 이용한 다중 병렬처리(nested)의 최적화 -4-

by 인터넷떠돌이 2020. 8. 2.
반응형

안녕하세요?

 

지난번 포스팅에서 어떻게 얼치기로 그나마 좋은 ray의 조건을 건지기는 했지만, 이게 100% 정확하다고 말하기는 좀 무리가 있기는 있습니다. 일단 구름IDE가 정확하게 하드웨어 성능을 내어 주는 것이 아니라 대체적인 단계로 조정이 되기 때문에, 처리시간에 오차가 있습니다. 그래서 이를 보강하기 위해서 일단 10회 반복을 계속해서 해 보도록 하는 것 입니다.

 

먼저 위 스크린샷에서 나오는 것처럼 ray나 multiprocessing을 전혀 쓰지 않고서 그냥 작동을 하는 형식의 대조군 1번을 하나 만들어 주도록 합니다.

 

진짜로 이 대조군은 12회 1차 for loop에서 12번 돌고, 각각의  메서드는 또 12회씩 돌아서 총 144번을 모두 하나하나 다 돌아간다고 보면 됩니다.

 

그리고 나서 2번 대조군에서는 그래도 multiprocessing이 얼마나 효율적인지 한번 비교해 보기 위해서 대조군으로 필요하기는 필요하기에 일단 만들려는 시도는 해 봅니다.

 

 

그리고 여기서는 그냥 12개의 프로세스만 만들어서 각각의 프로세스당 12개의 for loop 안에서 텍스트 파일을 만드는 프로세스가 돌아가도록 만들어 주도록 합니다.

 

일단 이렇게 하는 것으로 이제 작업하기 위한 도표를 하나 만들기는 만들엇습니다. 다만, 이렇게 해서 하나 만들어 주기는 주었습나다만, 이제 부터 이걸 채우기 위한 지루하면서도 피곤한 과정에 들어가 봐야 합니다.

 

그런데 여기서 ray의 한가지 문제점이 나오기는 나왔습니다. 너무 오랫동안 프로그램을 돌린 탓일까요? 일단 중간에 잘 나가다가 이렇게 중단이 되어 버리는 문제점이 나왔습니다.

 

이렇게 하나하나 조건을 채워서 하나하나 조건을 냈더니, 일단 가장 쇼킹하기는 쇼킹한 것으로는 우선 2번 대조군에서 가장 우수한 성능이 나왔다는 것 입니다. 어째서 인지 ray가 이나리 multiprocessing이 가장 우수한 성능을 냈다는 시점에서 무언가 할말이 없어집니다.

 

그리고 다음으로 무언가 나오는 것은 일단 cpu갯수를 늘리고, 그 cpu갯수당 할당되는 첫번재 ray의 갯수가 일치할 때 가장 좋은 성과를 내고 있는데, 무언가 이걸 봤을 때, 제가 ray를 사용하는데 무언가 잘못된 것이 있는게 아닌가 하는 생각이 들기도 합니다. 다만 이것에 대해서도 무언가 조사가 추가로 필요한데, 이러는 와중에 30period의 테스트가 다 끝나서, 이거 데이터 분석에 들어가는 것도 일이기는 일입니다.

반응형