Simetrik çoklu işlem - Symmetric multiprocessing

Simetrik bir çok işlemli sistemin şeması

Simetrik çoklu işlem veya paylaşımlı bellekli çoklu işlem ( SMP ), iki veya daha fazla özdeş işlemcinin tek bir paylaşılan ana belleğe bağlandığı, tüm giriş ve çıkış cihazlarına tam erişime sahip olduğu ve tek bir tarafından kontrol edildiği çok işlemcili bir bilgisayar donanım ve yazılım mimarisini içerir. Tüm işlemcilere eşit davranan ve hiçbirini özel amaçlar için ayırmayan işletim sistemi örneği. Günümüzde çoğu çok işlemcili sistem bir SMP mimarisi kullanmaktadır. Durumunda çok çekirdekli işlemci , SMP mimarisi ayrı işlemci olarak tedavi, çekirdeklere uygulanır.

Profesör John D. Kubiatowicz, geleneksel olarak SMP sistemlerinin önbelleksiz işlemcileri içerdiğini düşünüyor. Culler ve Pal-Singh'in 1998 tarihli "Paralel Bilgisayar Mimarisi: Donanım/Yazılım Yaklaşımı" adlı kitaplarında şunlardan bahseder: "SMP terimi yaygın olarak kullanılmaktadır ancak biraz kafa karışıklığına neden olmaktadır. [...] SMP, bir bellek konumuna erişim maliyetinin tüm işlemciler için aynı olduğu, yani erişim gerçekten belleğe olduğunda tek tip erişim maliyetlerine sahip olduğu, paylaşılan bir bellek çok işlemcisidir.Konum önbelleğe alınırsa, erişim daha hızlı olacaktır, ancak önbellek erişim süreleri ve bellek erişim süreleri tüm işlemcilerde aynıdır."

SMP sistemleri, birbirinden bağımsız olarak çalışan homojen işlemcilerden oluşan bir havuza sahip , sıkıca bağlı çok işlemcili sistemlerdir . Farklı programlar yürüten ve farklı veri kümeleri üzerinde çalışan her işlemci, bir sistem veri yolu veya bir çapraz çubuk kullanılarak bağlanan ortak kaynakları (bellek, G/Ç aygıtı, kesme sistemi vb.) paylaşma yeteneğine sahiptir .

Tasarım

SMP sistemleri, iki veya daha fazla homojen işlemci ile tek bir işletim sistemi altında çalışan ana bellek (MM) adı verilen merkezi paylaşılan belleğe sahiptir . Genellikle her bir işlemci olarak bilinen bir özel yüksek hızlı bir hafızaya sahip önbellek (veya önbellek) ana bellek veri erişimi hızlandırmak için sistem veri yolu trafiğini azaltmak için.

İşlemciler, veri yolları, çapraz çubuk anahtarları veya çip üstü ağ ağları kullanılarak birbirine bağlanabilir . Otobüsler veya çapraz çubuk anahtarları kullanan SMP'nin ölçeklenebilirliğindeki darboğaz, çeşitli işlemciler, bellek ve disk dizileri arasındaki ara bağlantının bant genişliği ve güç tüketimidir. Ağ mimarileri bu darboğazları önler ve programlanabilirlikten ödün vererek çok daha yüksek işlemci sayılarına neredeyse doğrusal ölçeklenebilirlik sağlar:

İki farklı programlama modu gerektirdiğinden, bu tür mimaride ciddi programlama zorlukları devam etmektedir; biri CPU'ların kendisi için, diğeri CPU'lar arasındaki ara bağlantı için. Tek bir programlama dili, yalnızca iş yükünü bölümlere ayırabilmeli, aynı zamanda ağ tabanlı bir mimaride ciddi olan bellek konumunu da kavrayabilmelidir.

SMP sistemleri, sistemdeki her bir görevin aynı anda iki veya daha fazla işlemci üzerinde yürütülmemesi koşuluyla, herhangi bir işlemcinin, o göreve ilişkin veriler bellekte nerede bulunursa bulunsun herhangi bir görev üzerinde çalışmasına izin verir. Uygun işletim sistemi desteği ile SMP sistemleri, iş yükünü verimli bir şekilde dengelemek için görevleri işlemciler arasında kolayca taşıyabilir.

Tarih

Birden fazla aynı işlemciye sahip en eski üretim sistemi, 1961 civarında işlevsel olan Burroughs B5000 idi. Ancak çalışma zamanında bu asimetrikti , bir işlemci uygulama programlarıyla sınırlıyken, diğer işlemci esas olarak işletim sistemi ve donanım kesintilerini yönetiyordu. Burroughs D825, ilk olarak 1962'de SMP'yi uyguladı.

IBM, System/360 Model 65'e ve yakından ilişkili Model 67 ve 67–2'ye dayalı çift işlemcili bilgisayar sistemleri sundu . Bu makinelerde çalışan işletim sistemleri OS/360 M65MP ve TSS/360 idi . Üniversitelerde geliştirilen diğer yazılımlar, özellikle Michigan Terminal Sistemi (MTS), her iki CPU'yu da kullandı. Her iki işlemci de veri kanallarına erişebilir ve G/Ç'yi başlatabilir. OS/360 M65MP'de, işletim sistemi çekirdeği her iki işlemcide de çalıştığından (G/Ç işleyicisinin etrafında bir "büyük kilit" olmasına rağmen) çevre birimleri genellikle her iki işlemciye de takılabilir. MTS süpervizörü (UMMPS), IBM System/360 model 67–2'nin her iki CPU'sunda da çalışma yeteneğine sahiptir. Süpervizör kilitleri küçüktü ve her iki CPU'dan da aynı anda erişilebilen bireysel ortak veri yapılarını korumak için kullanılıyordu.

SMP'yi destekleyen diğer ana bilgisayarlar, 1965'te piyasaya sürülen ve üç adede kadar CPU'yu destekleyen UNIVAC 1108 II'yi ve GE-635 ve GE-645'i içeriyordu , ancak çok işlemcili GE-635 sistemlerinde GECOS , aksine Simetrik bir şekilde çalışan çok işlemcili GE-645 sistemlerinde Multics .

Sürüm 7.0 (1972) ile başlayarak, Digital Equipment Corporation'ın işletim sistemi TOPS-10 , SMP özelliğini uyguladı, SMP çalıştıran en eski sistem DECSystem 1077 çift ​​KI10 işlemci sistemiydi. Daha sonra KL10 sistemi, SMP tarzında 8 CPU'ya kadar toplayabilir. Buna karşılık, DEC'lerin ilk çok işlemcili VAX sistemi, VAX-11/782 asimetrikti, ancak daha sonra VAX çok işlemcili sistemler SMP idi.

İlk ticari Unix SMP uygulamaları, Sequent Computer Systems Balance 8000 (1984'te yayınlandı) ve Balance 21000'i (1986'da yayınlandı) içeriyordu . Her iki model de 10 MHz National Semiconductor NS32032 işlemcilere dayanıyordu ve her biri ortak bir belleğe bağlı küçük bir yazma önbelleğine sahip ve paylaşılan bir bellek sistemi oluşturuyordu. Bir diğer erken ticari Unix SMP uygulaması, 1985 yılında VAST Corporation'dan Dan Gielan tarafından tasarlanan NUMA tabanlı Honeywell Information Systems İtalya XPS-100 idi. Tasarımı 14 işlemciye kadar destekleniyordu, ancak elektrik sınırlamaları nedeniyle pazarlanan en büyük sürüm çift işlemcili bir sistemdi. . İşletim sistemi, AT&T içinde dahili olarak kullanılan AT&T 3B20 Unix SysVr3 kodundan VAST Corporation tarafından türetilmiş ve taşınmıştır.

Daha önce ticari olmayan çok işlemli UNIX bağlantı noktaları, 1975'te Donanma Yüksek Lisans Okulu'nda oluşturulan MUNIX adlı bir bağlantı noktası da dahil olmak üzere mevcuttu .

kullanır

Zaman paylaşımı ve sunucu sistemleri, paralel olarak çalışan birden çok işleme sahip olabileceğinden ve birden fazla işlemin çalıştığı bir sistem, farklı işlemcilerde farklı işlemler çalıştırabileceğinden, uygulamalarda değişiklik yapmadan SMP'yi sıklıkla kullanabilir .

Açık kişisel bilgisayarlar , SMP modifiye edilmemiş uygulamalar için daha az kullanışlıdır. Sistem aynı anda birden fazla işlemi nadiren çalıştırıyorsa, SMP yalnızca çok iş parçacıklı (çok görevli) işleme için değiştirilmiş uygulamalar için kullanışlıdır . Özel programlanmış yazılım , birden çok işlemciyi kullanabilmesi için birden çok iş parçacığı kullanmak üzere yazılabilir veya değiştirilebilir.

Çok iş parçacıklı programlar, çoklu iş parçacığını destekleyen zaman paylaşımlı ve sunucu sistemlerinde de kullanılabilir ve böylece birden çok işlemciden daha fazla yararlanmalarına olanak tanır.

Avantajlar dezavantajlar

Mevcut SMP sistemlerinde, tüm işlemciler aynı kutu içinde bir veri yolu veya anahtar ile sıkı bir şekilde bağlanmıştır; önceki SMP sistemlerinde, tek bir CPU tüm kabini alırdı. Paylaşılan bileşenlerden bazıları genel bellek, diskler ve G/Ç aygıtlarıdır. Bir işletim sisteminin yalnızca bir kopyası tüm işlemcilerde çalışır ve işletim sisteminin bu mimariden yararlanacak şekilde tasarlanması gerekir. Temel avantajlardan bazıları, verimi artırmanın uygun maliyetli yollarını içerir. Farklı sorunları ve görevleri çözmek için SMP, paralel programlama olarak bilinen tek bir soruna birden çok işlemci uygular .

Ancak, önbellek tutarlılığı ve paylaşılan nesneler nedeniyle SMP'nin ölçeklenebilirliği üzerinde birkaç sınır vardır .

Programlama

Tek işlemcili ve SMP sistemleri, maksimum performans elde etmek için farklı programlama yöntemleri gerektirir. SMP sistemlerinde çalışan programlar, tek işlemcili sistemler için yazılmış olsalar bile performans artışı yaşayabilirler. Bunun nedeni, donanım kesintilerinin genellikle programın yürütülmesini askıya alması ve bunları işleyen çekirdeğin bunun yerine boş bir işlemcide yürütülebilmesidir. Çoğu uygulamadaki (örneğin oyunlardaki) etki, programın çok daha düzgün çalıştığı görünümü kadar performans artışı değildir. Bazı uygulamalar, özellikle bina yazılımı ve bazı dağıtılmış bilgi işlem projeleri, (neredeyse) ek işlemci sayısı kadar daha hızlı çalışır. (Derleyiciler kendi başlarına tek iş parçacıklıdır, ancak birden çok derleme birimine sahip bir yazılım projesi oluştururken, her bir derleme birimi bağımsız olarak ele alınırsa, bu , tüm çoklu derleme birimli projede utanç verici derecede paralel bir durum yaratır ve derlemenin neredeyse doğrusal ölçeklenmesine izin verir. Dağıtılmış bilgi işlem projeleri, tasarım gereği doğal olarak paraleldir.)

Sistem programcıları işletim sistemine SMP desteği sağlamalıdır , aksi takdirde ek işlemciler boşta kalır ve sistem tek işlemcili bir sistem olarak çalışır.

SMP sistemleri ayrıca talimat setleriyle ilgili daha fazla karmaşıklığa yol açabilir. Homojen bir işlemci sistemi tipik olarak SIMD (MMX, SSE, vb.) gibi "özel talimatlar" için ekstra kayıtlar gerektirirken, heterojen bir sistem farklı talimatlar/kullanımlar için farklı donanım türleri uygulayabilir.

Verim

Aynı anda birden fazla program çalıştırıldığında, farklı programlar aynı anda farklı CPU'larda çalıştırılabildiğinden, bir SMP sistemi tek işlemciden önemli ölçüde daha iyi performansa sahiptir. Tersine, asimetrik çoklu işlem (AMP) genellikle aynı anda yalnızca bir işlemcinin bir programı veya görevi çalıştırmasına izin verir. Örneğin, AMP, görev tamamlamanın önceliğine ve önemine göre belirli görevlerin CPU'ya atanmasında kullanılabilir. AMP, birden fazla CPU'yu işleme açısından SMP'den çok önce oluşturulmuştur; bu, sağlanan örneğe dayalı olarak performans eksikliğini açıklar.

Bir SMP ortamının birçok işi işlediği durumlarda, yöneticiler genellikle donanım verimliliğinde kayıp yaşarlar. İşlemci kullanımının maksimum potansiyeline ulaşması için bilgisayarın işlerini ve diğer işlevlerini zamanlamak için yazılım programları geliştirilmiştir. İyi yazılım paketleri, her bir CPU'yu ayrı ayrı programlayarak ve birden fazla SMP makinesini ve kümesini entegre ederek bu maksimum potansiyele ulaşabilir.

RAM'e erişim seri hale getirildi; bu ve önbellek tutarlılığı sorunları, performansın sistemdeki ek işlemci sayısının biraz gerisinde kalmasına neden olur.

alternatifler

Tipik bir SMP sisteminin şeması. Bir sistem veri yolu veya çapraz çubuk anahtarı aracılığıyla aynı bellek modülüne üç işlemci bağlanır

SMP , genellikle 8 işlemciye kadar daha küçük bilgisayarlar oluşturmak için kullanılan, çok işlemcili makine mimarilerinin en eski stillerinden birini temsil eden tek bir paylaşılan sistem veriyolu kullanır .

Daha büyük bilgisayar sistemleri , farklı bellek bankalarını farklı işlemcilere ayıran NUMA (Tekdüzen Olmayan Bellek Erişimi) gibi daha yeni mimariler kullanabilir . Bir NUMA mimarisinde, işlemciler yerel belleğe hızlı ve uzak belleğe daha yavaş erişebilir. Bu, veriler belirli işlemlere (ve dolayısıyla işlemcilere) yerelleştirildiği sürece bellek verimini önemli ölçüde artırabilir. Olumsuz tarafı, NUMA, iş yükü dengelemede olduğu gibi, verileri bir işlemciden diğerine taşıma maliyetini daha pahalı hale getirir. NUMA'nın faydaları, özellikle verilerin genellikle belirli görevler veya kullanıcılarla güçlü bir şekilde ilişkilendirildiği sunucularda olmak üzere belirli iş yükleriyle sınırlıdır .

Son olarak, tüm belleklerin tüm işlemciler tarafından kullanılamadığı bilgisayar kümeli çoklu işlem ( Beowulf gibi ) vardır. Kümeleme teknikleri, çok büyük süper bilgisayarlar oluşturmak için oldukça yaygın olarak kullanılmaktadır.

Değişken SMP

Değişken Simetrik Çoklu İşlem (vSMP), NVIDIA tarafından başlatılan belirli bir mobil kullanım senaryosu teknolojisidir. Bu teknoloji, mobil aktif bekleme modu, video oynatma ve müzik oynatma sırasında görevleri daha düşük bir frekansta yürütmek için özel olarak oluşturulmuş, Companion çekirdeği adı verilen dört çekirdekli bir cihazda ekstra beşinci bir çekirdek içerir.

NVIDIA tarafından patenti alınan Project Kal-El ( Tegra 3 ), bu yeni vSMP teknolojisini uygulayan ilk SoC (System on Chip) idi. Bu teknoloji, yalnızca etkin bekleme durumundayken mobil güç tüketimini azaltmakla kalmaz, aynı zamanda yoğun mobil uygulamalar için etkin kullanım sırasında dört çekirdek performansını en üst düzeye çıkarır. Genel olarak bu teknoloji, mobil işlemcilerdeki güç tüketimini azaltarak aktif ve beklemede kullanım sırasında pil ömrü performansındaki artış ihtiyacını karşılar.

Mevcut SMP mimarilerinden farklı olarak, vSMP Companion çekirdeği işletim sistemi şeffaftır, yani işletim sistemi ve çalışan uygulamalar bu ekstra çekirdekten tamamen habersizdir, ancak yine de bundan yararlanabilir. vSMP mimarisinin bazı avantajları arasında önbellek tutarlılığı, işletim sistemi verimliliği ve güç optimizasyonu yer alır. Bu mimarinin avantajları aşağıda açıklanmıştır:

  • Önbellek Tutarlılığı: vSMP, Companion çekirdeğinin ve ana çekirdeklerin aynı anda çalışmasına izin vermediğinden, farklı frekanslarda çalışan çekirdekler arasında önbellekleri senkronize etmenin herhangi bir sonucu yoktur.
  • İşletim Sistemi Verimliliği: Birden çok CPU çekirdeğinin farklı eşzamansız frekanslarda çalıştırılması verimsizdir çünkü bu, olası zamanlama sorunlarına yol açabilir. vSMP ile, işletim sistemi zamanlamasını optimize etmek için aktif CPU çekirdekleri benzer frekanslarda çalışır.
  • Güç Optimizasyonu: Asenkron saat tabanlı mimaride, her bir çekirdek, farklı çalışma frekansları için voltaj ayarlamalarını idare etmek için farklı bir güç düzlemindedir. Bunun sonucu performansı etkileyebilir. vSMP teknolojisi, genel güç tüketimini azaltarak, aktif ve beklemede kullanım için belirli çekirdekleri dinamik olarak etkinleştirebilir ve devre dışı bırakabilir.

Bu avantajlar, vSMP mimarisinin asenkron saat teknolojilerini kullanan diğer mimarilere göre önemli ölçüde fayda sağlamasına yol açar.

Ayrıca bakınız

Referanslar

Dış bağlantılar