본문 바로가기

파이썬1297

멀티 프로세스를 이용한 병렬처리에 들어가 보기 -完- 안녕하세요? 이제야 말로 이 멀티 프로세스를 이용해서 한꺼번에 대량의 데이터를 처리하는 작업에 대해서 마무리를 지어야 할 시간인가 봅니다. 아무튼 간에 마지막으로 모든 내용을 올리고 어떻게 하면 안정적으로 테스트용 데이터 셋을 처리하는 데 시간이 걸렸는지에 대해서 한번 올려 보고자 합니다. 자식 프로세스의 안정적이며 효율적인 종료를 위해서 아예 exit(self)라는 메서드를 사용해 보도록 바꾸어 보았습니다. 이렇게 하면 종료까지 시간이 끌리지 않을 것이라 생각을 했습니다. 이렇게 해서 일단 위 스크린샷처럼 그런데로 종료가 나아져서 그나마 3개의 자식 프로세스가 유지가 되었습니다만, 그것도 시간이 더 있으니까 성공적으로 종료가 되었습니다. 결국 마지막으로 짧은 시간이 지나고 나서야, 위 스크린샷처럼 부모.. 2020. 2. 29.
멀티 프로세스를 이용한 병렬처리에 들어가 보기 -9- 안녕하세요? 지난번 포스팅에서 어떻게 부모 프로세스까지 자동으로 모든 작업이 다 완료가 되면 종료시키려고 했습니다만, 문제는 자식 프로세스가 다 종료되고 나서 이렇게 되는 것이 아니라, 먼저 종료가 되고, 자식 프로세스는 자식 프로세스대로 움직이는 문제가 나왔습니다. 그래서 일단 자식 프로세스에서 부모 프로세스로 정보를 전달하기 위해서, 위 스크린샷과 같이 sys.stdout.write라는 식으로 하나 만들어 보았습니다. 그리고 나서 원래의 부모 프로세스로 가서, 위 스크린샷처럼 일단 만들어 놓기는 놓아서, 읽어 오도록 해 봅니다. 이렇게 해서 정보를 가지고 오는데는 성공했느냐 하면........ 우선 10개의 자식 프로세스가 한껀번에 실행이 되는 것 까지는 확인을 할 수 있기는 있었습니다. 그런데 문제.. 2020. 2. 28.
멀티 프로세스를 이용한 병렬처리에 들어가 보기 -8- 안녕하세요? 지난번 포스팅에서 어찌어찌해서 원하는 것과 가장 근접한 결과를 얻는데는 성공했습니다만, 문제는 두번째 progressBar가 없어서 전체적인 프로세스가 어느정도 진행이 되었는지 알아보는데 문제가 많이 있습니다. 그래서 이번 포스팅에서는 이 문제를 해결하기 위해서 움직여 보겠습니다. 먼저 QtDesigner에서 위 스크린샷처럼 자식 프로세스의 GUI를 수정해 주도록 합니다. 별것 아니고 전체 프로세스를 알 수 있는 두번째 작업 표시줄을 표시하도록 합니다. 그리고 나서 먼저 자식 프로세스에서 두번째 작업표시줄을 어떻게 범위를 설정할 것인지 코드를 추가해 주도록 합니다. 이렇게 해서 추가가 되었다면, 다음 코드를 작성하러 가 봅니다. 그리고 당연하다면 당연하게도 두번째로 전체적인 프로세스의 진행상.. 2020. 2. 28.
멀티 프로세스를 이용한 병렬처리에 들어가 보기 -7- 안녕하세요? 지난번 포스팅에서 얼추 그럭저럭 만족할 만하게 돌아갈 프로그램을 만드는 데는 성공했습니다만, 문제는 아직 100%는 아니라고 할까 이래저래 문제가 많이 남아 있습니다. 그래서 이번 포스팅에서는 자동으로 자식 프로세스를 종료시킬 수 있는 방법을 찾아 보고자 합니다. ㅁ너저 자식 프로세스에서 다 끝이 났다는 생각이 들면, 위 스크린샷에서 볼 수 있는 것과 같이 그냥 quit()라는 함수를 추가해 주도록 합니다. 제대로 종료도 안되는 것은 물론이고, 거기다가 새로운 문제가 생겼습니다. 위 스크린샷에서 보이는 것처럼 직접 __init__()에 메인이 되는 메서드를 실행시키라고 하면, GUI가 아예 완료가 될때 까지 뜨지 않는 현상이 벌어졌습니다. 그래서 일단 위 스크린샷처럼 타이머를 두어서 일정 시.. 2020. 2. 28.