2021.05.07

인스타그램, C파이썬 3.8의 성능 중점 포크 ‘신더’ 공개

Paul Krill | InfoWorld
인스타그램 내부에서 사용 중이었던 C파이썬 3.8의 성능 중점 포크 ‘신더(Cinder)’가 깃허브에서 페이스북 인큐베이터(Facebook Incubator) 프로젝트로 제공된다. 신더 개발팀은 코드를 공개하는 목적은 더 빠른 통합 C파이썬이라고 밝혔다. 
 
ⓒGetty Images

또한 이 작업의 일부를 파이썬의 참조 구현체인 C파이썬으로 업스트림하기 위한 논의를 활성화하는 한편, C파이썬 성능과 관련된 작업 중복을 줄이기 위해 신더를 공개했다고 회사 측은 전했다. 

신더는 바이트코드 인라인 캐싱, 적극적인 코루틴 평가, 메소드 단위 JIT 컴파일러, 타입 어노테이션으로 타입에 최적화된 바이트코드를 생성하여 JIT 성능을 개선하는 실험적인 바이트코드 컴파일러 등을 포함한 여러 성능 최적화 기능을 제공한다. 

단, 신더는 다른 사용자를 지원하기 위해 다듬어지거나 문서화되진 않았다. 또한 인스타그램은 독립적인 오픈소스 프로젝트로 지원할 여력이 없으며, C파이썬의 대안이 되고자 하는 마음도 없다고 말했다. 개발팀은 신더가 자사 프로덕션 워크로드에서 사용할 정도로 충분히 안정적이고 빠르긴 하지만 다른 워크로드에서의 안정성, 정확성, 성능에 관해서는 아무런 보장도 하지 않는다고 덧붙였다. 

신더의 인라인 캐싱은 일반 파이썬 옵코드 실행에서 최적화할 수 있는 경우를 파악하고 해당 옵코드를 최적화 버전으로 동적 대체한다. 또 적극적인 코루틴 평가를 위해 신더는 비동기 함수 호출이 즉시 대기하면 호출된 함수를 첫 번째 대기까지 실행한다. 호출된 함수가 기다릴 필요 없이 반환에 도달하면 신더는 코루틴 객체를 생성하거나 이벤트 루프로 지연시키지 않고 해당 값을 직접 반환할 수 있다. 이렇게 하면 비동기 작업이 많은 워크로드에서 CPU 최적화를 수행할 수 있다. 

신더는 리눅스 x64(Linux x64)에서 빌드 및 테스트됐다. 맥OS 등의 다른 플랫폼에서는 아마도 작동하지 않을 것이라고 개발팀은 언급했다. ciokr@idg.co.kr
 



2021.05.07

인스타그램, C파이썬 3.8의 성능 중점 포크 ‘신더’ 공개

Paul Krill | InfoWorld
인스타그램 내부에서 사용 중이었던 C파이썬 3.8의 성능 중점 포크 ‘신더(Cinder)’가 깃허브에서 페이스북 인큐베이터(Facebook Incubator) 프로젝트로 제공된다. 신더 개발팀은 코드를 공개하는 목적은 더 빠른 통합 C파이썬이라고 밝혔다. 
 
ⓒGetty Images

또한 이 작업의 일부를 파이썬의 참조 구현체인 C파이썬으로 업스트림하기 위한 논의를 활성화하는 한편, C파이썬 성능과 관련된 작업 중복을 줄이기 위해 신더를 공개했다고 회사 측은 전했다. 

신더는 바이트코드 인라인 캐싱, 적극적인 코루틴 평가, 메소드 단위 JIT 컴파일러, 타입 어노테이션으로 타입에 최적화된 바이트코드를 생성하여 JIT 성능을 개선하는 실험적인 바이트코드 컴파일러 등을 포함한 여러 성능 최적화 기능을 제공한다. 

단, 신더는 다른 사용자를 지원하기 위해 다듬어지거나 문서화되진 않았다. 또한 인스타그램은 독립적인 오픈소스 프로젝트로 지원할 여력이 없으며, C파이썬의 대안이 되고자 하는 마음도 없다고 말했다. 개발팀은 신더가 자사 프로덕션 워크로드에서 사용할 정도로 충분히 안정적이고 빠르긴 하지만 다른 워크로드에서의 안정성, 정확성, 성능에 관해서는 아무런 보장도 하지 않는다고 덧붙였다. 

신더의 인라인 캐싱은 일반 파이썬 옵코드 실행에서 최적화할 수 있는 경우를 파악하고 해당 옵코드를 최적화 버전으로 동적 대체한다. 또 적극적인 코루틴 평가를 위해 신더는 비동기 함수 호출이 즉시 대기하면 호출된 함수를 첫 번째 대기까지 실행한다. 호출된 함수가 기다릴 필요 없이 반환에 도달하면 신더는 코루틴 객체를 생성하거나 이벤트 루프로 지연시키지 않고 해당 값을 직접 반환할 수 있다. 이렇게 하면 비동기 작업이 많은 워크로드에서 CPU 최적화를 수행할 수 있다. 

신더는 리눅스 x64(Linux x64)에서 빌드 및 테스트됐다. 맥OS 등의 다른 플랫폼에서는 아마도 작동하지 않을 것이라고 개발팀은 언급했다. ciokr@idg.co.kr
 

X