본문 바로가기

병렬처리46

멀티 프로세스를 이용한 병렬처리에 들어가 보기 -3- 안녕하세요? 일단 이번 포스팅에서는 그런데로 결론이 나오기는 나왔습니다. 그런데 문제가 그렇게 좋은 결론이 나오지 않았다는 것이 문제인데, 아무튼 간에 그 결론이 나오는 과정을 그런데로 이번 포스팅에서 보여 드리고자 합니다. 도저히 답이 없기는 없어서 이번에는 기존의 py파일의 3번째 복사본을 만들어 주도록 합니다. 일렇게 해서 아예 새로운 시도를 한번 해 보고자 합니다. 이번에는 아예 multiprocessing이라고 하는 파이썬의 내장 모듈을 그대로 사용하는 것으로 방향을 한번 선회해 보도록 합니다. 그런데 픽클이라고 하는 pickle이라고 하는 문제가 나오기는 나왔습니다. 이 문제가 왜 나왔느냐 하면, pyqt5를 사용하는 한 이 문제는 피해갈 수 없다고 합니다. 그래서 다시 2번째 복사본으로 돌아.. 2020. 2. 25.
멀티 프로세스를 이용한 병렬처리에 들어가 보기 -2- 안녕하세요? 지난번 포스팅에서 어떻게 해서 이래저래 여러개의 프로세스를 동시에 실행시킨 것을 확인할 수 있었습니다. 그런데 문제는 여기에 데이터를 전송해야 하는 문제가 있습니다. 이 문제를 해결하기 위해서 일단 이번 포스팅에서 이래저래 많은 시도를 했는데, 그 내용을 한번 올려보고자 합니다. 먼저 위 스크린샷에서 볼 수 있는 것처럼 일단 윈도 운영체제를 위해서 코드를 추가해 주도록 합니다. 그리고 나서 Popen에 새로운 옵션을 추가해 주도록 합니다. 그리고 나서 일일히 communicate하는 함수를 사용해 주도록 합니다. 이렇게 해서 무언가 변화-통신이 일단 부모 프로세스에서 자식 프로세스로 전달이 될 것을 기대를 했습니다. 결과부터 먼저 이야기를 한번 하자면, 일단 절반의 성공으로 우선 데이터를 제.. 2020. 2. 24.
멀티 프로세스를 이용한 병렬처리에 들어가 보기 -1- 안녕하세요? 멀티 스레드를 이용해서 어떻게 여러개의 조건을 병렬로 처리해 보고자 했습니다만, 그건 뜻대로 되지 않았습니다. 그래서 하는 수 없이 파이썬에서 멀티 스레드가 GIL이라는 락이 있어서 이런 특징이 있다고 하니, 이를 위해서 존재하는 멀티 프로세스를 이용해 보도록 했습니다. 이 작업을 하기 위해서 먼저 기존의 py파일을 복사해서 새로 만들어 준다고 해야 할까요? 일단 복사해서 다른 이름으로 만들어 주도록 합니다. 그리고 나서 기존에 하는 것처럼 for문 아래에 있는 데이터 베이스에서 하나하나 데이터를 읽어오는 문장을 그냥 주석처리 하도록 합니다. 그리고 나서 이번 작업을 하기 위해서, 일단 위 스크린샷처럼 새로운 차일드 프로세스 역할을 할 py파일을 생성해 주도록 합니다. 그리고 나서 다음으로 .. 2020. 2. 23.
초기 테스트에 멀티 스레드를 적용해 보기 -3- 안녕하세요? 이번 포스팅에서는 지난번에 너무 길어서 끊었던 지점부터 이어서 작업을 하는 모습을 보여줄 것인데, 여기서 마지막에 결론이라면 결론이 하나 나오기는 나왔습니다. 아무튼 간에 이 결론에 이르는 과정을 한번 보여드릴까 합니다. 먼저 위 스크린샷처럼 메인 스레드라고 해야 할까요? 일단 여기서 신호를 받게 되면, 그 신호를 받아서 우선은 유용하게 프로그레스 바를 정리할 수 있도록 만들어 주도록 합니다. 그 다음으로위 스크린샷과 같이 현재 상황을 알려주기 위한 신호를 송출하기 위한 메서드도 한번 작성을 해 보도록 합니다. 물론 위치는 바로 Worker에 설치를 해 주어야 합니다. 그리고 나서 당연하다면 당연하게도 원래는 프로그레스 바를 가지고 작업을 하던 곳에서 원래 코드를 주석처리하고, 대신 신호를 .. 2020. 2. 22.