2009-12-27 14 views
16

Çokluortam veya dağıtık sistemlerde çok sayıda dosya içeren bir kaynak kodu derleyen Linux'ta herhangi bir yazılım mevcut mudur. Gcc veya xserver gibi kütüphaneler, unicore/dual makinede derleme için çok zaman alır ve çoğu zaman yeniden derleme gerektiğinde sinir bozucu olur. Böyle bir kaynak kodunu derlemek için herhangi bir teknik var mıdır?Programları çok çekirdekli veya dağıtılmış sistem üzerinde derleme

+0

related: http: // stackoverflow. com/questions/414714/g-using-multiple-cores-colouring-ile-çoğul çekirdekler – miku

cevap

27

Dağıtılmış bellek sistemlerinde, derleme işlerini diğer makinelere dağıtmak için distcc kullanabilirsiniz. Bu biraz kurulum gerektirir, ancak etrafınızdaki bazı ekstra makineleriniz varsa, yapınızı gerçekten hızlandırabilir.

Paylaşılan bellek çok çekirdekli sistemlerde, makatlarınızdaki bağımlılıkları temel alarak oluşturma işleri yapmaya çalışan make -j'u kullanabilirsiniz. işlerin sayısında herhangi sınırı sahiptir

$ make -j 

olurken, yoksa bir tamsayı parametresi ile çalıştırabilirsiniz:: Böyle çalıştırabilirsiniz eşzamanlı inşa işlerinin sayısını sınırlar

$ make -j8 

. Burada, sınır 8 eşzamanlı iştir. Genellikle, bunun sisteminizdeki çekirdek sayısına yakın bir şey olmasını istersiniz.

+1

AFAIK orada "işlerin sayısı" iki okul var. Biri n + 1 ve diğer 2n, n ise çekirdek sayısıdır. Her ikisinin de mantığı, her zaman bir kere tamamlandığında bekleyen bir iş parçacığıdır. Şahsen, ben bir jokey – Kimvais

+0

üzerine -j5 veya -j8 koyup koymadığımı da fark etmedim. Multicores'de +1 veya 2n, ancak daha sonra performanstan çok fazla bir düşüş görmedim. Bu seçeneklerden çıkabildiğiniz tüm avantajları elde edemediğinizden şüpheliyim. B/c make çekirdekler veya prizler için yakınlık ayarlamaz, ancak bunu gerçekten denemedim (yapıp yapmadığımı kontrol etmedim bile yakınlık ayarlar, ama bahse girerim). – tgamblin

+1

Bina genellikle IO bağlı. Üzerinde çalışılacak bir sürü küçük dosya, diske çok sayıda veriyi taşımak anlamına geliyor ... Artı çatallar, linux üzerinde ucuzdur, ancak * ölçeklendirmeye katkıda bulunan, bir şeye mal olurlar. Son olarak, özyinelemeli ve diğer zayıf makefile uygulamaları çok fazla * çalabilir *. – dmckee

4

ccache bakmak

+0

ccache, genellikle aynı yapay eserleri yeniden oluşturmanız gerektiğinde gerçekten fayda sağlar ve bunu yapmanız gerekiyorsa, derleme sisteminizin başlangıçta bir kusuru vardır. – JesperE

İlgili konular