Bu konudaki kullanıcılar: 1 misafir, 1 mobil kullanıcı
4
Cevap
0
Tıklama
0
Öne Çıkarma
Oyunlarda çoklu CPU kullanımı..

D DING DING Konu Sahibi
4 ay (269 mesaj)
DX9 API kullanan bir oyunda Mantıksal işlemcilerin kullanımı nasıl olur? anlayamadığım bir konu bu multithreading / multiprocessing kısmı. Mesela bir oyun neden sadece 1 fiziksel çekirdeğe yüklenir ancak diğer fiziksel ve mantıksal çekirdekleri kullanmaz anlamadım.

Python ve C++ kullanırken CPU kullanımı/İşlem paylaştırma(MT) nasıl gerekli düzeyde arttırılabilir? Sağlam türkçe kaynak bulamadım bu konular hakkında.




D Delifisek.Tux
4 ay (2450 mesaj)
İngilizcen yoksa bu tür mevzulara girmeni tavsiye etmem.

İşi birden fazla cpu ya dağıtmak kazık bir iştir. devasa bir task management yapması lazım. kazık bir iştir. Yani oyun motorlarında bu imkanlar açık olsa da, kazık bir iş olduğu için motorlar direk desteklemez. Unreal bazı işleri (mesela lightmap ) multi thread takılabilir ancak bu yapılan işe görede değişir.

yani kazık bir iştir.

Python için

https://docs.python.org/3/library/multiprocessing.html




G Guest-CB67E49D3
4 ay (48 mesaj)
multiprocessing birden çok çekirdek kullanmak. multithreading tek çekirdekteki işleri daha küçük parçalara bölmek oluyor. multiprocessing gerçek anlamda paralel iş yapmak için kullanılır. multithreading de oyunlar için konuşacak olursan paralel iş yapılıyormuş gibi göstermektir. sistemi responsive göstermek için. multiprocessing kullanmak kazık değildir ama multiprocessing ve multithreading'i bir arada kullanmak complex bir yapı oluşturabilir


Bu mesaja 1 cevap geldi.

S seyfi84
4 ay (863 mesaj)
quote:

multiprocessing birden çok çekirdek kullanmak.
alakası yok, tek çekirdekle de multiprocessing olur.
quote:

multithreading tek çekirdekteki işleri daha küçük parçalara bölmek oluyor.
bu dediğin şeyin adı hyperthreading, bir donanım özelliğidir, multithreadingle alakası yok.
quote:

multiprocessing gerçek anlamda paralel iş yapmak için kullanılır.
Unix'te bir pipe açarım, birden fazla process çalışır ama paralel giden hiçbir şey yoktur, ve gayet de gerçektir.
Concurrency ile parallelism arasındaki farkı bilmiyorsun. Aslında hiçbirşey bilmiyorsun, doğru dürüst bir işletim sistemleri dersi almamışsın.
Ben bu konuları 30 yıl önce öğrendim, internet bile yoktu. Sizin haliniz ise bu, yıl 2021.
Bu forumlara takılıp da birşeyler öğrendiğini sananlara Allah akıl fikir versin.





< Bu mesaj bu kişi tarafından değiştirildi seyfi84 -- 4 Şubat 2021; 7:23:27 >

< Bu ileti mobil sürüm kullanılarak atıldı >


K kültürlü cingen
4 ay (764 mesaj)
Hocam selamlar,
Process ve thread kavramlarını donanıma bağlayıp bu seviyeden ayrım yapmak biraz hatalı galiba. Şunu okuyun lütfen anlayacaksıniz
quote:


The threading module uses threads, the multiprocessing module uses processes. The difference is that threads run in the same memory space, while processes have separate memory. This makes it a bit harder to share objects between processes with multiprocessing. Since threads use the same memory, precautions have to be taken or two threads will write to the same memory at the same time. This is what the global interpreter lock is for.

Spawning processes is a bit slower than spawning threads.




Bu mesajda bahsedilenler: @taklacisaklaban
DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.