본문 바로가기

Home > 열린마당 > 공개SW 소식

공개SW 소식

“파이썬 속도 향상”··· 피스톤(Pyston), 개발 재개

OSS관리자3 게시글 작성 시각 2020-11-02 16:10:16 게시글 조회수 4461

10월 30일

ⓒ CIO korea, Serdar Yegulalp, ciokr@idg.co.kr


드롭박스(Dropbox)가 ‘피스톤(Pyston)’ 개발 지원을 철회한 이후, 새롭게 구성된 개발팀이 파이썬 런타임을 최적화하는 JIT(just-in-time)의 최신 버전을 공개했다.


오랫동안 중단됐었던 ‘피스톤’ 개발 작업이 다시 시작됐다. 지난 28일(현지 시각) 드롭박스가 후원을 중단한 이후 처음으로 피스톤 개발팀이 피스톤 2.0을 출시한 것이다. 피스톤은 파이썬 프로그램의 실행 속도를 높이기 위해 JIT 컴파일(just-in-time compilation)을 사용하는 파이썬 런타임 변형이다.


기본적으로 피스톤은 표준 파이썬 런타임인 ‘C파이썬(CPython)’의 대체품을 제공한다. 또한 이는 파이썬 3.8과 호환되므로 해당 버전의 파이썬으로 실행되는 프로그램은 피스톤에서도 그대로 실행된다.


피스톤은 ‘JIT 컴파일’ 또는 ‘JITting’을 사용하여 코드를 생성해 속도를 크게 향상시킨다. 개발팀에 따르면 이는 표준 파이썬 프로그램에서 눈에 띄는 속도 개선을 보여줬다. 반면, ‘파이토치(Pytorch)’와 같이 더 빠른 실행을 위해 C/C++ 모듈을 사용하는 프로그램에서는 속도 향상이 적거나 거의 이뤄지지 않았다.


이 프로젝트의 목표 중 하나는 C파이썬의 원래 구현과 최대한 가깝게 유지하는 것이었다. 많은 서드파티 프로젝트가 C파이썬 동작(CPython behavior)에 대해 가정하기 때문이다. 이에 따라 ‘피스톤 2.0’은 기존 C파이썬 코드베이스에서 시작해, 피스톤 1.0에서 잘 작동했던 기능(예: 캐싱 속성 및 JITting)을 추가했다. 피스톤 JIT는 더 이상 LLVM(Low Level Virtual Machine)을 사용하지 않고, DynASM(Dynamic Assembler)을 사용하여 어셈블리를 직접 생성한다.


JITting은 파이썬 애플리케이션에 속도 향상을 지원하는 다른 프로젝트인 ‘PyPy’에서 사용하는 것과 동일한 기술이다. 이는 때에 따라 C파이썬이 제공할 수 있는 것의 7배에 이르기도 한다.


(후략)


※ 본 내용은 한국아이디지(주) (https://www.idg.co.kr/)의 저작권 동의에 의해 공유되고 있습니다.

Copyright ⓒ 2020 2016 International Data Group. 무단전재 및 재배포 금지.


[ 원문출처 : http://www.ciokorea.com/news/170084 ]

맨 위로
맨 위로