윈도우즈 업데이트를 이렇게 기다린 적 있었던가? 오랬동안 윈도우즈 10 2004 업데이트를 기다리고 있었다.
2004 업데이트 부터 WSL2 이 공식적으로 적용된다고 했다.
https://docs.microsoft.com/ko-kr/windows/wsl/install-win10#update-to-wsl-2
이제 WSL2 를 사용해봐야겠다.
윈도우즈 업데이트를 이렇게 기다린 적 있었던가? 오랬동안 윈도우즈 10 2004 업데이트를 기다리고 있었다.
2004 업데이트 부터 WSL2 이 공식적으로 적용된다고 했다.
https://docs.microsoft.com/ko-kr/windows/wsl/install-win10#update-to-wsl-2
이제 WSL2 를 사용해봐야겠다.
인터넷에 https://cldellow.com/2018/06/22/sqlite-parquet-vtable.html이 글을 읽고나서 apache Parquet 에 대해 관심이 생겼다. https://github.com/cldellow/sqlite-parquet-vtable이 sqlite 확장을 이용하면 sqlite 를 이용해서 10억 데이터에 대해 query 를 날릴 수 있는 것 같다. 물론 그냥 sqlite 로도 query 를 날릴 수 있긴한데, 좀 많이 느리다. 내가 1000만 데이터를 sorting 하려고 했는데, 이게 좀 많이 느렸다. indexing 을 하면 좀 괜찮긴 한데, 뭔가 DB가 커진 것 같았다. 그래서 좀더 빠르게 query 를 날릴 수 있는 방법을 찾다가 맨 위 블로그를 발견했다.
이 Parquet 라는게 apache arrow 로 통합되었다고 한다. 그래서 코드를 어찌어찌 https://github.com/apache/arrow 을 이용해서 sqlite-parquet-vtable 코드를 수정해봤다. 그런데 메모리 에러가 발생했다. 이 작업을 거의 2달 동안 했는데... 실패했다. (시작할 때는 https://yiunsr.tistory.com/824이 글을 올릴 떄 쯤이니 꽤 오랬동안 붙잡고 있었네...). 뭐, 이런 일은 또 시기가 지나면 버그들이 수정될 테니 그 때 쯤에 다시 도전해봐야겠다.
평소에 GPGPU에 조금씩 관심을 가지고 있었는데, https://github.com/bakks/sphyraena 이 글을 읽고 opencl 에 관심이 생겼다. 위의 프로젝트는 cuda 를 이용해서 sqlite 속도 를 개선 한 것이다. 사실 코드만 봐서는 어떻게 동작하는 것인지 알 수 없다. 이런 방식을 이용한다면 sqlite 속도를 끌어 올릴수 있을 것 같아서 opencl 쪽 동작을 살표보고 있다. cuda 가 아닌 opencl 을 보는 이유는 범용성이 좀 더 좋기 때문이다. cuda 를 지원하는 그래픽 카드도 opencl1.2 까지는 지원하기 때문이다. 맥에서도 아직까지는 1.2 정도는 지원하는 것 같다. 그래서 현재 내가 생각하는 버전은 opencl1.2 이다. 물론 맥이 opencl 을 버린다는 이야기가 있어서 그렇긴 한데, 어째든 opencl1.2 까지는 지원하고 있다.
opencl 을 좀 더 싶게 배우기 위해 pyopencl 을 이용하려고 한다. 어차피 둘다 내부적으로는 C 코드를 컴파일 해서 동작하는 방식이다. 그리고 뭔가 유틸리티가 조금은 잘 갖춰진 것 같다. 공부가 잘 된다면 전부터 고민하고 있던, light spread sheet 에 적용해볼 생각이다.