2017.10.23

싸이파이, 대스크, 눔바, 싸이썬, HPAT··· 더 좋아진 필수 파이썬 툴 5종

Serdar Yegulal | InfoWorld
데이터 분석을 마스터하거나 단순히 활용하고 싶다면 파이썬(Python)이 제격이다. 파이썬은 배우기 쉬울 뿐 아니라 지원이 심오하고 광범위하다. 또 대부분의 데이터 과학 라이브러리와 머신러닝 프레임워크에 파이썬 인터페이스가 있다.

지난 수 개월 동안 파이썬을 위한 여러 데이터 과학 프로젝트가 새 버전을 공개한 바 있다. 일부는 대량 고속 처리를 위한 것이며 파이썬 사용자들이 작업에 최적화된 빠른 코드를 더욱 쉽게 작성할 수 있도록 한 것들도 있다.

데이터 과학을 위한 필수적인 파이썬: 싸이파이 1.0(SciPy 1.0)
- 싸이파이의 용도
빠르고 강력한 수학 라이브러리를 사용하고 싶은 파이썬 사용자는 눔파이(NumPy)를 사용할 수 있지만 눔파이 자체가 작업 지향적이지 않다. 싸이파이는 눔파이를 활용하여 선형 대수학부터 통계적 작업과 신호 처리 등의 업무를 수행할 수 있도록 보편적인 수학 및 과학 지향적인 프로그래밍 작업용 라이브러리를 제공한다.

- 싸이파이 1.0이 데이터 과학에 제공하는 지원
싸이파이는 오랫동안 수학 및 통계를 위해 편리하게 널리 사용하는 툴을 제공하는데 유용하게 활용됐다. 버전들 사이에서 탄탄한 하위 호환성을 지원하긴 했지만 오랜 시간 동안 적절한 1.0 버전이 등장하지 못했다.

핵심 개발자 랄프 고머스에 따르면 싸이파이 프로젝트가 버전 1.0이 된 결정적 계기는 해당 프로젝트의 관리 방식 통합이었다. 하지만 여기에는 맥OS(MacOS) 및 윈도우 빌드를 위한 연속 통합을 위한 프로세스뿐만이 아니라 사전 개발된 윈도우 라이브러리를 위한 적절한 지원이 포함되어 있었다. 이 마지막 기능 덕분에 윈도우 사용자들은 이제 추가적인 작업 없이 싸이파이를 사용할 수 있다.

- 싸이파이 다운로드 위치
싸이파이 바이너리(Binary)는 PPI(Python Package Index)에서 또는 pip install scipy를 입력하여 다운로드할 수 있다. 소스 코드는 깃허브(GitHub)에서 확인할 수 있다.

데이터 과학을 위한 필수적인 파이썬: 대스크 0.15.4(Dask 0.15.4)
-대스크란 무엇인가
그 어느 때보다도 처리 능력의 비용이 저렴해졌지만 작업을 여러 CPU 코어나 물리적인 프로세서나 연산 노드(Node) 사이에서 분할하는 강력한 방법으로 활용하기에는 무리가 따른다.

대스크는 파이썬 작업을 가져다가 여러 시스템에서 효율적으로 일정을 조율한다. 대스크의 가장 유용한 기능은 대스크 작업을 실행하기 위해 사용하는 구문이 실제로 파이썬에서 다른 작업을 위해 사용하는 구문과 같기 때문에 기존의 코드를 거의 수정하지 않고도 유용하게 활용할 수 있다는 점이다.

-대스크가 데이터 과학에 제공하는 지원
대스크는 파이썬에서 여러 인기 머신 러닝과 과학 연산 라이브러리를 위한 일부 인터페이스의 자체 버전을 제공한다. 데이터프레임(DataFrame) 객체는 판다스(Panas) 라이브러리의 그것과 같으며, 마찬가지로 어레이(Array) 객체는 눔파이와 같은 방식으로 동작한다. 이런 방식으로 코드의 몇 줄만 변경하여 기존의 코드를 신속하게 병렬화 할 수 있다.

또한 대스크를 활용하여 순수 파이썬으로 작성한 작업을 병렬화할 수 있으며 이런 유형의 작업을 최적화하는데 적합한 객체 유형((Bag 등)이 있다.

- 대스크 다운로드 위치
대스크는 PPI에서 제공되며 pip install dask를 통해 설치할 수 있다. 또한 conda install dask를 입력하여 파이썬의 아나콘다(Anaconda) 배포판을 통해 사용할 수 있다. 소스 코드는 깃허브(GitHub)에서 확인할 수 있다.

데이터 과학을 위한 필수적인 파이썬: 눔바 0.35.0(Numba 0.35.0)
- 눔바란 무엇인가
눔바를 통해 파이썬의 기능이나 모듈을 컴파일(Compile)하여 LLVM 컴파일러 프레임워크를 통해 언어를 어셈블리(Assembly)할 수 있다. 파이썬 프로그램이 실행 중이거나 그 이전에 상황에 따라 이 작업이 가능하다. 이런 측면에서 눔파는 싸이썬(Cython)과 유사하지만 눔바는 좀 더 편리한 경우가 많다. 단, 싸이썬으로 가속화한 코드는 제 3자에게 배포하기가 더 쉽다.

- 눔바가 데이터 과학에 제공하는 지원
눔바가 데이터 과학에 도움이 되는 가장 확실한 방법은 파이썬에서 작성한 작업의 속도를 높여주는 것이다. 순수 파이썬으로 프로젝트의 프로토타입을 작성한 후에 생산에 충분히 빠르게 활용할 수 있도록 눔바로 주석을 달 수 있다.

또한 눔바는 머신러닝과 데이터 과학 애플리케이션을 위해 개발된 하드웨어에서 더욱 빠르게 작동할 수 있게 한다. 이전 버전의 눔바는 CUDA 가속화 코드로의 컴파일을 지원했지만 최근의 버전은 더욱 빠른 컴파일을 위한 새롭고 훨씬 효율적인 GPU 코드 감소 알고리즘을 자랑한다.

또한 눔바는 PA(ParallelAccelerator) 프로젝트를 통해 인텔(Intel)의 기여들을 활용하여 그것들을 자동으로 병렬화함으로써 특정 작업의 속도를 높일 수 있다. 단 주의할 점이 있다. PA 추가는 여전히 실험적이기 때문에 아직 업무 현장에 활용해서는 안 된다.

- 눔바 다운로드 위치
눔바는 PPI에서 제공되며 명령줄에서 pip install numba를 입력하여 설치할 수 있다. 사전 개발 바이너리가 윈도우, 맥OS, 리눅스(Linux) 전체용으로 제공된다. 또한 아나콘다 파이썬 배포판에 포함되어 제공되며 conda install numba를 입력하여 설치할 수 있다. 소스 코드는 깃허브(GitHub)에서 확인할 수 있다.

데이터 과학을 위한 필수적인 파이썬: 싸이썬 0.27(Cython 0.27)
- 싸이썬의 용도
싸이썬은 기존의 파이썬 코드를 훨씬 빠르게 구동할 수 있는 C코드로 변환한다. 엔지니어링, 과학, 머신 러닝용으로 작성된 파이썬 프로그램에서 자주 볼 수 있는 것처럼 수학에 치중하거나 엄격한 루프로 실행하는 코드로 변환할 때 편리하다.

- 싸이썬 0.27이 데이터 과학에 제공하는 지원
최신 버전의 싸이썬은 I파이썬/주피터(IPhython/Jupyter) 노트북과의 통합을 위한 지원을 확대한다. 싸이썬 컴파일 코드는 이미 싸이썬 코드가 다른 파이썬 코드인 것처럼 인라인(Inline) 주석을 통해 주피터(Jupyter) 노트북에서 사용할 수 있다.

이제 싸이썬 0.27을 사용하여 프로필 안내 최적화가 활성화된 상태로 주피터를 위한 싸이썬 모듈을 컴파일할 수 있다. 이 옵션으로 만들어진 모듈은 전용으로 생성된 프로필 정보에 기초하여 컴파일 및 최적화되기 때문에 더욱 빠르게 구동한다. 이 옵션은 GCC 컴파일러와 함께 사용할 때 싸이썬용으로 사용할 수 있으며 MSVC 지원은 아직 없다.

- 싸이썬 제공처
싸이썬은 PPI에서 제공되며 명령줄에서 pip install cython으로 설치할 수 있다. 32비트 및 64비트 윈도우, 리눅스, 맥OS용 바이너리 버전이 포함되어 있다. 소스 코드는 깃허브에 있다.

데이터 과학을 위한 필수적인 파이썬: HPAT
- HPAT란 무엇인가
인텔의 HPAT(High Performance Analytics Toolkit)는 클러스터에서 데이터 분석과 머신 러닝을 위한 실험적인 프로젝트다. 파이썬의 하위 세트를 오픈 MPI(Open MPI) 프로젝트mpirun 유틸리티를 사용해 클러스터에서 자동으로 병렬화되는 코드로 컴파일한다.

- HPAT가 데이터 과학에 제공하는 지원
HPAT는 눔바를 사용하지만 해당 프로젝트 및 싸이썬과는 달리 파이썬을 그대로 컴파일하지는 않는다. 대신에 주로 눔파이 어레이와 판다스(Pandas) 데이터 프레임 등 제한적인 파이썬 언어 하위 세트를 취하고 최적화하여 여러 노드에서 실행한다.

눔바와 마찬가지로 HPAT는 특정 함수를 최적화된 것으로 변환할 수 있는 @jit 데코레이터(Decorator)가 있다. 또한 HDF5(HDFS 아님) 파일의 읽기와 쓰기를 위한 네이티브 I/O 모듈이 포함되어 있다.

- HPAT 다운로드 위치
HPAT는 깃허브에서 소스 포맷으로만 제공된다. 바이너리는 제공되지 않는다.



관련 영상 : Python: Programming made easy
ciokr@idg.co.kr



2017.10.23

싸이파이, 대스크, 눔바, 싸이썬, HPAT··· 더 좋아진 필수 파이썬 툴 5종

Serdar Yegulal | InfoWorld
데이터 분석을 마스터하거나 단순히 활용하고 싶다면 파이썬(Python)이 제격이다. 파이썬은 배우기 쉬울 뿐 아니라 지원이 심오하고 광범위하다. 또 대부분의 데이터 과학 라이브러리와 머신러닝 프레임워크에 파이썬 인터페이스가 있다.

지난 수 개월 동안 파이썬을 위한 여러 데이터 과학 프로젝트가 새 버전을 공개한 바 있다. 일부는 대량 고속 처리를 위한 것이며 파이썬 사용자들이 작업에 최적화된 빠른 코드를 더욱 쉽게 작성할 수 있도록 한 것들도 있다.

데이터 과학을 위한 필수적인 파이썬: 싸이파이 1.0(SciPy 1.0)
- 싸이파이의 용도
빠르고 강력한 수학 라이브러리를 사용하고 싶은 파이썬 사용자는 눔파이(NumPy)를 사용할 수 있지만 눔파이 자체가 작업 지향적이지 않다. 싸이파이는 눔파이를 활용하여 선형 대수학부터 통계적 작업과 신호 처리 등의 업무를 수행할 수 있도록 보편적인 수학 및 과학 지향적인 프로그래밍 작업용 라이브러리를 제공한다.

- 싸이파이 1.0이 데이터 과학에 제공하는 지원
싸이파이는 오랫동안 수학 및 통계를 위해 편리하게 널리 사용하는 툴을 제공하는데 유용하게 활용됐다. 버전들 사이에서 탄탄한 하위 호환성을 지원하긴 했지만 오랜 시간 동안 적절한 1.0 버전이 등장하지 못했다.

핵심 개발자 랄프 고머스에 따르면 싸이파이 프로젝트가 버전 1.0이 된 결정적 계기는 해당 프로젝트의 관리 방식 통합이었다. 하지만 여기에는 맥OS(MacOS) 및 윈도우 빌드를 위한 연속 통합을 위한 프로세스뿐만이 아니라 사전 개발된 윈도우 라이브러리를 위한 적절한 지원이 포함되어 있었다. 이 마지막 기능 덕분에 윈도우 사용자들은 이제 추가적인 작업 없이 싸이파이를 사용할 수 있다.

- 싸이파이 다운로드 위치
싸이파이 바이너리(Binary)는 PPI(Python Package Index)에서 또는 pip install scipy를 입력하여 다운로드할 수 있다. 소스 코드는 깃허브(GitHub)에서 확인할 수 있다.

데이터 과학을 위한 필수적인 파이썬: 대스크 0.15.4(Dask 0.15.4)
-대스크란 무엇인가
그 어느 때보다도 처리 능력의 비용이 저렴해졌지만 작업을 여러 CPU 코어나 물리적인 프로세서나 연산 노드(Node) 사이에서 분할하는 강력한 방법으로 활용하기에는 무리가 따른다.

대스크는 파이썬 작업을 가져다가 여러 시스템에서 효율적으로 일정을 조율한다. 대스크의 가장 유용한 기능은 대스크 작업을 실행하기 위해 사용하는 구문이 실제로 파이썬에서 다른 작업을 위해 사용하는 구문과 같기 때문에 기존의 코드를 거의 수정하지 않고도 유용하게 활용할 수 있다는 점이다.

-대스크가 데이터 과학에 제공하는 지원
대스크는 파이썬에서 여러 인기 머신 러닝과 과학 연산 라이브러리를 위한 일부 인터페이스의 자체 버전을 제공한다. 데이터프레임(DataFrame) 객체는 판다스(Panas) 라이브러리의 그것과 같으며, 마찬가지로 어레이(Array) 객체는 눔파이와 같은 방식으로 동작한다. 이런 방식으로 코드의 몇 줄만 변경하여 기존의 코드를 신속하게 병렬화 할 수 있다.

또한 대스크를 활용하여 순수 파이썬으로 작성한 작업을 병렬화할 수 있으며 이런 유형의 작업을 최적화하는데 적합한 객체 유형((Bag 등)이 있다.

- 대스크 다운로드 위치
대스크는 PPI에서 제공되며 pip install dask를 통해 설치할 수 있다. 또한 conda install dask를 입력하여 파이썬의 아나콘다(Anaconda) 배포판을 통해 사용할 수 있다. 소스 코드는 깃허브(GitHub)에서 확인할 수 있다.

데이터 과학을 위한 필수적인 파이썬: 눔바 0.35.0(Numba 0.35.0)
- 눔바란 무엇인가
눔바를 통해 파이썬의 기능이나 모듈을 컴파일(Compile)하여 LLVM 컴파일러 프레임워크를 통해 언어를 어셈블리(Assembly)할 수 있다. 파이썬 프로그램이 실행 중이거나 그 이전에 상황에 따라 이 작업이 가능하다. 이런 측면에서 눔파는 싸이썬(Cython)과 유사하지만 눔바는 좀 더 편리한 경우가 많다. 단, 싸이썬으로 가속화한 코드는 제 3자에게 배포하기가 더 쉽다.

- 눔바가 데이터 과학에 제공하는 지원
눔바가 데이터 과학에 도움이 되는 가장 확실한 방법은 파이썬에서 작성한 작업의 속도를 높여주는 것이다. 순수 파이썬으로 프로젝트의 프로토타입을 작성한 후에 생산에 충분히 빠르게 활용할 수 있도록 눔바로 주석을 달 수 있다.

또한 눔바는 머신러닝과 데이터 과학 애플리케이션을 위해 개발된 하드웨어에서 더욱 빠르게 작동할 수 있게 한다. 이전 버전의 눔바는 CUDA 가속화 코드로의 컴파일을 지원했지만 최근의 버전은 더욱 빠른 컴파일을 위한 새롭고 훨씬 효율적인 GPU 코드 감소 알고리즘을 자랑한다.

또한 눔바는 PA(ParallelAccelerator) 프로젝트를 통해 인텔(Intel)의 기여들을 활용하여 그것들을 자동으로 병렬화함으로써 특정 작업의 속도를 높일 수 있다. 단 주의할 점이 있다. PA 추가는 여전히 실험적이기 때문에 아직 업무 현장에 활용해서는 안 된다.

- 눔바 다운로드 위치
눔바는 PPI에서 제공되며 명령줄에서 pip install numba를 입력하여 설치할 수 있다. 사전 개발 바이너리가 윈도우, 맥OS, 리눅스(Linux) 전체용으로 제공된다. 또한 아나콘다 파이썬 배포판에 포함되어 제공되며 conda install numba를 입력하여 설치할 수 있다. 소스 코드는 깃허브(GitHub)에서 확인할 수 있다.

데이터 과학을 위한 필수적인 파이썬: 싸이썬 0.27(Cython 0.27)
- 싸이썬의 용도
싸이썬은 기존의 파이썬 코드를 훨씬 빠르게 구동할 수 있는 C코드로 변환한다. 엔지니어링, 과학, 머신 러닝용으로 작성된 파이썬 프로그램에서 자주 볼 수 있는 것처럼 수학에 치중하거나 엄격한 루프로 실행하는 코드로 변환할 때 편리하다.

- 싸이썬 0.27이 데이터 과학에 제공하는 지원
최신 버전의 싸이썬은 I파이썬/주피터(IPhython/Jupyter) 노트북과의 통합을 위한 지원을 확대한다. 싸이썬 컴파일 코드는 이미 싸이썬 코드가 다른 파이썬 코드인 것처럼 인라인(Inline) 주석을 통해 주피터(Jupyter) 노트북에서 사용할 수 있다.

이제 싸이썬 0.27을 사용하여 프로필 안내 최적화가 활성화된 상태로 주피터를 위한 싸이썬 모듈을 컴파일할 수 있다. 이 옵션으로 만들어진 모듈은 전용으로 생성된 프로필 정보에 기초하여 컴파일 및 최적화되기 때문에 더욱 빠르게 구동한다. 이 옵션은 GCC 컴파일러와 함께 사용할 때 싸이썬용으로 사용할 수 있으며 MSVC 지원은 아직 없다.

- 싸이썬 제공처
싸이썬은 PPI에서 제공되며 명령줄에서 pip install cython으로 설치할 수 있다. 32비트 및 64비트 윈도우, 리눅스, 맥OS용 바이너리 버전이 포함되어 있다. 소스 코드는 깃허브에 있다.

데이터 과학을 위한 필수적인 파이썬: HPAT
- HPAT란 무엇인가
인텔의 HPAT(High Performance Analytics Toolkit)는 클러스터에서 데이터 분석과 머신 러닝을 위한 실험적인 프로젝트다. 파이썬의 하위 세트를 오픈 MPI(Open MPI) 프로젝트mpirun 유틸리티를 사용해 클러스터에서 자동으로 병렬화되는 코드로 컴파일한다.

- HPAT가 데이터 과학에 제공하는 지원
HPAT는 눔바를 사용하지만 해당 프로젝트 및 싸이썬과는 달리 파이썬을 그대로 컴파일하지는 않는다. 대신에 주로 눔파이 어레이와 판다스(Pandas) 데이터 프레임 등 제한적인 파이썬 언어 하위 세트를 취하고 최적화하여 여러 노드에서 실행한다.

눔바와 마찬가지로 HPAT는 특정 함수를 최적화된 것으로 변환할 수 있는 @jit 데코레이터(Decorator)가 있다. 또한 HDF5(HDFS 아님) 파일의 읽기와 쓰기를 위한 네이티브 I/O 모듈이 포함되어 있다.

- HPAT 다운로드 위치
HPAT는 깃허브에서 소스 포맷으로만 제공된다. 바이너리는 제공되지 않는다.



관련 영상 : Python: Programming made easy
ciokr@idg.co.kr

X