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

멀티 프로세스를 이용한 병렬처리에 들어가 보기 -完-

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

안녕하세요?

 

이제야 말로 이 멀티 프로세스를 이용해서 한꺼번에 대량의 데이터를 처리하는 작업에 대해서 마무리를 지어야 할 시간인가 봅니다. 아무튼 간에 마지막으로 모든 내용을 올리고 어떻게 하면 안정적으로 테스트용 데이터 셋을 처리하는 데 시간이 걸렸는지에 대해서 한번 올려 보고자 합니다.

 

자식 프로세스의 안정적이며 효율적인 종료를 위해서 아예 exit(self)라는 메서드를 사용해 보도록 바꾸어 보았습니다. 이렇게 하면 종료까지 시간이 끌리지 않을 것이라 생각을 했습니다.

 

이렇게 해서 일단 위 스크린샷처럼 그런데로 종료가 나아져서 그나마 3개의 자식 프로세스가 유지가 되었습니다만, 그것도 시간이 더 있으니까 성공적으로 종료가 되었습니다.

 

결국 마지막으로 짧은 시간이 지나고 나서야, 위 스크린샷처럼 부모 프로세스의 GUI만 남아 있는 것을 확인할 수 있기는 있었습니다.

 

그리고 나서 제대로 결과가 나온 것이 맞는지 아닌지 일단 확인을 해 보니, 우선 10개의 폴더가 생성된 것으로 봐서는 제대로 생성이 된 것은 확실한 듯 합니다.

 

 

그리고 나서 while문을 사용해서 일단 exitStatus라고 해서, 자식 프로세스가 종료된 것이 맞는지 아닌지 체크하는 메서드가 있습니다. 이걸 사용해서 한번 작업해 보도록 합니다.

 

일단 확인결과, 제대로 자식 프로세스가 종료가 되면 1이라고 뜨는 것을 확인할 수 있었습니다. 그런데 문제는 자식 프로세스가 모두 다 종료되고 나서야 1이 뜨는지 여부는 아직 확실하지 않습니다.

 

그리고 나서 위 스크린샷에서 나와 있는 것처럼 다음 시도때는 if문을 사용해서 break를 주도록 합니다. 이렇게 해서 빠져 나오면 이제 종료하라는 메서드가 있습니다.

 

다른건 다 좋았는데, 문제는 exit라는 메서드에 대해서 에러가 나오는 것을 확인할 수 있기는 있었습니다. 이렇게 해서야 문제가 있으니 수정에 들어가 봅니다.

 

그리고 나서 위 스크린샷을 보시면 알 수 있듯이 일단 exit라는 메서드를 quit라는 메서드로 다시 바꾸어 주도록 했습니다. 그리고 나서 다시 시작을 해 봅니다.

 

이번에야 말로 제대로-그리고 안정적으로 부모 프로세스가 종료가 되는 것을 확인할 수 있었습니다. 그리고 나서 이제는 제대로 결과가 나온것이 맞는지 확인을 해 보도록 합니다.

 

일단 확인결과 제대로 된 결과가 나오는 것을 확인할 수 있었습니다. 단지 10배의 경우만이 아니라 다른 경우에 있어서도 제대로 결과가 나온 것을 확인할 수 있었습니다.

 

이제야 제대로 종료가 된다는 것을 알았으니, 이번에는 주석처리로 활용하지 않았는 시간을 측정하는 메서드를 작동 시켜서 한번 확인을 해 보도록 합니다.

 

일단 제대로 해서 결과가 나오기까지 확인을 해 보니까, 모든 시간이 1분 3초 밖에 걸리지 않는 것을 확인할 수 있기는 있었습니다. 물론 이것이 이제 데스크톱에서 활용해도 된다는 것은 아닐 수도 있습니다. 일단 이러니 저러니 해도 우선 결과를 확인할 수 있었으니, 다음 단계를 생각해 보아야 겠습니다.

반응형