
안녕하세요. Teus입니다, 오랜만에 인사드립니다. 이번 포스팅에서 살펴볼 내용은 Pandas이후에 Python에서 Data처리용으로 곽광받고 있는 패키지인 Polars에 대해서 다룹니다.1. PolarsPolars를 Pandas와 비슷하게 2차원 형태의 Sheet형 데이터 처리에 특화된 라이브러리 입니다. 특징으로는Pola-rs. Rust기반으로 작성되어, 빠른 속도로 동작을 보장해 줍니다.SIMD를 지원하여 Vectorized 동작을 통해서 빠른 데이터 처리 보장.Multicore를 전부 활용할 수 있는 BackendLazy Execution을 통한 최적화된 IO실험적인 모드로 GPU Support(beta)등의 특징을 볼 수 있습니다.2. 분산처리 라이브러리와 비교.pola-rs이전에도 Pandas..

안녕하세요. Teus입니다.이번 포스팅은, what's new in python3.13 에서 새롭게 소개된 실험적 기능 중 하나인python jit compiler를 빌드하는 방법을 소개하고, 간단하게 일반 python과의 성능 차이에 대해서 알아봅니다.0. JITPEP 744 – JIT CompilationGIL때문에 관심을 전혀 받지 못하고 있었지만,Python자체적으로 JIT(Just In Time) Compiler가 준비되고 있었고해당 기능이 이제 Experimental Feature로 사용이 가능하게 되었습니다.Python의 Jit같은 경우, “copy-and-patch” 기술을 사용해서 High-level로 작성된 코드의 byte code 최적화를 가능하게 해줍니다.혹시 copy-and-pat..

안녕하세요. Teus입니다.이번 포스팅은 Python 3.13버전 릴리즈와 함께 공개된Free-Threaded CPython을 빌드하고, 테스트 해본 내용을 담아봅니다.0. GILGIL은 예전부터 제 포스팅에 자주 등장했지만Python의 GC를 구현하기 위해서 한순간에는 하나의 Thread만 실행 가능하게 만드는 Lock의 일종 입니다.그래서, Python을 사용할 경우 Thread를 썼지만 다수의 코어를 활용하지 못하는 속상한 상황이 벌어집니다.(멀티코어를 동시에 사용하지 못하는 거세당한 python의 멀티Thread🥺)하지만 python.org의 discussion을 통해서 GIL-free상태의 Python의 개발 방향에 대해서 논의된 적이 있습니다.그리고, 로드맵에 있던 대로 기본 모드가 아니라별..

안녕하세요. Teus입니다.이번 포스팅은 Python의 GIL 관련 Python.org내부 discussion 번역& 정리 입니다.2023년 글이라, 현재는 어떻게 진행되고있는지는 불확실 하지만대략 2023년에 Python의 GIL관련 핵심개발자(Core Dev)의 생각을 옅볼 수 있습니다.Python.org GIL토론글0. 요약.CPython의 GIL을 제거하는 빌드를 만들고, 이를 커뮤니티와 싸바싸바 잘 하여서 제거 해보겠다는 마스터 플랜 입니다.중간에 Python2 -> 3의 이야기가 있는데, Python3으로 넘어가는 과정에서 하위호환을 챙기지 못한 부분이 두고두고 문제가 되었던 것으로 판단됩니다.Python4가 아닌, Python3에서 GIL관련된 문제를 해결해 보겠다는 장기적인 로드맵을 확인해..

안녕하세요. Teus입니다.이번 포스팅은 Python의 Multiprocessing을 사용하는 과정에서 발생하는 문제점들을 탐구하는 포스팅 입니다.0. Python의 Multiprocessing예전부터 이야기 하지만, Python의 GIL 때문에, Python에서 Multicore의 이점을 가져가기 위해선 MultiThreading이 아니라 Multiprocessing이 필요합니다.이런 Prcoess끼리는 서로 Data와 Heap, Stack을 공유하지 않기 때문에Process를 생성하고, 해당 Process가 새로운 작업을 시작하는데는 Thread를 사용하는것 보다 많은 시간이 요구됩니다.import multiprocessing as mpimport threadingimport timeitdef foo..

안녕하세요. Teus입니다.이번 포스팅은 asyncio의 저수준 api를 사용해서어떻게 바닥부터 비동기 함수를 만드는지에 대해서 asyncio.sleep 조교와 함께 알아보겠습니다.0. asyncio.sleeppython에서 가장 처음 asyncio를 접할 경우아마도 십중 팔구 asyncio.sleep을 통해서 async를 쓰면 좋다고 전도받습니다.#https://docs.python.org/3/library/asyncio-runner.htmlasync def main(): await asyncio.sleep(1) print('hello')asyncio.run(main())근데 이상하게도 아래처럼 만든 함수를 사용하면 async의 힘을 사용할 수가 없습니다async def my_async_sl..
- Total
- Today
- Yesterday
- 알고리즘
- heap
- 완전탐색 알고리즘
- 분할정복
- javascript
- git
- Sort알고리즘
- ChatGPT
- 셀프모청
- Search알고리즘
- 이분탐색
- 자료구조
- Python
- Greedy알고리즘
- stack
- 코딩테스트
- prime number
- 모바일청첩장
- SIMD
- 동적계획법
- 청첩장
- GPT
- 병렬처리
- LLM
- AVX
- GDC
- hash
- react
- 프로그래머스
- 사칙연산
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |