본문 바로가기

Programming/Python_Etc

파이썬보다 35,000배 빠른 언어 모조 (Mojo)

반응형

오랫만에 Python 관련 포스팅을 하나 할까 합니다. 최근에 Python보다 35,000배 빠른 언어가 나타났다는 기사를 봤습니다. 잉? 뭐지? 인터프리터 언어가 아닌건가? 속도로만 치면 빠른 언어는 많은데...무슨 소리지? 하는 궁금증이 들더군요. 오늘은 Python의 새로운 대안언어라는 타이틀을 들고 나온 "Mojo언어"에 대해 알아보도록 하겠습니다.

 

Mojo �

 

Mojo 🔥: Programming language for all of AI

Mojo combines the usability of Python with the performance of C, unlocking unparalleled programmability of AI hardware and extensibility of AI models.

www.modular.com

 

1. 탄생 배경

Mojo 언어는 Swift의 개발자로 잘 알려진 크리스 래트너(Chris Lattner)가 개발했습니다. Python의 장점은 다양한 라이브러리와 풍부한 문서화로 인해 데이터 분석 분야에 널리 쓰이고 있지만 치명적인 단점이 있습니다. 인터프린터 언어가 내재하고 있는 속도의 한계로 인해 대용량 데이터 처리나 실시간 처리를 하기에는 너무 느리다는 거였죠. LLVM과 Clang의 공동 개발자였던 크리스 래트너역시 본인이 세운 Machin Learning회사인 Modular Inc.에서 Python으로 수행하던 머신러닝 태스크를 돌리기 위해서는 C, C++을 빌리지 않을 수 없었는데요, 이런 불편함을 해소하고자 개발하게 된 것이 Mojo의 탄생 배경입니다.

 

2. 상세

Mojo는 Python의 한계를 극복하고자 만들어진 새로운 패러다임의 언어입니다. 기존의 python 문법을 그대로 유지하면서도 빠른 속도를 자랑합니다. 문법 뿐만 아니라 기존의 Python 라이브러리들을 사용할 수 있다고 하는데 아직 100% 호환이 되는지 밝혀지진 않았지만 이게 사실이라면 엄청난 장점이 아닐 수 없습니다. 또한 컴파일러 언어이기 때문에 단일 패키지로 배포도 가능합니다.

 

3. 빠른 속도

망델브로 집합 연산을 실시한 결과를 바탕으로 보면 Python 3.10.9버전과 비교하여 35,000배의 속도를 나타내고 있습니다. 이는 C++보다도 빠른 수준인데, 어떻게 이렇게 빠른 수행이 가능할까요?

  Mojo언어는 JIT 컴파일러 방식을 채택하여 기존의 Python과 비교하여 높은 실행 속도를 자랑하고 있습니다. 하지만 단순히 JIT컴파일러 방식만으로는 충분치 않음이 최근 문제로 제기되었습니다. 이를 해소하고자 도입된 방법이 멀티쓰레드 기술과 MLIR 활용입니다.

 

  기존의 Python은 싱글쓰레드로 동작하는데 반해 Mojo는 멀티스레드를 이용한 병렬처리가 가능합니다. 작성된 코드를 동시에 병렬 처리하게 되면 빠른 실행과 함께 효율적인 메모리 관리가 가능하여 대용량 데이터처리에 유리해집니다.

 

  MLIR(Multi-level Intermediate Representation)는 Mojo언어를 중간코드로 변환하고 최적화하는 기술입니다. 이를 통해 최적화된 최종 코드를 생성할 수 있으며 성능을 더욱 개선하는데 큰 기여를 합니다.

 

4. 시작방법

아직은 초기 개발단계인 관계로 일반 유저들에게 Open되기 전입니다. 대신 waitlist를 받아 일부 개발자들에게 허용하고 있습니다. 아래의 사이트에서 신청하면 되고 아래의 사이트에서 이름, 메일주소 등을 입력하여 신청할 수 있습니다.

Modular: Get started today

 

Modular: Get started today

Get started with Modular and tell us how we can help you scale your AI workloads with our next generation developer platform.

www.modular.com

반응형