Nasıl çoklu çekirdek kullanımı Yakut veya Python web sitelerini yapmak için?

oy
7

Olsa Python ve Ruby tercüman parçacığı başına bir çekirdek parçacığı var, bunlar potansiyel olarak paylaşılan veri yapılarını korumak için kullanılan küresel bir tercüman kilidi (Gil) olmadığından bu, çoklu işlemci yürütülmesini engeller. C veya C ile yazılmış olan bu languajes içinde bölümleri ++ serbest iş parçacıklı olabilir rağmen Birden süreçleri kullanmadıkça, saf yorumlanır kodu ile mümkün değildir. Bunu başarmak için en iyi yolu nedir? FastCGI kullanarak ? Bir oluşturma küme veya bir çiftlik sanallaştırılmış sunucuların? , JRuby ve Jython onların Java eşdeğerleri kullanarak?

Oluştur 31/08/2008 saat 20:41
kaynak kullanıcı
Diğer dillerde...                            


5 cevaplar

oy
1

Gibi ayrı bir tercüman her tepkiyi, çalışan bir arayüzü kullanın mod_wsgiPython için. Bu çoklu iş parçacığı GIL karşılaşmadan kullanılabilir sağlar.

DÜZENLEME: Görünüşe göre, mod_wsgisalak düzgün uzatma modüllerini nasıl uygulanacağı çözemedim çünkü artık sürecin başına birden fazla tercümanlar destekler. Görünüşe göre kabul edilen mevcut çözüm yüzden hala olsa da, ayrı süreç FastCGI tarzında çalışan istekleri destekler.

Cevap 31/08/2008 saat 20:43
kaynak kullanıcı

oy
4

Bu kadar çözmek istediğiniz hangi sorun tamamen emin değilim, ancak bir apache prefork aracılığıyla piton / Django uygulaması dağıtmak eğer Mod_python apache kullanarak farklı istekleri işlemek için birçok işçi işlemler başlayacaktır.

Tek isteği çoklu çekirdek kullanmak istediğiniz kadar çok kaynak, gerekiyorsa bir göz pyprocessing . Ama o akıllıca olacağını sanmıyorum.

Cevap 31/08/2008 saat 20:53
kaynak kullanıcı

oy
4

hemen ardından da eylemin önüne oturup apache nginx da yazılımın diğer bazı parçası kullanın: raylar kullanarak gerçekleştirmek için 'standart' yolu melez durumlarda (raylar uygulamanın 4 nüsha yani) bir "paket" çalıştırmaktır bir yük dengeleyici olarak.

Bu vb Merb gibi diğer yakut çerçeveler ile bitti, ama ben şahsen o kullanmadıysanız muhtemelen.

OS bunun kendi CPU üzerindeki her melez çalışan ilgilenir.

Eğer yüklerseniz Phusion yolcu aka mod_rails başlatmak ve sizin için de raylar sürecinin birden çok kopyasını durdurmak, bu nedenle benzer bir şekilde birden CPU / çekirdeğiyle arasında yükü yayılıyor sona erecek.

Cevap 31/08/2008 saat 21:41
kaynak kullanıcı

oy
1

Python ve Ruby yılında çoklu çekirdek kullanmak mümkündür, yeni (ağır) süreçleri yumurtlamaya etmektir. Java meslektaşları Java platformunun olanaklarını devralır. Sen Kullanım Java konuları anlamına gelebilir. Yani örneğin GlassFish gibi bazen (çoğunlukla) Java Uygulama Sunucusu Raylar uygulamalar üzerinde Ruby için kullanılan bir nedeni olduğunu.

Cevap 10/10/2008 saat 06:18
kaynak kullanıcı

oy
0

Python için PyProcessing projesi sen konuları kullanmak istiyorsunuz gibi çok süreçlerle programlamak için izin verir. Sanki son zamanlarda yayımlanan 2.6 versiyonunun standart kütüphane yer almaktadır multiprocessing. Modül kurulması ve paylaşılan veri yapıları (sıraları, borular, vs.) ve genel deyimler için desteğe (örneğin, yönetici ve alt havuzlar) erişimi kontrol etmek için bir çok özelliğe sahiptir.

Cevap 10/10/2008 saat 12:24
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more