본문 바로가기

전체 글192

성능 및 코드 간결성 비교 numba.vectorize vs numba.jit 간편하면서도 강력한 Python JIT 도구 numba 의 맨 마지막에 언급한 바와 같이 numba.vectorize 를 이용하여 생성한 ufunc 는 element-by-element fashion 때문에 몇 가지 제약이 존재한다. 그 중 여기서 언급할 것 중 하나는 출력의 dimension이 입력의 dimension과 동일하다는 제약이다. 흑백 이미지 한 장입 입력받고 칼라 이미지를 출력하는 기능을 수행하는 함수를 numba 를 이용하여 구현하고자 할 때, vectorize 를 이용하여 생성된 ufunc 의 단일 호출로는 불가능하다. 이때는 numba.jit 를 사용해야 한다. 아래에 vectorize 를 이용한 func1 과 jit 를 이용한 func2 를 제시한다. func1 은 매개변수로 들어온.. 2018. 6. 19.
간편하면서도 강력한 Python JIT 도구 numba Python 에서 N차원 실수 형식의 배열(대체적으로 2차원 이미지 데이터, 2차원 GIS 수치 데이터, 1차원 벡터 데이터 등)을 고속으로 데이터를 처리하기 위해 몇 가지 방법을 알아보았었다. 가장 먼저 생각난 것은 Java 에서 경험해 보았던 JNI(Java Native Interface) 와 같이 C/C++ 로 제작된 바이너리와 이를 감싸는 인터페이스를 이용하여 구현하는 방식이었다. C/C++ 로 제작된 바이너리는 CPU 에서 직접 구동되는 네이티브 프로그램이므로 특수한 경우가 아닌 한 속도가 좀 더 잘 나올 것이다. 또한 병렬 프로그램을 위해 스레드 방식을 사용할 경우 OS 레벨의 스레드 API 를 직접 이용하므로 오버헤드도 적다. 그리고 C/C++ 언어에 쉽게 적용될 수 있는 OpenMP 를 이.. 2018. 6. 19.
tistory api 사용을 위한 access token 얻는 방법 (no browser only command line) 예전에 아주 잠깐 Windows Live Writer 라는 것을 사용했던 적이 있다. 편리해서 사용했다기 보다는 티스토리 웹에서 글을 작성하는 것이 너무 힘들어서였다. 다른 블로그를 보면 글 내용 뿐만 아니라 편집(구성?? 이라고 해야하나.. 디자인??은 좀 좁은 의미 같고..)이 잘되어 있어 읽기도 편한데.. 웹에서 글을 작성해서 어려운건가.... 하는 생각으로 사용해 보았었다. 도구의 문제는 아니었던것 같다. 웹으로 하나 WLW 로 하나 마찬가지였다. 어쨌든 그 때 WLW 를 사용하기 위해서는 티스토리 블로그 관리자 페이지에서 뭔가 설정을 해 주어야 했었는데, 지금은 뭔가 바뀐 것 같다. 더욱이 공식 가이드(https://www.tistory.com/guide/api/index) 를 보니 access.. 2018. 6. 18.
bash_completion 을 이용한 ssh 호스트 자동 완성 현재 30 개 이상의 SSH 원격 호스트가 ~/.ssh/config 파일에 등록되어 있다.(거의 모두가 포트 포워딩. -_-;) 몇 개를 더 추가해야할 상황이 발생했는데, 더 이상은 하나의 파일로 관리하기 힘들것 것 같아서 ~/.ssh/config 파일을 분리하기로 했다. ~/.ssh/config 파일의 내용은 아래와 같이 수정했다. IdentityFile ~/.ssh/pjh Include ./config.d/*.config 기존의 ~/.ssh/config 의 내용들은 모두 ~/.ssh/config.d/*.config 의 각 파일로 분리하였다. 예를 들어 ~/.ssh/config.d/home.config 라는 파일이 아래와 같이 작성되어 있다. Host home.rpi1 HostName home.jrr... 2018. 6. 5.