ok.
tentang microthreads, memang tidak menghilangkan semua problem dengan GIL.

tapi sekali lagi, scalable atau tidak scalable itu ga tergantung dari
language, tetapi juga dari desain platformnya.


pemikiran yang salah:
python ada problem dengan GIL, ga bisa memanfaatkan multicore off-the-shelf
seperti clojure atau scala --> apa saja yang menggunakan python pasti ga
scalable

SALAH BESAR.

google appengine, memilih python sebagai bahasa utamanya (java adalah
pilihan kedua).
walaupun GIL tidak membuat penggunaan multicore hal yang mudah, pendekatan
grid appengine juga tidak memerlukan multithreading. dengan menggunakan
multiprocessing saja, paralelism dan utilisasi cpu multicore tetap maksimal.


appengine cuma membuat rule: developer ga boleh pake library thread. puff,
problem GIL hilang ditelan bumi.

scalability diperoleh dengan mendistribusikan ke banyak process.

di dalam distributed computing yang sesungguhnya, faktor penentu bukanlah
multithreading, tetapi seberapa cepat message passing (antar process)
dilakukan. misal dalam cluster map/reduce, paralelisme diperoleh tanpa
memerlukan multithreading.
stackless didesain untuk paralelisme dalam distributed computing, message
passing dilakukan dengan cepat.

mana yang lebih mudah untuk scale, menambah jumlah mesin atau menambah
jumlah core dalam 1 cpu?

sepertinya google memilih untuk scale up dengan banyak commodity computer,
commodity memory, commodity disk, ketimbang meningkatkan jumlah core dalam
cpu (yg jelas terbatas).

statement yg sama berlaku juga untuk misalnya, kalau pakai PHP pasti ga
scalable. belum tentu.

2009/11/18 Jaimy Azle <jaz...@gmail.com>

>
>
> On Monday, November 16, 2009, 8:51:55 PM, Daniel Baktiar wrote:
>
> > hi, masalah global lock tersebut kan sudah dapat diatasi dengan
> > stackless python. stackless python dengan microthreads bisa scale
> > setara dengan erlang ataupun scala.
>
> gak juga, microthread tidak sepenuhnya bisa mengatasi masalah yang
> terkait dengan GIL ini, hanya memberikan fleksibilitas yang lebih
> baik. Namun masalahnya utamanya tetaplah sama.
>
> "Stackless Python allows you to use lightweight threads (tasklets)
> that can be switched with less overhead and it allows for
> cooperative multitasking with the intention of making async
> programming easier. This helps with IO ound applications where you
> can have tens of thousands of tasklets running at the same time (try
> doing that with threads). It does not however allow you to take
> advantage of multi-core or multi-processor resources. It simply
> allows you to squeeze the most amount of work out of a single
> threaded process. AFAIK attempting to use threads in Stackless makes
> things worse (from what I could gather from the mailing lists)."
>
> http://www.stackless.com/pipermail/stackless/2007-August/001963.html
>
>
> --
> Salam,
>
> -Jaimy Azle
>
> "Great new ideas usually come from very small teams...
> don't give up so easily."
> -- John Kaster
>
>  
>



-- 
-o--o---( ^  ^ )---o--o-
Daniel Baktiar (http://dbaktiar.wordpress.com)

Kirim email ke