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

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

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

안녕하세요?

 

이번 포스팅에서는 이제 멀티 프로세싱이 되고, 정보를 전달하는 것이 어느정도 되기 때문에, 다음으로 해야 할일은 제대로 테스트를 해서 결과를 알아보는 일이라고 생각을 했습니다. 그래서 한번 더 정비를 해서, 테스트 데이터 셋을 가지고서 한번 결과를 내어 보고자 합니다.

 

먼저 이 작업을 하기 위해서는 몇번째 for루프에서 작동이 된 QProcess인지 알아보는 것이 중요하기는 중요합니다. 그래서 먼저 기존의 py파일에다가 변형을 가해주도록 합니다.

 

그리고 이 작업을 하기 위해서 위 스크린샷에서 볼 수 있는 것과 같이 rolling에다가 기존에 있던 120에서 60으로 줄여서 작업을 하도록 해 보았습니다.

 

그리고 나서 시각화를 해주는 곳으로 가서는, 위 스크린샷에서 볼 수 있는 것처럼 일단 새로운 폴더를 만들어 주도록 합니다. 왜 이렇게 하느냐 하면, 결과들이 섞여서 보기 어려워질 수 도 있기 때문에, 따로따로 폴더를 만들어서 정리하는 것이 나아 보인다고 생각해서 입니다.

 

그리고 나서 다음으로 해줘야 하는 것은 위 스크린샷에서 보면 알 수있듯이 일단 기존의 main이 되는 py파일에 가서, self.nthnumber를 지정해 주는 것입니다.

 

 

그리고 나서 다음으로는 데이터 베이스 파일로 결과를 저장하는 메서드에 와서도 역시나 같은 내용을 추가시켜 주도록 합니다.

 

그리고 나서 다음으로는 위 스크린샷에서 보이는 것처럼 저장을 하기 위한 메서드에 가서도 역시나 self.nthNumber를 지정해 주도록 합니다.

 

그런데 제대로 자식 프로세스가 실행이 되지 않는 현상이 발생했습니다. 이걸 어떻게 해결하느냐 하면, 먼저 list를 str형식으로 바꾸었다가 다시 list형식으로 바꿔야 하기 때문에 발생하는 문제입니다. 일단 작업을 하기 위해서 위 스크린샷처럼 한번 만들어 주도록 합니다. 이 방법은 변수 = '기존의 str형식이 된 list의 변수명 =' + 기존의 str형식이 된 list의 변수명 이라는 형식으로 지정을 해 주고, exec(변수)라는 함수를 실행시키는 것으로 완성이 됩니다.

 

이렇게 해서 제대로 리스트 형식으로 돌리는데 성공했고, 제대로 진행이 되는 듯해 보였습니다만, 예기치 못한 에러가 발생을 하는 것을 확인할 수 있었습니다.

 

어찌된 것인지 int형식의 변수에다가 문자열을 추가할 수 없다는 내용으로 생각이 되었습니다. 그래서 어떻게 해서든 조치를 취해야 합니다.

 

위 스크린샷처럼 str()함수를 사용한 다음에, 이러저러한 것을 사용해서 작업을 하기는 하였습니다. 아무튼 이렇게 하는 것으로 일단 작업이 완료가 되기는 되었습니다.

 

그리고 나서 이런 에러가 나온 김에 다른 곳 - 데이터 베이스 파일로 저장을 하는 곳에서도 똑같은 에러가 발생할 수 있기에 일단 작업을 해주러 갑니다.

 

이렇게 해서 일단 실험적인 작업이 제대로 돌아는 가는 것 까지는 확인을 할 수 있기는 있었습니다. 그리고 나서 제대로 결과가 나온 것이 맞는지 아닌지 확인을 해 보면.........

 

이렇게 하는 것으로 일단 위 스크린샷에서 나오는 것처럼 제대로 5개의 종목에 대해서 제대로 결과가 나오는 것을 확인할 수 있었습니다. 이제 다음으로는 이걸 조금 더 다듬어야 하는 필요성이 있는데, 이에 대해서는 다음 포스팅에서 다루어 보고자 합니다.

반응형