Bende 2 tane gösteriyor.
Süper! Harika :-D
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]
Thread overview | |||||||||
---|---|---|---|---|---|---|---|---|---|
|
June 02, 2011 Bir std.parallelism.parallel denemesi | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ali Çehreli (acehreli) | Bende 2 tane gösteriyor. Süper! Harika :-D -- |
June 02, 2011 Bir std.parallelism.parallel denemesi | ||||
---|---|---|---|---|
| ||||
Şu program sizde kaç mikro işlemci çekirdeği gösteriyor?
Eğer birden fazlaysa, şöyle mutlu bir deney yapalım: Aşağıda her öğrencinin işlemi 1 saniye sürdüğü için foreach döngüsünün 4 öğrenci için 4 saniye tutması normaldir:
Ben bir Linux ortamında time ile başlatınca şunu görüyorum: '$ time ./deneme real 0m4.003s <-- 4 saniye Öğrenci işlemlerini bütün çekirdeklere görevler (task) halinde paylaştırmak çok kolay. Programda yalnızca iki değişiklik yapın:
Yani 'öğrenciler' aralığı yerine 'parallel(öğrenciler)' aralığını kullanın. Şimdi 4 saniye bölü çekirdek sayısı kadar sürecektir. Bendeki işlemcinin 4 çekirdeği olduğu için 1 saniyeye iniyor: '$ time ./deneme real 0m1.004s <-- 1 saniye Güzel, değil mi? :D Ali -- |
June 03, 2011 Bir std.parallelism.parallel denemesi | ||||
---|---|---|---|---|
| ||||
Posted in reply to erdem | Gayet hoş bir olanak. -- |
June 03, 2011 Bir std.parallelism.parallel denemesi | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ali Çehreli (acehreli) | Söz işlemcilerden açılmışken ben de ufak bir örnek ekleyeyim. Bu program işlemci bilgisini gösteriyor. Şimdilik sadece X86 işlemcilerle çalışıyor.
-- |
June 03, 2011 Bir std.parallelism.parallel denemesi | ||||
---|---|---|---|---|
| ||||
Posted in reply to mert | Evet, 2.053'te eklenen bir modülün marifeti. Güzel olan, bütün bu iş bir modül ile ve bu kadar kısa bir yazımla gerçekleştirilebiliyor. İfade gücü yüksek: parallel() yazmak, foreach bloğundaki kodların aynı anda birden fazla Öğrenci için birden fazla çekirdek üzerinde işletilebileceğini belirtmeye yetiyor. Hiç nesne kurmak gibi hazırlıklar yapmaya gerek yok. Ali -- |
June 06, 2011 Bir std.parallelism.parallel denemesi | ||||
---|---|---|---|---|
| ||||
Posted in reply to erdem | Uh! Thread bazlı sınıftan kalıtım almadan da oluyormuş demek ki bu iş. Eyvah eyvah... "D" sektörel olarak bir an önce kullanıma hazır olsa iyi olacak. Dersleri okudukça C e C++ da yaptığım çoğu işi hamallık ve zaman kaybı olarak görmeye başladım. -- |
June 06, 2011 Bir std.parallelism.parallel denemesi | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ronin | Alıntı (Ronin): >Uh! Thread bazlı sınıftan kalıtım almadan da oluyormuş demek ki bu iş. Galiba koşut işlemlerde (parallelism) iş parçacıklarının (thread) varlığı hissedilmiyor. (Başka dillerde de öyle.) İş parçacıkları ile açıkça ilgileneceksek std.concurrency var. Şimdi "Eş Zamanlı Programlama" (concurrency) konusunu yazmaya başladım. Doğrusu kendim de yeni öğreniyorum ama aralarında şimdilik görebildiğim farklar şunlar: Alıntı (Ali'nin notları): >Eş zamanlı programlama, bir önceki derste gördüğümüz koşut işlemlere çok benzer. Aslında koşut işlemler de perde arkasında eş zamanlı programlama ile gerçekleşirler. İkisi de işlemlerin farklı iş parçacıkları üzerinde aynı anda işletilmeleri ile ilgilidirler ve bu yüzden birbirleriyle çok karıştırılırlar. Koşut işlemlerle eş zamanlı programlama arasındaki farklar şunlardır:
D hem veri paylaşımına dayanan eş zamanlı programlamayı hem de mesajlaşmaya dayanan eş zamanlı programlamayı destekler. Veri paylaşımına dayanan eş zamanlı programlama ile doğru program üretmek çok zor olduğu için modern programcılık mesajlaşma yöntemi benimsemiştir. Ben de bu derste std.concurrency modülünün sağladığı mesajlaşma olanaklarını anlatacağım. D'nin veri paylaşımına dayanan eş zamanlı programlama olanaklarını ise en sonda çok kısaca değineceğim. Alıntı: >Dersleri okudukça C e C++ da yaptığım çoğu işi hamallık ve zaman kaybı olarak görmeye başladım. Aynı hisleri paylaşıyorum! :) Ben günlük olarak daha çok C++, biraz da C kullanıyorum. Ali -- |