Pages

Friday, March 27, 2009

Unladen Swallow? Python May Get Fast!

Python's performance right now is somewhere akin to Matlab. However, unlike Matlab, Python is designed for a wide range of computing tasks and is 100% free in all the uses of the term. Furthermore, its syntax is much easier to read and write in making it much easier to code in then C/C++/Fortan/Java and even something like Matlab.

Unfortunately, the noticeably slower performance compared to C/C++/Java is the main barrier keeping it from large scale use. This may soon change. Google hopes to make Python execute 5 times faster by creating a new JIT compiler.

Given how easy it is to code in Python, if it could execute five times faster, (our readers should think 5 times faster then Matlab), Python's popularity could skyrocket even faster then it already is. You will see large scale projects begin to seriously consider Python.

Furthermore, parallelization and mutilcore use is a big goal of this project. From Ars Technica:

Google's Python engineers have launched a new project called Unladen Swallow, which aims to bring a major performance boost to the Python programming language by making runtime speed five times faster...

The goal of the Unladen Swallow project is to use LLVM, the Low Level Virtual Machine compiler infrastructure, to build a just-in-time (JIT) compilation engine that can replace Python's own specialized virtual machine. This approach offers a number of significant advantages. As the developers describe in the project plan, the project will make it possible to transition Python to a register-based virtual machine and will pave the way for future optimizations...

Parallelization and higher utilization of multicore processors is one area where the developers are placing strong focus.

1 comment:

  1. Warning to those spamming in Chinese: Between helpful whistle blowers and Google Translate you will get caught and will be forwarded to /dev/null. (See http://tinyurl.com/c3qwba) :)

    ReplyDelete

To add a link to text:
<a href="URL">Text</a>