• "Paralel hesaplama" disiplini üzerine dersler - Dersler

    paralel işleme

    paralel işleme

    Paralel işleme, bir uygulama sürecini bir grup işlemci tarafından aynı anda yürütmek için bir modeldir. Paralelliği uygulamanın üç yolu vardır:
    -1 - Bir programa göre çalışan tüm işlemcilerin, ana bilgisayar işlemcisinin kontrolü altında kendi veri dizilerini işlediği, bir talimat akışı ve birkaç veri akışı ile çalışmanın SIMD yöntemi;
    -2- İşlemcilerin programları üzerinde birbirlerinden bağımsız olarak çalıştıkları, ancak ara sıra birbirleriyle iletişim kurdukları, çoklu komut akışları ve çoklu veri akışlarıyla çalışmanın MIMD yöntemi;
    -3- Birden fazla talimat akışı ve bir veri akışı ile çalışmanın MISD yolu.

    İngilizce: paralel işleme

    Finam Finans Sözlüğü.


    Diğer sözlüklerde "Paralel işleme"nin ne olduğunu görün:

      paralel işleme- Birkaç işlemin aynı anda gerçekleştirilebildiği bilgi işleme türlerinden biri. Genellikle ardışık olarak gerçekleştirilen bilinçli işlemenin aksine, bu tür işleme, bilinçli bir çaba olmadan gerçekleşir. Örneğin, bunları okumak ... ...

      - (paralel işleme) Bir programın iki veya daha fazla bölümünün sırayla değil paralel olarak yürütüldüğü bir bilgisayarda çalışma yöntemi. Açıkçası, bu yöntemin kullanımı yalnızca iki veya daha fazla bilgisayarda mümkündür ... ... İş terimleri sözlüğü

      paralel işleme- - Telekomünikasyon konuları, temel kavramlar EN paralel işleme ...

      paralel işleme- lygiagretusis apdorojimas statusas T sritis automatika atitikmenys: engl. paralel işleme vok. Parallelverarbeitung rus. paralel işleme, fpranc. paralellik en paralel, m … Otomatikler terminų žodynas

      paralel bilgi işleme- beynin belirli "fonksiyonel bloklarında" bilginin bir dizi dönüşüme uğradığı beyinde bir bilgi işleme modeli, böylece her an işlenmesi aynı anda (paralel olarak) birkaç ... ... Büyük Psikolojik Ansiklopedi

      PARALEL BİLGİ İŞLEME- Paralel bilgi işlemeye bakın...

      Yol paralel işleme veri Büyük bir sayı MIMD paralelliğini düzenlemek için bir yöntem uygulayan işlemciler. İngilizce'de: Devasa Paralel İşleme İngilizce'deki Eşanlamlılar: MPP Ayrıca bakınız: Paralel İşleme Finam Financial Dictionary ... Finansal kelime dağarcığı

      İŞLEME, PARALEL- Birden fazla işlem dizisinin aynı anda veya paralel olarak yürütüldüğü bilgi işleme. İşleme aşırı derecede içerebilir düşük seviye, kullanılanlar gibi sembolik olmayan bileşenler ... ... Sözlük psikolojide

      paralel boru hattı işleme- lygiagretusis konvejerinis apdorojimas statusas T sritis radioelektronika atitikmenys: angl. paralel boru hattı vok. Parallel Pipelinearbeitung, f rus. paralel boru hattı işleme, f pranc. paralel boru hattı özelliği, m … Radyo elektronik terminų žodynas

      eş zamanlı işlem- paralel işleme - [L.G. Sumenko. İngilizce Rusça Bilgi Teknolojileri Sözlüğü. M.: GP TsNIIS, 2003.] Konular Bilişim teknolojisi genel olarak Eşanlamlılar paralel işleme EN eşzamanlı işleme ... Teknik Tercümanın El Kitabı

    Kitabın

    • Paralel veri işleme
    • Paralel veri işleme, A. O. Latsis. İÇİNDE çalışma Rehberi paralel veri işlemeye yönelik teknolojilerin derinlemesine sistematik bir incelemesi verilmektedir. Odak noktası geleneksel yazılım teknolojileri paralel programlama...

    Rusya Federasyonu Eğitim ve Bilim Bakanlığı

    Federal Eğitim Ajansı

    Güney Rusya Devlet Teknik Üniversitesi

    (Novocherkassk Politeknik Enstitüsü)

    Shakhty Enstitüsü (şube) SRSTU (NPI)

    DİSİPLİN ÜZERİNE DERSLER

    "PARALEL BİLGİSAYAR"

    Madenler - 2010

    giriiş

    Temel konseptler

    1. Genel Konular"büyük sorunları" çözmek

    1.1 Çözmek için süper bilgisayarlar gerektiren modern bilim ve teknoloji sorunları

    1.2.2 Paralel hesaplamanın soyut modelleri

    1.2.3 Paralel veri işleme yöntemleri, hesaplama hatası

    1.3 Paralel işlem kavramı ve paralelleştirme granülleri

    1.4 Paralel süreçlerin etkileşimi, süreçlerin senkronizasyonu

    1.5 Paralel hesaplamada olası hızlanma (Amdahl yasası)

    2. Çok işlemcili bilgi işlem sistemlerinin yapım ilkeleri

    2.1 Çok işlemcili bilgi işlem sistemlerinin mimarisi

    2.2 Çok işlemcili hesaplamaların ve verilerin dağılımı bilgi işlem sistemleri dağıtılmış bellek

    2.3 Paralel bilgi işlem sistemlerinin sınıflandırılması

    2.4 Dağıtılmış belleğe sahip çok işlemcili bilgi işlem sistemleri

    2.4.1 Cry T3 serisinin devasa paralel süper bilgisayarları

    2.4.2 BEOWULF sınıfı küme sistemleri

    Çözüm

    Kaynakça

    giriiş

    Bilgisayar çağının şafağında bile, yaklaşık olarak geçen yüzyılın ortalarında, elektronik bilgisayar tasarımcıları bilgisayarlarda paralel hesaplama kullanma olasılığını düşündüler. Sonuçta, hızdaki artış yalnızca iyileştirmeden kaynaklanmaktadır. elektronik parçalar bilgisayar oldukça pahalı bir yoldur ve üstelik fizik yasalarının dayattığı sınırlamalarla karşı karşıyadır. Böylece paralel veri işleme ve komut paralelliği bilgisayarların tasarımına dahil edildi ve şimdi herhangi bir kişisel bilgisayar kullanıcısı, belki de bilmeden paralel bir bilgisayarda çalışıyor.

    İnsanlığın gelişimindeki göze çarpan eğilimlerden biri, hem şimdiki yaşam koşullarını iyileştirmek hem de geleceği en güvenilir şekilde tahmin etmek için çevreleyen gerçekliğin süreçlerini olabildiğince katı bir şekilde modelleme arzusudur. Matematiksel Yöntemler ve dijital modelleme teknikleri çoğu durumda bu tür problemlerin çözülmesine izin verir, ancak zamanla problem çözme teknolojisinin ciddi niteliksel ve niceliksel komplikasyonları vardır. Çoğu durumda, sınırlama, modern elektronik bilgisayarların bilgi işlem gücünün olmamasıdır, ancak çözülmekte olan görevlerin önemi, süper karmaşık elektronik bilgisayarlar oluşturma alanında büyük mali kaynakları çekmiştir.

    Bir süredir, geleneksel ("von Neumann" olarak adlandırılan) mimariye sahip bilgisayarların hızını artırmak, işlemcilerin üretimindeki teknolojik sınırlamalar nedeniyle çok pahalı hale geldi, bu nedenle geliştiriciler, dikkatlerini üretkenliği artırmanın başka bir yoluna - elektronik bilgisayarları birleştirme - çevirdiler. çok işlemcili bilgi işlem sistemlerine Bu durumda, programın bireysel parçaları, dahili bir bilgisayar ağı aracılığıyla bilgi alışverişinde bulunarak farklı işlemcilerde paralel olarak (ve aynı anda) yürütülür.

    Hem üretkenliği hem de güvenilirliği artırmak için elektronik bilgisayarları birleştirme fikri ellili yılların sonlarından beri bilinmektedir.

    Minimum maliyetle maksimum performans elde etme gereksinimleri, çok işlemcili bilgi işlem sistemlerinin geliştirilmesine yol açtı; binlerce bireysel işlemcinin bilgi işlem gücünü birleştiren bu türden bilinen sistemler. Bir sonraki aşama, gezegenin milyonlarca heterojen bilgisayarını büyük performansa sahip tek bir bilgi işlem kompleksinde birleştirme girişimleridir. İnternet ağları. Bugün, paralel bilgi işlem sistemlerinin kullanımı stratejik bir gelişme yönüdür. bilgisayar Bilimi. "Donanımın" gelişimi, algoritmik ve yazılım bileşenlerinin - paralel programlama teknolojilerinin - iyileştirilmesiyle zorunlu olarak desteklenir.

    Hesaplama paralelleştirme yöntemi uzun süredir var, birçok bağımsız işlemcinin ortak çalışmasının organizasyonu ciddi teorik ve pratik araştırmalar gerektiriyor; geleneksel bir bilgisayara.

    Hesaplamalı problemler için paralelleştirme potansiyeli aynı değildir. çeşitli tipler- birçok döngü ve uzun hesaplamalar içeren bilimsel programlar için önemlidir ve ampirik formüllerle hesaplama ile karakterize edilen mühendislik problemleri için önemli ölçüde daha azdır.

    İki ana soruya bakalım:

    1. Çok işlemcili bilgi işlem sistemleri - (büyük ölçüde paralel süper bilgisayarlar) 40 ila 2176 işlemci sayısına sahip Cray T3D(E). iletişim ağı– üç boyutlu simit, çalışır durumda UNIX sistemi FORTRAN, HPF, C/C++ için mikro çekirdek ve çeviriciler ile. Desteklenen programlama modelleri: MPI, PVM, HPF.

    2. Beowulf iş istasyonları kümeleri. İş istasyonu kümeleri, yerel bir ağa bağlı bir dizi iş istasyonudur. Küme, dağıtılmış belleğe ve dağıtılmış denetime sahip bir bilgi işlem sistemidir. Bir küme sistemi, süper bilgisayarlarınkiyle karşılaştırılabilir performansa sahip olabilir. İş istasyonu kümelerine genellikle yerel olarak bağlanan Beowulf kümeleri (Beowulf kümesi - aynı adlı projeye göre) denir. Ethernet ağı ve Linux işletim sistemini kullanın.

    Temel konseptler

    Küme sistemleri için en yaygın programlama teknolojisi ve paralel bilgisayarlar dağıtılmış bellek ile şu anda MPI teknolojisidir. Bu tür sistemlerde paralel süreçlerin etkileşiminin ana yolu, mesajların birbirine iletilmesidir. Bu, bu teknolojinin adına yansıtılır - Mesaj Aktarma Arayüzü (Message Passing Interface). MPI standardı, hem her bilgi işlem platformundaki programlama sistemi hem de kullanıcı tarafından programlarını oluştururken gözlemlenmesi gereken bir arabirimi düzeltir. MPI, Fortran ve C dilleriyle çalışmayı destekler. Arayüzün tam sürümü, 125'ten fazla prosedür ve işlevin açıklamalarını içerir.

    MPI arabirimi, işlemlerin farklı kaynak metinlerle ilişkilendirilmesini ima eden MIMD (Multiple Instruction Multiple Data) tarzında paralel programların oluşturulmasını destekler. Bununla birlikte, bu tür programları yazmak ve hata ayıklamak çok zordur, bu nedenle pratikte programcılar, tüm paralel işlemler için aynı kodun kullanıldığı SPMD (Single Program Multiple Data) paralel programlama modelini çok daha sık kullanırlar. Giderek daha fazla MPI uygulaması artık sözde "thread'leri" destekliyor.

    MPI bir kitaplık olduğu için, bir program derlenirken uygun kitaplık modüllerinin bağlanması gerekir.

    Yürütülebilir dosyayı aldıktan sonra, gerekli sayıda işlemcide çalıştırmanız gerekir. Başlattıktan sonra, aynı program çalışan tüm işlemler tarafından yürütülecek, yürütmenin sonucu sisteme bağlı olarak terminalde görüntülenecek veya bir dosyaya yazılacaktır.

    Bir MPI programı, bir dizi paralel etkileşimli işlemdir. Tüm süreçler, programın paralel bir parçasını oluşturan bir kez oluşturulur. Bir MPI programının yürütülmesi sırasında, ek süreçlerin oluşturulmasına veya mevcut olanların imhasına izin verilmez (MPI'nin sonraki sürümlerinde bu olasılık ortaya çıktı). Her işlem kendi adres alanında çalışır, MPI'de paylaşılan değişkenler veya veriler yoktur. Süreçler arasındaki iletişimin ana yolu, mesajların açık olarak gönderilmesidir.

    Programın paralel işlemlerinin etkileşimini yerelleştirmek için, onlara ayrı bir iletişim ortamı - bir iletişimci sağlayarak işlem grupları oluşturabilirsiniz. Oluşturulan grupların bileşimi keyfidir. Gruplar tamamen çakışabilir, birbirinin içine girebilir, kesişemez veya kısmen kesişebilir. İşlemler yalnızca belirli bir iletişimci içinde etkileşime girebilir; farklı iletişimcilerde gönderilen mesajlar çakışmaz ve birbirini etkilemez. İletişim cihazları, Fortran'da tamsayı türüne sahiptir (C'de, önceden tanımlanmış MPI İletişim türü).

    Bir programı başlatırken, her zaman tüm alt süreçlerin kapsamlı bir iletişimci çerçevesinde çalıştığı varsayılır. Bu iletişimci her zaman vardır ve herkesin etkileşimine hizmet eder. çalışan süreçler MPI programları. Tüm süreç etkileşimleri belirli bir iletişimci içinde gerçekleşir; farklı iletişimcilerde iletilen mesajlar hiçbir şekilde birbirini etkilemez.

    Azaltılmış komut seti (RISC) işlemcileri. İşlemcinin RISC mimarisinin (RISC - Azaltılmış Komut Seti Bilgisayarı) kalbinde, komut setini basitleştirerek hızını artırma fikri vardır.

    Çalışmalar, tipik bir programdaki talimatların %33'ünün veri aktarımı, %20'sinin koşullu dallar ve diğer %16'sının aritmetik ve mantıksal işlemler. Talimatların büyük çoğunluğunda, adres hesaplaması tek bir döngüde hızlı bir şekilde yapılabilir. Vakaların yaklaşık %18'inde daha karmaşık adresleme modları kullanılır. İşlenenlerin yaklaşık %75'i skaler, yani tamsayı, gerçek, karakter türü vb. değişkenlerdir ve geri kalanı diziler ve yapılardır. Skaler değişkenlerin %80'i yerel ve yapısal değişkenlerin %90'ı küreseldir. Bu nedenle, çoğu işlenen, skaler tipteki yerel işlenenlerdir. Kayıtlarda saklanabilirler.

    İstatistiklere göre, zamanın çoğu "alt program çağrısı" ve "alt program dönüşü" ifadelerini işlemek için harcanıyor. Bu ifadeler derlendiğinde, çok sayıda bellek erişimi olan uzun makine yönergeleri dizileri oluşturur, dolayısıyla bu ifadelerin payı yalnızca %15 olsa bile, işlemci süresinin büyük bölümünü tüketirler. Rutinlerin yalnızca yaklaşık %1'i altıdan fazla parametreye sahiptir ve rutinlerin yaklaşık %7'si altıdan fazla yerel değişkene sahiptir.

    Bu istatistiklerin incelenmesi sonucunda, şu sonuca varılmıştır: tipik program basit işlemler hakimdir: aritmetik, mantıksal ve veri aktarımları. Hakim ve basit modlar adresleme. Çoğu işlenen, skaler yerel değişkenlerdir. Performansı artırmak için en önemli kaynaklardan biri bu operatörlerin optimizasyonudur.

    RISC mimarisi aşağıdaki ilke ve fikirlere dayanmaktadır. Talimat seti sınırlı olmalı ve yalnızca örnekleme ve kod çözme işleminden sonra yürütme süresi bir döngü veya biraz daha fazla olan basit talimatları içermelidir. Boru hattı kullanılır. Basit RISC komutları, donanımda verimli bir şekilde uygulanabilirken, karmaşık komutlar yalnızca mikro programlamada uygulanabilir. RISC mimarisi durumunda kontrol cihazının tasarımı basitleştirilmiştir ve bu, işlemcinin büyük saat hızları. Basit komutların kullanılması, hem veri boru hattı işlemeyi hem de komut yürütmeyi etkili bir şekilde uygulamayı mümkün kılar.

    RISC işlemcisi tarafından gerçekleştirilen karmaşık komutların yürütülmesi daha uzun sürer, ancak bunların sayısı nispeten azdır. RISC işlemcilerde az sayıda talimat belleğe adreslenir. RAM'den veri almak, birden fazla saat döngüsü gerektirir. Komutların çoğu, kayıtlardaki işlenenlerle çalışır. Tüm komutların birleşik bir formatı ve sabit bir uzunluğu vardır. Bu, örneğin işlem kodu ve adres alanı her zaman aynı konumda olduğundan, komutların yüklenmesini ve kodunun çözülmesini basitleştirir ve hızlandırır. Hesaplamaların değişkenleri ve ara sonuçları kayıtlarda saklanabilir. Değişken kullanım istatistikleri göz önüne alındığında, çoğu yerel değişken ve prosedür parametresi kayıtlara yerleştirilebilir. Yeni bir prosedür çağrıldığında, kayıtların içerikleri genellikle ana belleğe taşınır, ancak, kayıt sayısı yeterince büyükse, zaman alan hafıza değiştirme işlemlerinin önemli bir kısmından kaçınmak mümkündür. kayıt işlemleri. Basitleştirilmiş RISC işlemci mimarisi sayesinde, çip üzerinde uyum sağlayacak yer vardır. ek set kayıtlar.

    Şu anda, RISC mimarisine sahip bilgi işlem sistemleri, iş istasyonları ve sunuculardan oluşan küresel bilgisayar pazarında lider bir konuma sahiptir. RISC mimarisinin gelişimi, büyük kayıt dosyasından, ardışık düzenden vb. etkin bir şekilde yararlanması gereken derleyicilerin geliştirilmesiyle bağlantılıdır.

    1. "Büyük sorunları" çözmenin genel sorunları

    "Büyük görevler" terimi genellikle, çözümü yalnızca karmaşık yapıların inşasını gerektirmeyen sorunlar olarak anlaşılır. Matematiksel modeller, ama aynı zamanda programlanabilir elektronik bilgisayarların özelliklerinden çok daha büyük olan çok sayıda hesaplama yapmak. Burada elektronik bilgisayarlar uygun kaynaklarla kullanılır - operasyonel boyut ve harici bellek, bilgi iletim hatlarının hızı vb.

    "Büyük görevler" için hesaplama sayısının üst sınırı, yalnızca mevcut görevlerin performansına göre belirlenir. şu an bilgi işlem sistemleri. Hesaplama problemlerini "çalıştırırken" gerçek koşullar soru "sorunu hiç çöz" değil, "kabul edilebilir bir sürede çöz" (saatler/onlarca saat).

    1.1. gerektiren bilim ve teknolojinin modern sorunları

    süper bilgisayarları çözmek için

    Oldukça sık olarak, toplum için hatırı sayılır bir değeri temsil ederken, göreceli olarak çözülemeyen bu tür görevlerle uğraşmak zorunda kalınır. yavaş bilgisayarlar ofis veya ev sınıfı. Bu durumda tek umut, genellikle süper bilgisayarlar olarak adlandırılan yüksek hızlı bilgisayarlara yerleştirilir. Yalnızca bu sınıftaki makineler büyük miktarda bilginin işlenmesiyle başa çıkabilir. Bu, örneğin istatistiksel veriler veya meteorolojik gözlemlerin sonuçları, finansal bilgiler olabilir. Bazen işlem hızı kritiktir. Örnekler arasında hava tahmini ve iklim değişikliği modellemesi yer alır. Bir doğal afet ne kadar erken tahmin edilirse, ona hazırlanmak için o kadar fazla fırsat vardır. Önemli bir görev, ilaçların modellenmesi, insan genomunun deşifre edilmesi, tıp dahil tomografi, petrol ve gaz sahalarının araştırılmasıdır. Birçok örnek var.

    Hem şimdiki yaşam koşullarını iyileştirmek hem de geleceği güvenilir bir şekilde tahmin etmek amacıyla çevreleyen gerçekliğin süreçlerini modellemek, insanlığın gelişimindeki trendlerden biridir. Dijital modellemenin matematiksel yöntemleri ve teknikleri çoğu durumda bu tür sorunların çözülmesine izin verir, ancak zamanla bu tür sorunları çözme teknolojisi daha karmaşık hale gelir. Çoğu durumda sınırlama, modern elektronik bilgisayarların bilgi işlem gücünün olmamasıdır.

    Minimum maliyetle maksimum performans elde etme gereksinimleri, çok işlemcili bilgi işlem sistemlerinin geliştirilmesine yol açtı; binlerce bireysel işlemcinin bilgi işlem gücünü birleştiren bu türden bilinen sistemler.

    Aşağıda, çözümleri için paralel bilgi işlem kullanan süper bilgisayar gücü gerektiren insan faaliyetinin bazı alanları verilmiştir:

    Atmosferdeki hava, iklim ve küresel değişikliklerin tahminleri

    malzeme bilimleri

    Yarı iletken cihazların yapımı

    süperiletkenlik

    Farmasötiklerin geliştirilmesi

    insan genetiği

    Astronomi

    Büyük boyutlu ulaşım sorunları

    Hidro ve gaz dinamikleri

    Kontrollü termonükleer füzyon

    Petrol ve gaz arama

    Okyanus bilimlerinin hesaplamalı problemleri

    Konuşma tanıma ve sentezi, görüntü tanıma

    En ciddi görevlerden biri, iklim sisteminin modellenmesi ve hava tahminidir. Bu durumda, sürekli bir ortamın dinamiği denklemleri ve denge termodinamiği denklemleri birlikte sayısal olarak çözülür. 100 yıl boyunca atmosferik süreçlerin gelişimini simüle etmek ve ayrıklaştırma elemanlarının sayısı 2,6 × 106'dır (Gezegenin tüm yüzeyi boyunca 20 katman yüksekliğinde enlem ve boylamda 10 adımlı bir ızgara, her bir elemanın durumu 10 bileşenle tanımlanır) herhangi bir zamanda, dünya atmosferinin durumu 2.6×107 sayılarla tanımlanır. 10 dakikalık bir zaman örnekleme adımıyla, simüle edilen zaman aralığı için 5 × 104 topluluk belirlemek gerekir (yani, ara hesaplamaların gerekli 1014 sayısal değeri). 102÷103'te her bir ara sonucu elde etmek için gereken hesaplama işlemlerinin sayısını tahmin ederken, küresel atmosferik modelle sayısal bir deney için gereken toplam kayan nokta hesaplama sayısı 1016÷1017'ye ulaşır.

    İdeal durumda (tam yük ve verimli algoritmalaştırma) 1012 işlem/sn performansa sahip bir süper bilgisayar, böyle bir deneyi birkaç saat boyunca gerçekleştirecektir; için süreci tamamla simülasyon, programın birden fazla (onlarca/yüzlerce kez) çalıştırılmasını gerektirir.

    Süper hesaplama sorunu o kadar önemlidir ki, birçok devlet süper bilgisayar teknolojileri alanındaki çalışmaları denetler.

    Devlet desteği, bilgisayar teknolojisinin üretimi ve kullanımı alanında bağımsızlığın ulusal güvenliğin çıkarına olması ile doğrudan ilgili olup, ülkenin bilimsel potansiyeli, bilgisayarın gelişmişlik düzeyi ile doğrudan ilişkili ve büyük ölçüde bu düzeyde belirlenmektedir. teknoloji ve matematiksel yazılım.

    Karşılaştırmada nesnellik amacıyla, süper elektronik bilgisayarların performansı, önceden bilinen bir test görevinin (İngiliz karşılaştırma ölçütünden "kıyaslama") yürütülmesi temelinde hesaplanır. Pik performans, aralarında bağlantıların yokluğunda birim zamanda gerçekleştirilebilecek maksimum işlem sayısına göre belirlenir. fonksiyonel cihazlar, donanımın potansiyel yeteneklerini karakterize eder ve yürütülmekte olan programa bağlı değildir.

    Bilgisayar tarafından birim zamanda gerçekleştirilen komut sayısı (MIPS, Saniyede Milyon Talimat) olarak en yüksek performansı tahmin etme yönteminin dezavantajı, ayrıntıları dikkate almadığından yalnızca en genel performans fikrini verir. belirli programların (bir kullanıcı arayüzünün kaç tane ve hangi belirli işlemci talimatının görüntüleneceğini tahmin etmek zordur). program).

    Paralel hesaplamanın geniş pratik uygulamasına karşı argümanlar bulunduğuna dikkat edilmelidir:

    Paralel bilgi işlem sistemleri aşırı derecede pahalıdır. Uygulamayla doğrulanan Grosh yasasına göre, bir bilgisayarın performansı, maliyetinin karesiyle orantılı olarak artar; sonuç olarak, gerekli olanı elde etmek çok daha karlı işlem gücü tek bir yüksek performanslı işlemci satın almak, birden fazla yavaş çalışan işlemci kullanmaktan daha iyidir.

    Karşı argüman. Sıralı elektronik bilgisayarların hızlarındaki artış sonsuza kadar devam edemez, bilgisayarlar hızla eskimeye maruz kalır ve yeni modellerin satın alınması için sık sık finansal harcamalar gerekir. Beowulf sınıfından paralel bilgi işlem sistemleri oluşturma uygulaması, bu özel yolun verimliliğini açıkça göstermiştir.

    Paralelliği organize ederken, performans kayıpları gereksiz yere hızlı büyür. Minsky'nin (Marvin Minsky) hipotezine göre, paralel bir sistem kullanıldığında elde edilen hesaplama ivmesi, işlemci sayısının ikili logaritması ile orantılıdır (1000 işlemci ile olası hızlanma sadece 10'dur).

    Karşı argüman. Verilen hızlandırma tahmini, belirli algoritmaların paralelleştirilmesi için doğrudur. Bununla birlikte, paralel çözümü, bir paralel bilgi işlem sisteminin mevcut tüm işlemcilerinin %100'e yakın kullanımını sağlayan çok sayıda görev vardır.

    Seri bilgisayarlar sürekli olarak gelişmektedir. Tanınmış Moore yasasına göre, seri mikroişlemcilerin karmaşıklığı her 18 ayda bir ikiye katlanıyor, bu nedenle "normal" seri bilgisayarlarda gerekli performans elde edilebiliyor.

    Karşı argüman. Benzer bir gelişme paralel sistemlerin karakteristiğidir.

    Bununla birlikte, paralelliğin kullanılması, daha hızlı yeni işlemcilerin geliştirilmesini beklemeden gerekli hesaplama ivmesini elde etmenizi sağlar. Paralelliğin etkinliği büyük ölçüde paralel sistemlerin karakteristik özelliklerine bağlıdır. Tüm modern sıralı elektronik bilgisayarlar, klasik von Neumann şemasına göre çalışır; paralel sistemler, önemli bir mimari çeşitliliği ile ayırt edilir ve paralellik kullanımından maksimum etki, donanımın tüm özelliklerinin tam olarak kullanılmasıyla elde edilebilir (sonuç, paralel algoritmaların ve programların arasında aktarımıdır. farklı şekiller sistemleri zordur ve bazen imkansızdır).

    Karşı argüman. Paralel sistemlerin gerçekten var olan çeşitli mimarileriyle, paralelliği sağlamanın belirli "yerleşik" yolları vardır. Oluşturulan yazılımın değişmezliği standart kullanılarak sağlanır. yazılım araçları paralel bilgi işlem desteği (PVM, MPI, DVM vb. yazılım kitaplıkları). Cray-T3 süper bilgisayarlarında PVM ve MPI kullanılır.

    Seri elektronik bilgisayarların onlarca yıllık çalışması boyunca, sıralı elektronik bilgisayarlara odaklanan devasa yazılımlar birikmiştir; paralel bilgisayarlar için işlenmesi pratik olarak gerçekçi değildir.

    Karşı argüman. Bu programlar, belirlenen görevlere bir çözüm sağlıyorsa, bunların işlenmesine hiç gerek yoktur. Ancak sıralı programlar, sorunlara kabul edilebilir bir sürede çözüm bulunmasına izin vermiyorsa veya yeni sorunların çözülmesine ihtiyaç varsa, o zaman yeni yazılımların geliştirilmesi gerekir ve başlangıçta paralel yürütmede uygulanabilir.

    Sıralı olana kıyasla algoritmanın paralel uygulanması ile hesaplamanın hızlandırılmasında bir sınırlama vardır.

    Karşı argüman. Nitekim, (belirli) bir paya sahip olmayan algoritmalar sıralı hesaplama bulunmuyor. Ancak bu, algoritmanın bir özelliğidir ve genel olarak sorunun paralel bir çözümü olasılığı ile ilgisi yoktur. Paralel sistemlerde problem çözmek için daha uygun olan yeni algoritmaların nasıl uygulanacağını öğrenmek gerekir.

    Bu nedenle, paralel kullanıma karşı her kritik değerlendirme için bilgi işlem teknolojileri az ya da çok önemli bir karşı argüman var.

    1.2 Paralel veri işleme

    1.2.1 Paralel işlemenin temel olasılığı

    Bugüne kadar geliştirilen hemen hemen tüm algoritmalar sıralıdır. Örneğin a + b × c ifadesini değerlendirirken önce çarpmayı sonra toplamayı yapmalısınız. Elektronik bilgisayarlarda aynı anda çalışabilen toplama ve çarpma düğümleri varsa, o zaman bu durum toplama düğümü, çarpma düğümünün işini tamamlamasını beklerken boşta kalacaktır. Belirli bir algoritmayı paralel olarak işleyecek bir makine yapmanın mümkün olduğu iddiasını kanıtlamak mümkündür.

    Aynı anda çalışırken, m işlemciler oluşturmak mümkündür İstenen sonuç hesap makinesinin tek bir saat döngüsü için.

    Bu tür "çok işlemcili" makineler teorik olarak her bir belirli algoritma için oluşturulabilir ve görünüşe göre algoritmaların sıralı doğasını "atlar". Bununla birlikte, her şey o kadar basit değil - sonsuz sayıda özel algoritma var, bu nedenle yukarıda geliştirilen soyut akıl yürütme, pratik anlamla o kadar doğrudan ilişkili değil. Paralelleştirme olasılığına ikna olmuş geliştirmeleri, sınırsız paralellik kavramının temelini oluşturdu ve sözde bilgi işlem ortamlarının - dinamik olarak belirli bir algoritmaya göre ayarlanmış çok işlemcili sistemlerin - uygulanmasını genel bir konumdan değerlendirmeyi mümkün kıldı.

    1.2.2. Paralel hesaplamanın soyut modelleri

    Paralel bilgi işlem modeli, yürütme sürelerini karakterize etmek ve karşılaştırmak için üst düzey bir yaklaşım sağlar. çeşitli programlar, donanım ve yürütme ayrıntılarını soyutlarken. Paralel hesaplamanın ilk önemli modeli, paylaşılan bir bellek makinesinin soyutlamasını sağlayan paralel rasgele erişim makinesiydi (PRAM - Paralel Rastgele Erişim Makinesi). Toplu Eşzamanlı Paralel (BSP) modeli, hem paylaşılan hem de dağıtılmış belleğin soyutlamalarını birleştirir. Tüm işlemcilerin talimatları eşzamanlı olarak yürüttüğü kabul edilir; aynı komutun yürütülmesi durumunda, PRAM soyut bir SIMD makinesidir (SIMD - Tek Yönerge akışı / Çoklu Veri akışı - çoklu veri akışıyla birlikte tek bir komut akışı), ancak işlemciler de çalıştırabilir çeşitli komutlar. Başlıca komutlar bellekten okuma, belleğe yazma ve olağan mantıksal ve aritmetik işlemlerdir.

    PRAM modeli, her işlemcinin herhangi bir zamanda herhangi bir bellek konumuna erişebileceği anlamında idealleştirilmiştir (Bir işlemci tarafından gerçekleştirilen yazma işlemleri, gerçekleştirildikleri sırayla diğer tüm işlemciler tarafından görülebilir, ancak yazma işlemleri tarafından gerçekleştirilen yazma işlemleri farklı işlemciler, herhangi bir sırayla görülebilir). Örneğin, PRAM'deki her işlemci, bir bellek konumundan veri okuyabilir veya bu konuma veri yazabilir. Tabii ki, gerçek paralel makinelerde bu olmaz, çünkü bellek modülleri aynı bellek hücresine fiziksel düzeyde erişim emri verir. Ayrıca, gerçek makinelerdeki bellek erişim süresi, önbelleklerin varlığı ve bellek modüllerinin olası hiyerarşik organizasyonu nedeniyle aynı değildir.

    Temel PRAM modeli, eşzamanlı (bu bağlamda paralel) okuma ve yazma işlemlerini destekler. Birkaç işlemci aynı anda ortak bir belleğe eriştiğinde çakışma durumlarından kaçınmaya izin veren kuralları hesaba katan PRAM alt modelleri bilinmektedir.

    Paralel rasgele erişimli makineler (PRAM) kullanan işlevsel elemanlardan devrelerin modellenmesi, Brent teoremine izin verir. İşlevsel öğeler olarak, 4 ana öğe olabilir (sırasıyla DEĞİL, VE, OR, XOR - olumsuzlama, mantıksal VE, mantıksal OR ve dışlayıcı VEYA mantıksal işlemlerini gerçekleştirir), daha karmaşık NAND ve NOR (AND-NOT ve OR-NOT) , yani ve herhangi bir karmaşıklık.

    Aşağıda, gecikmenin (yani yanıt süresinin - girişlerdeki değerleri ayarladıktan sonra elemanın çıkışında sağlanan sinyal değerlerinin göründüğü süre) tüm işlevsel için aynı olduğu varsayılmaktadır. elementler.

    Döngüler oluşturmadan birbirine bağlı fonksiyonel elemanlar devresini ele alıyoruz (fonksiyonel elemanların herhangi bir sayıda girişi olduğunu varsayıyoruz, ancak tam olarak bir çıkış - birkaç çıkışa sahip bir eleman, tek bir çıkışa sahip birkaç eleman ile değiştirilebilir). Giriş sayısı elemanın giriş derecesini, elemanın çıkışının bağlı olduğu giriş sayısı da çıkış derecesini belirler. Genellikle, kullanılan tüm elemanların giriş derecelerinin yukarıdan sınırlandırıldığı, çıkış derecelerinin ise herhangi biri olabileceği varsayılır. Devrenin boyutu, içindeki eleman sayısı olarak anlaşılır, devrenin girişlerinden elemanın çıkışına kadar olan yollardaki en fazla eleman sayısına bu elemanın derinliği denir (devrenin derinliği eşittir). onu oluşturan unsurların derinliklerinin en büyüğüne kadar).

    Şekil 1. Paralel rasgele erişimli bir makine (PRAM - makine) kullanan iki işlemcili bir devre boyutu 15, derinlik 5'in simülasyonu

    Şekil 1, boyutu (toplam işlemci sayısı) n=15, devre derinliği (derinlik seviyelerinin her birinde maksimum öğe sayısı) d=5 işlemci sayısı p=2 (aynı anda simüle edilen elemanlar dikdörtgen alanlarla gruplar halinde birleştirilir ve her grup için, elemanlarının modellendiği adımla belirtilir; modelleme, artan derinlik sırasına göre yukarıdan aşağıya sırayla gerçekleşir, her derinlikte bir seferde p adet). Brent teoremine göre böyle bir devrenin modellenmesi ceil(15/2+1)=9 adımdan fazla sürmeyecektir.

    1.2.3. Paralel veri işleme yolları, hesaplama hatası

    Bağımsız program bölümlerinin aşağıdaki yürütme modları mümkündür:

    Paralel yürütme - birkaç veri işleme komutu aynı anda yürütülür; bu hesaplama modu, yalnızca birkaç işlemcinin varlığıyla değil, aynı zamanda ardışık düzen ve vektör işlemcilerin yardımıyla da sağlanabilir.

    Dağıtılmış bilgi işlem - bu terim genellikle, birbirinden yeterince uzak olan ve iletişim hatları üzerinden veri iletiminin önemli zaman gecikmelerine yol açtığı birkaç işleme cihazı kullanan bir paralel veri işleme yöntemini belirtmek için kullanılır.

    Bu hesaplamaları düzenleme yöntemiyle, veri işleme yalnızca işlemciler arası veri aktarım akışlarının düşük yoğunluğuna sahip paralel algoritmalar için etkilidir; bu şekilde, örneğin, yerel veya küresel bilgi ağlarının iletişim kanallarını kullanan birkaç ayrı elektronik bilgisayarın birleştirilmesiyle oluşturulan çok bilgisayarlı bilgi işlem sistemleri çalışır.

    Resmi olarak bu liste, işlemleri yürütmek için tek bir işlemcinin kullanıldığı bir çoklu görev modunu (zaman paylaşım modu) içerebilir; bu modda paralel uygulamalarda hata ayıklamak uygundur.

    Verileri paralel olarak işlemenin iki yolu vardır: paralellik ve ardışık düzen.

    Paralellik, verileri işlemek için p özdeş cihazın ve her birinin hesaplamanın bağımsız bir bölümünü gerçekleştirmesine izin veren bir algoritmanın varlığını ifade eder, işlemenin sonunda nihai sonucu elde etmek için kısmi veriler birlikte toplanır. Bu durumda, sürecin ivmesini p kez elde ederiz. Her algoritma bu şekilde başarılı bir şekilde paralelleştirilemez (paralelleştirme için doğal bir koşul, çıktı verilerinin bağımsız bölümlerinin aynı - veya benzer - prosedürler kullanılarak hesaplanmasıdır; yineleme veya yineleme neden olur en büyük problemler paralelleştirme sırasında).

    Boru hattı işleme fikri, ortak bir işlemin yürütülmesinin ayrı aşamalarını ayırmaktır ve her aşama, işini tamamladıktan sonra, aynı anda girdi verilerinin yeni bir bölümünü kabul ederken sonucu bir sonrakine iletir. Her işleme aşaması, veri işleme cihazının kendi bölümü tarafından gerçekleştirilir (taşıma aşaması), her aşama belirli bir eylemi gerçekleştirir (mikro işlem); genel veri işleme, bu parçaların sırayla çalışmasını gerektirir.

    Konveyör, komutları yerine getirirken, ürünün birkaç işyerinden sırayla geçtiği bir montaj fabrikasının konveyörünün işini taklit eder; ve her birinin üzerinde ürün üretilir yeni operasyon. Hızlandırma etkisi, bir dizi ürünün farklı işyerlerinde aynı anda işlenmesi nedeniyle elde edilir.

    Akış veri işleme için işlem hattının tüm aşamaları kullanılarak hesaplamaların hızlandırılması sağlanır (veriler işlem hattının girişine aktarılır ve tüm aşamalarda sıralı olarak işlenir). İşlem hatları, skaler veya vektör cihazları olabilir (tek fark, ikinci durumda komut işleme vektörlerinin kullanılabilmesidir). Bir boru hattı uzunluğu l olması durumunda, n bağımsız operasyon için işlem süresi l+n-1 olacaktır (her aşama birim zaman başına çalışır). Böyle bir cihaz kullanıldığında, girdi verilerinin tek bir bölümünün işlenmesi l × n zaman alacaktır ve yalnızca bir dizi bölüm için l'ye yakın bir hesaplama hızı elde edeceğiz.

    Şekil 2, konveyör cihazının E performansının, girişindeki veri setinin uzunluğu n ile asimptotik olarak büyüdüğünü ve teorik maksimum performans 1/τ'a yöneldiğini göstermektedir.

    Şekil 2. Girdi veri kümesinin uzunluğunun bir fonksiyonu olarak boru hattı cihazının performansı

    1.3. Paralel işlem kavramı ve paralelleştirme granülleri

    Seri ve paralel hesaplamaları gerçekleştirmek için en genel şema Şekil 3'te gösterilmiştir (S ve E süreleri sırasıyla görevin başlangıcı ve sonudur).

    Şekil 3. Sıralı hesaplamada - a), ideal paralelleştirmeye yakın - b) ve genel paralelleştirme durumunda - c) süreçlerin yürütülmesine ilişkin diyagramlar

    İşlem, diğer işlemlerle birlikte yürütmeleri için işlemciyi kullandığını iddia eden belirli bir komut dizisidir; süreç içindeki komutlar (talimatlar) sırayla yürütülür, iç paralellik dikkate alınmaz.

    Şekil 3'te ince çizgiler, süreçler oluşturma ve bunlar arasında veri alışverişi yapma eylemlerini gösterirken, kalın çizgiler süreçlerin gerçek yürütmesini gösterir (apis ekseni zamandır). Ardışık hesaplamalar söz konusu olduğunda, gerekli eylemleri gerçekleştiren tek bir süreç oluşturulur (Şekil 3a); algoritma paralel olarak yürütüldüğünde, birkaç işleme (görevin paralel dalları) ihtiyaç duyulur. İdeal durumda, tüm süreçler aynı anda oluşturulur ve eş zamanlı olarak sonlandırılır (Şekil 3b), genel durumda, süreç diyagramı çok daha karmaşıktır ve bir tür grafiktir (Şekil 3c).

    Paralel işlemlerin her birinde sıralı olarak yürütülen bir talimat grubunun karakteristik uzunluğuna granül (tane) boyutu denir. Her durumda, "kaba taneli" (ideal - diyagram 3b) için çaba gösterilmesi tavsiye edilir. Tipik olarak, bir taneciğin (tanecik) boyutu, on ila yüzbinlerce makine işlemidir (bu, bir Fortran veya C/C++ operatörünün tipik boyutundan çok daha büyüktür). Granüllerin boyutuna bağlı olarak, ince taneli ve kaba taneli paralellikten söz edilir.

    Parçanın boyutu, programlamanın rahatlığından da etkilenir - bir parça biçiminde, programın mantıksal olarak tamamlanmış belirli bir parçası genellikle derlenir. İşlemcilerin tek tip yüklenmesi için çaba gösterilmesi tavsiye edilir.

    Paralel programlar geliştirmek, bir programdaki (genellikle gizli olan) paralelliği saptamanın (yani, bir algoritmanın birbirinden bağımsız olarak yürütülebilen kısımlarını belirlemenin) zorluğu nedeniyle zor bir iştir.

    Algoritmalarda paralellik tespitini otomatikleştirmek kolay değildir ve yakın gelecekte tam olarak çözülmesi pek mümkün değildir. Aynı zamanda, bilgisayar teknolojisinin onlarca yıllık işleyişi boyunca, o kadar çok sıralı algoritma geliştirilmiştir ki, bunların manuel paralelleştirilmesi söz konusu olamaz.

    Eşit en basit model paralel bilgi işlem önemli bir durumu ortaya çıkarır - veri alışverişinin süresi, parçayı oluşturan komut dizisinin yürütme süresinden mümkün olduğunca kısa olmalıdır.

    Gerçek problemler için (geleneksel olarak), bir paralelleştirme tanesinin karakteristik boyutu, geleneksel bir programlama dilinde (C/C++ veya Fortran) bir operatörün karakteristik boyutundan birkaç kat daha büyüktür.

    1.4. Paralel süreçlerin etkileşimi, süreçlerin senkronizasyonu

    Program komutlarının yürütülmesi bir hesaplama süreci oluşturur, paylaşılan veya paylaşılan bellekte birkaç programın yürütülmesi ve bu programların mesajlarla değiş tokuşu durumunda, ortaklaşa akan etkileşimli süreçler sisteminden bahsetmek alışılmış bir durumdur.

    UNIX benzeri süreçleri oluşturma ve yok etme işletim sistemleri operatörler tarafından yürütülür (sistem çağrıları).

    Paralellik genellikle makro ifadeler olarak tanımlanır; paralel dillerde, paralel dallar JOIN ifadesi kullanılarak başlatılır.

    Çok işlemcili bilgi işlem sistemleri için süreçlerin senkronizasyonu özellikle önemlidir. Örneğin, işlemciler arasında veri alışverişinin başlama zamanı, hiçbir şekilde önceden koordine edilmemiştir ve tam olarak belirlenemez, çünkü çok işlemcili bilgi işlem sistemlerinin işleyişinin tahmin edilmesi zor birçok parametresine bağlıdır, oysa senkronizasyon basitçe bilgi alışverişi için bir toplantı sağlamak için gerekli. Gevşek bağlı çok işlemcili bilgi işlem sistemlerinde, bireysel işlemcilerin makine saatlerinin mutlak senkronizasyonu genellikle beklenemez; yalnızca her işlemcinin zaman sistemindeki zaman aralıklarının ölçülmesinden söz edilebilir.

    senkronizasyon verimli bir şekilde"kilitlenme" durumlarının önlenmesi - etkileşim halindeki süreçlerin her birinin ihtiyaç duyduğu kaynakların bir kısmına sahip olduğu, ancak ne kendisinin ne de diğer süreçlerin işlemeyi tamamlamak ve ardından kaynakları serbest bırakmak için yeterli kaynağa sahip olmadığı bir durum.

    Paralel programlama sistemleri, üst düzey senkronizasyon teknikleri kullanır. MPI paralel programlama teknolojisi, süreçler arasındaki bilgi alışverişini senkronize etmek için bir şema kullanır.

    Senkronizasyon, donanım tarafından da desteklenebilir (örneğin, Cray T3 süper bilgisayarındaki bariyer senkronizasyonu, bunun yardımıyla tüm işlemler programda belirli bir noktaya ulaştıktan sonra daha fazla çalışmanın mümkün olmasını bekler.

    1.5. Paralel hesaplamada olası hızlanma (Amdahl yasası)

    dikkate alınarak verimlilikteki olası artışın büyüklüğünü tahmin etmek ilgi çekicidir. kalite özellikleri orijinal sıralı programın kendisinin.

    Şekil 4. Amdahl yasasının türetilmesi şeması

    Amdahl Yasası (1967), paralelleştirmedeki hesaplamaların potansiyel hızını, önceden sıralı olarak gerçekleştirilen işlemlerin oranıyla ilişkilendirir. f(0) olsun

    Algoritmayı paralel bir makineye aktarırken, hesaplama süresi aşağıdaki gibi dağıtılır:

    f×ts, algoritmanın paralelleştirilemeyen kısmının yürütme süresidir,

    · (1-f)×ts/n – algoritmanın paralelleştirilmiş kısmını yürütmek için geçen süre.

    n işlemcili paralel bir makinede hesaplama için gereken süre t p

    t p =f×ts+(1-f)×ts/n .

    Sıralı işlemlerin küçük bir oranıyla hesaplama süresinin hızlandırılması (f<<1) возможно достичь (не более чем в n раз) ускорения вычислений.

    f=0.5 durumunda, herhangi bir sayıda işlemci için S>2 elde etmek imkansızdır! Bu sınırlamaların temel olduğunu unutmayın (belirli bir algoritma için atlanamazlar), ancak ardışık işlemlerin f kesirinin pratik bir tahmini genellikle önceden imkansızdır.

    Bu nedenle, algoritmanın niteliksel özellikleri, paralelleştirme sırasında olası hızlanma üzerinde kısıtlamalar getirir. Örneğin, mühendislik hesaplamaları için tipik olan sıralı formüllerle hesaplama algoritmaları zayıf paralelleştirilir (f kısmı önemlidir), doğrusal programlama problemlerine indirgenen algoritmalar tatmin edici bir şekilde paralelleştirilir.

    Ardışık işlemlerin fraksiyonunu önceden tahmin etmek kolay değildir. Bununla birlikte, deneysel performans verilerinden f belirleme ters problemini çözmek için Amdahl yasasını resmi olarak kullanmaya çalışılabilir; bu, elde edilen paralelleştirme verimliliğini ölçmeyi mümkün kılar.

    Şekil 6. Bir bilgi işlem kümesi sisteminin matris çarpımı prosedürü üzerindeki performansı (Amdahl formülü ile deney ve hesaplama)

    Şekil 6, Moskova Devlet Üniversitesi Araştırma ve Geliştirme Merkezi'nin SCI-MAIN kümesinde, bant şemasıyla (boyut 103 × 103 gerçek çift kesinlik sayıları) matris çarpma sorunu üzerine yapılan deneyin sonuçlarını göstermektedir. en iyi yol (en küçük kareler yöntemi kullanıldı) f=0.051'deki Amdahl formülüne karşılık gelir.

    Amdahl yasası, paralelleştirme sorununun niteliksel bir analizi için uygundur.

    2. Çok işlemcili bilgi işlem sistemlerinin yapım ilkeleri

    2.1. Çok işlemcili bilgi işlem sistemlerinin mimarisi

    Paralel bilgisayarların mimarisi, neredeyse yaratılmalarının ve uygulanmalarının en başından beri ve çeşitli yönlerde gelişmektedir. En genel hükümler, iki sınıfa yol açar - paylaşılan belleğe sahip bilgisayarlar ve dağıtılmış belleğe sahip bilgisayarlar. Paylaşılan bellekli bilgisayarlar, tek bir adres alanıyla paylaşılan belleğe eşit öncelikli erişime sahip birden çok işlemciden oluşur (Şekil 7a).

    Şekil 7. Paralel bilgisayarlar:

    a) paylaşılan bellek b) dağıtılmış bellek

    Bu tür bir mimarinin tipik bir örneği, birkaç işlemci, ancak bir bellek, bir dizi G / Ç aygıtı ve bir işletim sistemi içeren SMP (Simetrik Çoklu İşlemciler) sınıfındaki bilgisayarlardır. Paylaşılan belleğe sahip bilgisayarların avantajı, paralel görevleri programlamanın nispeten kolay olması, dezavantajı ise ölçeklenebilirlik olmamasıdır. Gerçek SMP sistemleri genellikle 32'den fazla işlemci içermez; bu tür sistemlerin bilgi işlem gücünü daha da artırmak için NUMA teknolojisi kullanılır.

    Dağıtılmış belleğe sahip bilgisayarlarda (çoklu bilgisayar sistemleri), her bilgi işlem düğümü tam teşekküllü bir bilgisayardır ve bir işlemci, bellek, giriş / çıkış aygıtları, bir işletim sistemi vb. içerir (Şekil 7b). Böyle bir mimarinin tipik bir örneği, homojen bilgi işlem düğümlerinin belirli bir iletişim ortamı yardımıyla birleştirildiği MPP (Massively Parallel Processing) sınıfındaki bilgisayar sistemleridir. Dağıtılmış belleğe sahip bilgisayarların avantajı (neredeyse sınırsız) ölçeklenebilirlik, dezavantajları ise bilgi işlem düğümleri arasında bilgi alışverişi yapmak için özel yazılım araçlarının (mesajlaşma kitaplıkları) kullanılması gereğidir. Paylaşılan ve dağıtılmış belleğe sahip çok işlemcili bilgi işlem sistemleri için, sırasıyla sıkı bağlı ve gevşek bağlı makineler terimleri kullanılır.

    Gösterildiği gibi, değişim kanallarının performansı verimli paralelleştirme olasılığını güçlü bir şekilde etkiler ve bu, ele alınan her iki mimari için de önemlidir. En basit iletişim sistemi, tüm işlemcileri ve belleği birbirine bağlayan ortak bir veriyoludur (Şekil 8a). veri alışverişi sırasında veri yolu.

    Şekil 8. Çok işlemcili sistemler

    a) - ortak veri yolu ile, b) - matris değiştirici ile

    c) - kademeli anahtarlarla (Omega ağı)

    Daha güçlü sistemler oluştururken daha karmaşık yaklaşımlar kullanılır. Etkili bir şema, cihazların ilgili modüller arasında bilgi transferine izin veren veya engelleyen çift yönlü anahtarlarla birbirine bağlandığı matris anahtarlamadır (Şekil 8b). Bir alternatif, anahtarları basamaklandırmaktır; örneğin, Omega ağ şemasına göre (Şekil 8c). Ayrıca her anahtar, iki girişinden herhangi birini iki çıkışından herhangi birine bağlayabilir, bu durumda, n işlemciyi n bellek bloğu ile bağlamak için n × log2n/2 anahtarı gerekir. Basamaklı anahtarlı devrelerin dezavantajı, anahtarların çalışmasındaki gecikmedir.

    Dağıtılmış belleğe sahip sistemler için, akla gelebilecek hemen hemen tüm bağlantı seçenekleri kullanılırken (Şekil 9), mesaj aktarım hızı açısından kalite parametresi, keyfi işlemcileri bağlayan yolun ortalama uzunluğudur; bu durumda, mantıksal topolojiyi (yazılımla) uygulamak zor olmadığı için kastedilen fiziksel yoldur.

    Şekil 9. Çok işlemcili bilgi işlem sistemlerinde işlemci iletişim topolojilerinin çeşitleri

    En basit doğrusal topoloji (Şekil 9a), yalnızca komşu süreçlerin birbiriyle bağlantısıyla karakterize edilen birçok algoritmaya tatmin edici bir şekilde karşılık gelir (matematiksel fiziğin tek boyutlu sorunları ve çok boyutlu, tek boyuta indirgenebilir); dezavantaj - mola sırasında herhangi bir yere mesaj iletmenin imkansızlığı. Ortalama yol uzunluğu yarıya iner ve iletişim güvenilirliği artar (iletişim arızası durumunda, mesajlar daha düşük bir hızda da olsa ters yönde iletilebilir), ilk düğümün sonuncusu ile bağlantısı sağlanır - a “halka” topolojisi elde edilir (Şekil 9b).

    "Yıldız" topolojisi (Şekil 9c), "istemci/sunucu" sistemleri için tipik olan (ana düğüm görevleri "dağıtır" ve hesaplama sonuçlarını "toplar", yardımcı düğümler etkileşimde bulunurken) işlemler arasındaki yükün dağılımına maksimum düzeyde karşılık gelir. birbirleriyle minimum düzeyde).

    "Kafes" topolojisi (Şekil 9d) doksanların başında i860 işlemcileri temel alan Intel Paragon süper bilgisayarı oluşturulurken kullanıldı; "üç boyutlu kafes" topolojisi için A ve B işlemcileri arasındaki minimum veri aktarım yolunun bulunması Şekil 10'da gösterilmektedir. "İki boyutlu simit" topolojisi (Şekil 9e), "iki boyutlu kafesi" ek bağlantılarla genişletir. ortalama yolun uzunluğunu azaltmak (elbette "üç boyutlu torus") ve SCI ağ teknolojisinin karakteristiğidir. Uygulanan (Şekil 9e), her işlemcinin her üç boyutlu "klik" topolojisi ile iletişiminin varlığı ile karakterize edilir. Şekil 9h, tüm işlemcilerin birbiriyle tam bağlantısının topolojisinin genel bir görünümünü göstermektedir; böyle bir topoloji, işlemciler arasındaki en kısa ortalama yol uzunluğu ile karakterize edilir, ancak, bağlantı sayısındaki feci bir artış nedeniyle önemli sayıda işlemciye sahip donanımda pratik olarak gerçekleştirilemez.

    "Hiperküp" topolojisi (Şekil 9i), azaltılmış ortalama yol uzunluğu ve yüksek performans sağlayan birçok sayısal hesaplama algoritmasının yapılarına yakınlığı ile karakterize edilir. N boyutlu bir hiperküp, 2N işlemci içerir. 2B hiperküp bir karedir, 3B hiperküp normal bir küptür ve 4B hiperküp küp içinde bir küptür. nCube süper bilgisayar ailesi için, maksimum boyutu 13 olan bir hiperküp 8192 işlemci içerir; nCube 3 sisteminde işlemci sayısı 65536'ya (16 boyutlu hiperküp) ulaşabilir.

    Aşağıdaki göstergeler genellikle veri iletim ağı topolojisinin ana özellikleri olarak kullanılır:

    Şekil 10. "Üç boyutlu ızgara" topolojisinde işlemciler arasında mesaj aktarımı için minimum yolu bulma

    Çap, ağdaki iki işlemci arasındaki maksimum mesafe (genellikle işlemciler arasındaki en kısa yol) olarak tanımlanır, bu değer, işlemciler arasında veri aktarımı için gereken maksimum süreyi karakterize eder (ilk yaklaşımdaki aktarım süresi, uzunluğu ile doğru orantılıdır. yol).

    Bağlantı, ağ işlemcileri arasında farklı veri aktarım yollarının varlığını karakterize eden bir göstergedir; belirli bir gösterge türü, örneğin veri ağını bağlantısız iki alana bölmek için kaldırılması gereken minimum yay sayısı olarak tanımlanabilir.

    İkili bölme genişliği, veri ağını aynı boyutta bağlantısız iki alana bölmek için kaldırılması gereken minimum yay sayısı olarak tanımlanan bir göstergedir.

    Maliyet, örneğin çok işlemcili bir bilgisayar sistemindeki toplam veri hattı sayısı olarak tanımlanır.

    Paylaşılan (paralel programlar oluşturmanın göreceli kolaylığı) ve dağıtılmış belleğe (yüksek ölçeklenebilirlik) sahip sistemlerin avantajlarını birleştirmek doğal görünmektedir; Bu sorunun çözümü, NUMA (Non Uniform Memory Access) mimarisine sahip bilgisayarların oluşturulmasıydı.

    Bu anlamda klasik SMP bilgisayarları UMA (Uniform Memory Access) mimarisine sahiptir. Bu durumda, kullanıcı programlarının işlemciler arasında (fiziksel olarak) dağıtılmış tüm belleği tek bir adres alanı olarak görmesine izin veren bir mekanizma (genellikle donanım düzeyinde - daha hızlıdır) kullanılır. NUMA bilgisayarlarına örnek olarak, 1970'lerde oluşturulan ve bir kümeler arası veri yolu ile bağlanan bir dizi küme içeren Cm sistemi ve 256 işlemciyi birleştiren BBN Kelebek kompleksi (1981, BBN Advanced Computers) verilebilir.

    2.2. Hesaplamaların ve verilerin çok işlemcili olarak dağıtılması
    dağıtılmış bellek bilgi işlem sistemleri

    Çok işlemcili bilgi işlem sisteminde yerel RAM'e sahip bilgi işlem düğümleri varsa, hesaplamanın parçalarını ayrı bilgi işlem düğümlerine dağıtmanın yanı sıra, verileri mevcut bilgi işlem düğümleri arasında rasyonel olarak dağıtmak önemlidir (örneğin, önemli boyutlarda işlenmiş matris blokları) ). Gerçek şu ki, bu verileri işleyen bilgi işlem düğümleri ile bu verileri yerel RAM'lerinde depolayan bilgi işlem düğümleri arasındaki veri alışverişi için harcanan süre, hesaplama sürecini büyüklük sırasına göre yavaşlatabilir.

    Büyük bir veri havuzunun bir bilgi işlem düğümündeki konumunun, bu verilerin ayrı ayrı bloklarının işlem bilgi işlem düğümü tarafından transferini organize etmek için kaçınılmaz önemli zaman kaybı nedeniyle pek tavsiye edilmediği açıktır. Öte yandan, verilerin, bilgi işlem düğümlerinin sayısına eşit sayıda bloğa tamamen resmi olarak bölünmesi, aynı şeyle doludur.

    Verilerin bilgi işlem düğümünün yerel RAM'i üzerinden rasyonel dağılımı, her bir bilgi işlem düğümünün karşılık gelen bilgi işlem düğümlerinde bulunan her bir veri bloğuna erişim sıklığı dikkate alınarak yapılmalıdır ve bu sırada, belirlemeyi gerektiren değişim sayısını en aza indirmeye çalışılmalıdır. algoritmanın ince bilgi yapısı.

    Genel durumda, hem gerçek hesaplamalar için kaynak maliyetlerini hem de değişimlerin karmaşıklığını hesaba katan, hesaplamaların karmaşıklığının (örneğin, zaman açısından) bazı işlevlerini oluşturmak mümkün görünmektedir. hesaplama düğümleri üzerinde belirli bir veri dağılımı ve bu fonksiyonun veri dağılımının parametresi (parametreleri) ile daha da küçültülmesi; ve dağılımın kendisi değişken olabilir. Gerçekte, böyle bir fonksiyonun inşası, operasyonları gerçekleştirmek için zaman parametrelerini ölçme ve önemli optimizasyon parametrelerini belirleme ihtiyacı nedeniyle zordur. Böyle bir işlevin rolü için bir aday, örneğin yukarıda açıklanan Amdahl ağ yasası olabilir.

    Doğrusal cebir problemlerini çözmeye yönelik standart paketler, teorik analize ve hesaplama düğümleri arasında veri dağıtmak için uzun vadeli uygulamaya dayalı yöntemler kullanır.

    2.3. Paralel hesaplama sistemlerinin sınıflandırılması

    Bilgi işlem sistemi mimarilerinin sınıflandırılması, hem her mimariyi karakterize eden ana faktörleri hem de paralel bilgi işlem yapılarının ara bağlantılarını tanımlamayı amaçlar.

    SISD (Tek Yönerge akışı / Tek Veri akışı) - tek yönerge akışı ve tek veri akışı; SISD sınıfı, klasik sıralı (von Neumann tipi) makineleri içerir. Bu tür makinelerde, her biri bir skaler işlemi başlatan (sıralı olarak işlenen) yalnızca bir komut akışı vardır. Konveyör teknolojisine sahip makineler de bu sınıfa girer.

    SIMD (Tek Talimat akışı / Çoklu Veri akışı), çoklu veri akışıyla birlikte tek bir talimat akışıdır. Bu, bir talimat akışını kaydeder, ancak aynı anda birçok veri üzerinde bir aritmetik işlem gerçekleştiren vektör talimatlarını içerir. Vektör işlemlerinin yürütülmesi, bir işlemci matrisi tarafından (ILLIAC IV makinesinde olduğu gibi) veya ardışık düzende (Cray-1) gerçekleştirilebilir. Aslında, MMX, SSE, SSE2 komut setlerine sahip Pentium VI ve Xeon mikroişlemciler, tek çipli SIMD sistemleridir.

    BDT ülkelerinden, SIMD sistemleri PS-2000 (1972 - 1975) olarak adlandırılmalıdır - 200 milyon op / s'ye kadar kapasiteye sahip bilgileri işlemek için oldukça paralel bir bilgisayar sistemi.

    MISD (Çoklu Talimat akışı/Tek Veri akışı) - çoklu talimat akışı ve tek veri akışı. Mimari, aynı veri akışını işleyen birçok işlemcinin varlığını ima eder; bu tür makinelerin olmadığına inanılıyor.

    MIMD (Çoklu Talimat akışı / Çoklu Veri akışı) - hem komutların hem de verilerin birden çok akışı. MIMD sınıfına ait iki tür makine vardır: komut akışından kontrol ve veri akışından kontrol; birinci türdeki bilgisayarlar, programdaki konumlarında sırayla komutların geleneksel yürütülmesini kullanıyorsa, ikinci tür, operatörlerin halihazırda hazır oldukları şekliyle etkinleştirilmesini içerir.

    Sınıf, her biri kendi komut ve veri akışıyla çalışan tek bir komplekste birleştirilmiş birkaç işlemcinin varlığını varsayar.

    Klasik bir örnek, Denelcor HEP (Heterojen Öğe İşlemcisi) sistemidir; çok aşamalı bir anahtar aracılığıyla 128 veri belleği modülüne bağlı 16 adede kadar işlemci modülü içerir ve tüm işlemci modülleri, talimat akışlarıyla birbirinden bağımsız çalışabilir ve her işlemci modülü, 50 adede kadar kullanıcı talimatı akışını destekleyebilir.

    2.4. Dağıtılmış belleğe sahip çok işlemcili bilgi işlem sistemleri

    20. yüzyılın son on yılından bu yana, süper bilgisayar mimarilerinin dağıtılmış belleğe sahip sistemler tarafından tekelleştirilmesine yönelik bir eğilim olmuştur ve hazır cihazlar, bilgi işlem düğümlerinde işlemci olarak giderek daha fazla kullanılmaktadır. Bu tür sistemlerin ana avantajları, büyük ölçeklenebilirliktir (çözülecek görevlerin sınıfına ve bütçeye bağlı olarak, kullanıcı birkaç on ila binlerce düğüm sayısına sahip bir sistem sipariş edebilir); bu da söz konusu sistemler için yeni bir adın ortaya çıkmasına neden oldu - büyük ölçüde paralel bilgisayarlar (MPP mimarisinin bilgi işlem sistemleri - Büyük ölçüde Paralel İşleme).

    Devasa paralel işleme özelliğine sahip ilk süper bilgisayar olan Connection Machine (CM-1), her biri kendi belleğine sahip 64.000 işlemci ile donatılmıştı. CM-1 saniyenin 1/20'sinde 16.000 son dakika haberi taradı. üç dakikada 4.000 transistörlü işlemci entegresi geliştirdi. MPP sistemlerinin dışbükey temsilcileri, Cry T3 serisinin süper bilgisayarlarıdır.

    Cry T3E (1350), RISC işlemcilerinden oluşturulmuş, 2000 dağıtılmış bellek çok işlemcili bir bilgi işlem sistemidir. İletişim ağının topolojisi üç boyutlu bir simittir. UNICOS/mk işletim sistemi (mikro çekirdekli UNIX işletim sistemi). FORTRAN, HPF, C/C++ için çevirmenler. Saat frekansı 675 MHz. İşlemci sayısı 40 ile 2176 arasındadır. Her düğüm için maksimum RAM miktarı 512 MB ve maksimum hız 2938 Gflop/sn'dir. Selefi Cry T3D'den farklı olarak, bu sistem bir ön uç bilgisayar gerektirmez.

    Sistem Alpha21164A işlemciyi kullanır, ancak gerekirse başka bir işlemciyle, örneğin daha hızlı bir işlemciyle değiştirmek kolaydır. Her işlem elemanı, bir merkezi işlem birimi, bir bellek modülü ve diğer işlemcilerle iletişim için bir iletişim düğümü içerir. İşlemciler arasındaki iletişim kanalının verimi 325 MB/sn'dir.

    Desteklenen programlama modelleri MPI, PVM, HPF, kendi Cray shmem mesajlaşma kitaplığıdır. Doğrusal cebirsel denklem sistemlerini çözerek elde edilen hız 1,12 Tflop/s'ye ulaşır.

    MPP - sistem, aşağıdakileri içeren homojen bilgi işlem düğümlerinden oluşur:

    Bir ve bazen birkaç merkezi işlemci (genellikle RISC mimarileri - işlemleri belirtmek için uzun bir talimat kelimesi, azaltılmış bir talimat seti ve çoğu işlemi bir işlemci döngüsünde gerçekleştirme ile karakterize edilen Azaltılmış Komut Seti Hesaplama),

    Yerel bellek (ayrıca diğer düğümlerin belleğine doğrudan erişim mümkün değildir),

    İletişim işlemcisi (veya ağ adaptörü),

    Sabit sürücüler (isteğe bağlı) ve/veya diğer G/Ç aygıtları.

    Sisteme özel G/Ç düğümleri ve kontrol düğümleri eklenir. Bilgi işlem düğümleri, bazı iletişim ortamlarıyla (yüksek hızlı ağ, anahtarlar vb.) birbirine bağlanır.

    Çok işlemcili sistemlerin bakımı kolay bir iş değildir - yüzlerce/binlerce bilgi işlem düğümü söz konusu olduğunda, birçoğunun günlük olarak arızalanması kaçınılmazdır; Büyük ölçüde paralel bir bilgisayarın 5k kaynak yönetim sistemi (yazılım ve donanım kompleksi), şu anda yürütülen görevlerin bağlamının kaybıyla feci genel yeniden başlatmayı atlayarak bu tür durumları ele almalıdır.

    2.4.1. CRY T3 serisinin devasa paralel süper bilgisayarları

    1972 yılında kurulan Cry Research Inc. (şimdi Cry Inc.), 1993-1995'te Cry 1 vektör süper bilgisayarını geliştirmesiyle ünlü olan Cry Inc., büyük ölçüde paralel sistemler (MPP mimarisi sistemleri) ilkesini tam olarak uygulayan Cry T3D/T3E modellerini piyasaya sürdü. Maksimum yapılandırmada, bu bilgisayarlar 32 - 2048 DEC Alpha 21064/150 MHz, 21164/600 MHz, 21164A/675 MHz işlemcileri (modele bağlı olarak) birleştirir, tüm ön işleme ve program hazırlama (örneğin derleme) gerçekleştirilir ana makinede (ana bilgisayar - bilgisayar).

    Cry T3D/T3E serisinin geliştiricileri, sanal bir paylaşımlı bellek oluşturma yolunu seçmiştir. Her işlemci yalnızca kendi yerel belleğine doğrudan erişebilir, ancak tüm düğümler aynı adres alanını kullanır. Başka bir işlemcinin yerel belleğine ait bir adrese erişmeye çalıştığınızda, özel bir donanım kesmesi oluşturulur ve işletim sistemi bir düğümden diğerine sayfa aktarımı gerçekleştirir ve iletişim sisteminin aşırı yüksek hızı nedeniyle (tepe noktası) iki düğüm arasındaki veri aktarım hızı 480 MB / s'ye ulaşır), bu yaklaşım genellikle haklı çıkar. Bununla birlikte, performansı keskin bir şekilde azaltan bir "ping-pong" etkisi fark edildi - birkaç işlemci tarafından değiştirilen değişkenler bir sayfada yer alırsa, bu sayfa sürekli olarak düğümler arasında taşınır. Bilgi işlem düğümleri, kullanıcı programlarını özel modda (tek görev modu) yürütür.

    Cry T3 serisi bilgisayarların belirli bir sürümü, üçlü sayılarla karakterize edilir, örneğin, 24/16/576 (kontrol düğümleri / işletim sistemi düğümleri / bilgi işlem düğümleri); kullanılan "üç boyutlu torus" topolojisi ile her düğümün (konumuna bakılmaksızın) altı yakın komşusu vardır. A ve B olmak üzere iki düğüm arasında (3B koordinatları Şekil 11 olan) bir rota seçerken, ağ yönlendiricileri, işlemi ilk A noktasından başlatarak, bir sonraki iletişimin koordinatlarına kadar önce X koordinatı boyunca bir kaydırma gerçekleştirir. düğüm ve B düğümü eşit olur; daha sonra Y koordinatı boyunca ve ardından Z boyunca benzer eylemler gerçekleştirilir (fiziksel olarak benzer yönlendirme, üç koordinatın tümü boyunca aynı anda gerçekleşir). Yer değiştirmeler negatif de olabilir; bir veya daha fazla bağlantı başarısız olursa atlanabilirler.

    Cry T3 mimarisinin bir başka ilginç özelliği, bariyer senkronizasyonu desteğidir - tüm işlemlerin programda belirli bir noktaya kadar beklemesinin donanım organizasyonu, ulaşıldığında daha fazla çalışmanın mümkün olması. T3E serisinin bilgisayarları 1,8 - 2,5 Tflops performans gösterdi (2048 Alpha / 600 MHz mikroişlemcilerde).

    Devasa paralel bilgisayarlardan oluşan Cry T3 serisinin bir başka geliştirmesi de Cry XT3 süper bilgisayarıdır. Her Cry XT3 bilgi işlem düğümü, bir AMD Opteron işlemci, yerel bellek (1 - 8 GB) ve 2,6 Tflops (548 Tflop) (AMD Opteron 2,4 GHz için) tepe performansına sahip Cry SeaStar iletişim birimi üzerinden iletişim sağlayan bir Hyper Transport kanalı içerir. işlemciler , RAM 4,3 TB, topoloji 6 × 12 × 8) 147 Tflop'a kadar. Cray XT3, 30.000 adede kadar bilgi işlem düğümünü, Fortran 77/90/95 ve C / C++ derleyicilerini, MPI'yi (MPI 2.0 standardını destekleyen Mesaj Aktarma Arayüzü) ve ShMem (Cray Research tarafından geliştirilen) iletişim kitaplıkları, paylaşılan bellekle çalışmak için Inc. kitaplığı, sayısal hesaplamalar için standart kitaplıklar kullanılır.

    MPP sistemleri alanında elde edilen yüksek sonuçlara rağmen Cry Inc. vektör konveyör bilgisayarları üretir ve bu modeller bir MPP sisteminde birleştirilebilir. Cry SV1 bilgisayarının her işlemcisinin performansı 4 Gflops'a (toplam sistem performansı 32 Gflops) ulaşır, toplam işlemci sayısı 1000'e ulaşabilir.

    Şekil 11. İletişim kafesi "üç boyutlu simit" bilgisayarı Cray T3E

    2.4.2. BEOWULF sınıfı küme sistemleri

    Endüstriyel büyük ölçüde paralel bilgisayarların fahiş maliyeti, araştırmalarında karşılaştırılabilir güçteki bilgi işlem sistemlerini kullanmak isteyen, ancak endüstriyel süper bilgisayarlar satın alma fırsatı bulamayan uzmanlara dinlenmedi. Bu yöndeki aramalar bilgi işlem kümelerinin geliştirilmesine yol açtı (veritabanları ve WEB sunucuları kümeleriyle karıştırılmamalıdır); Kümelenmenin gelişiminin teknolojik temeli, doksanlarda piyasada ortaya çıkan yaygın olarak bulunabilen ve nispeten ucuz mikroişlemciler ve iletişim (ağ) teknolojileriydi.

    Bir bilgi işlem kümesi, tek bir bilgi işlem problemini çözmek için yüksek hızlı bir ağ tarafından birleştirilmiş bir bilgi işlem düğümleri koleksiyonudur (onlardan on binlerceye kadar). Bir bilgi işlem kümesinin her düğümü, aslında kendi işletim sistemini (çoğunlukla Linux(*)) çalıştıran programlanabilir bir elektronik bilgisayardır (genellikle iki veya dört işlemcili/çekirdekli bir SMP sunucusu); Birleştirici ağ, çözülmesi gereken gerekli görev sınıfına ve finansal yeteneklere göre seçilir; kümeye İnternet üzerinden uzaktan erişim olasılığı neredeyse her zaman uygulanır.

    Bilgi işlem düğümleri ve kontrol bilgisayarı genellikle (en az) iki (bağımsız) ağı birleştirir - kontrol ağı (bilgi işlem düğümlerini kontrol etmeye hizmet eder) ve (genellikle daha verimli) iletişim ağı (düğümler üzerinde çalışan işlemler arasında doğrudan veri alışverişi) ), ek olarak, kontrol düğümü bir uzak kullanıcı kümesinin kaynaklarına erişmek için İnternet erişimine sahiptir, dosya sunucusu kullanıcı programlarını saklama işlevlerini yerine getirir (Şekil 12). Küme yönetimi, kontrol bilgisayarından (veya uzaktan erişim yoluyla) gerçekleştirilir, kullanıcıların (yönetici tarafından atanan haklara uygun olarak) yalnızca kontrol bilgisayarı aracılığıyla küme kaynaklarına erişme hakları vardır.

    Önemli kapasiteye sahip Windows kümeleri, iyi bilinen nedenlerle hala egzotiktir (Windows Bilgi İşlem Kümesi Sunucusu - WCCS sınıfının aktif olarak tanıtılan MS çözümlerine rağmen).

    İlk kümelenme projelerinden biri BEOWULF projesiydi. BEOWOWULF projesi, 1994 yılında NASA'nın sahip olduğu kuruluş GSFC (Goddard Space Flight Center) temel alınarak oluşturulan CESDIS (Center of Excellence in Space Data and Information Sciences) araştırma merkezinde kurulmuş ve GSFC'de 16 düğümlü bir küme oluşturmaya başlamıştır. (486DX4 / 100 MHz işlemci, 16 Mb bellek, düğüm başına 3 ağ bağdaştırıcısı ve 3 paralel 10 Mbit Ethernet kablosu üzerinde); bilgi işlem sistemi, ESS projesinde (Yer ve Uzay Bilimleri Projesi) çalışmak üzere tasarlanmıştı.

    Daha sonra, BEOWULF benzeri kümelerin diğer modelleri NASA departmanlarında toplandı: örneğin, 64 çift işlemcili (Pentium Pro / 200 MHz, 4 Gb bellek ve her biri 5 Hızlı Ethernet anahtarı) HIVE (Yüksek Paralel Entegre Sanal Ortam) düğümler. Beowulf projesi çerçevesinde, Kanal Bağlama modunu uygulamak için sürücüler geliştirildi.

    Şekil 12. Bilgi işlem kümesinin genişletilmiş şeması

    "Beowulf", çok işlemcili bir sistem MIMD'nin (Çoklu Komut - Çoklu Veri) tipik bir örneğidir ve birkaç program dalı aynı anda yürütülür ve belirli aralıklarla veri alışverişi yapılır. Dünya çapında müteakip birçok gelişme aslında Beowulf klanlarıdır.

    1998'de Los Alamos Ulusal Laboratuvarında, astrofizikçi Michael Warren ve Teorik Astrofizik Grubu üyeleri, DEC Alpha/533 MHz işlemcilere dayalı bir Linux kümesi olan Avalon bilgi işlem sistemini kurdular. Avalon başlangıçta 68 işlemciden oluşuyordu, sonra 140'a genişletildi, her düğümde 256 MB RAM, 3.2 Gb EIDE sabit disk ve bir Kingston ağ adaptörü bulunuyor.

    Düğümler, dört Hızlı Ethernet anahtarı ve 3Com'dan merkezi bir on iki bağlantı noktalı Gigabit Ethernet anahtarı kullanılarak bağlanır.

    Büyük ölçüde paralel küme bilgi işlem sisteminin tipik bir örneği, MVS-1000M (iletişim ağı - Myrinet 2000, bilgi değişim hızı 120–170 Mb / s, yardımcı - Hızlı ve Gigabit Ethernet) ve MVS-15000BC'dir.

    Bireysel küme işlemcilerinin bilgi işlem güç kaynaklarının (hem işlemci hem de RAM ve disk belleği) kullanımında maksimum verimlilik gereksinimi, kaçınılmaz olarak, bilgi işlem düğümlerinin işletim sisteminin "zekasının" monitörler düzeyine düşmesine yol açar; Öte yandan, dağıtılmış küme işletim sistemleri sunulur - örneğin, Amoeba, Chorus, Mach, vb.

    Özellikle bilgi işlem kümelerinin donanımını tamamlamak için Kanatlı sunucular (*) üretilir - bir işlemci, RAM (128 - 256 KB L2 önbellek ile genellikle 256 - 512 MB), disk belleği ve ağ destek yongaları içeren dar dikey kartlar; bu kartlar, her biri 24 adede kadar standart 3U 19² genişlik x 5,25² yükseklik 3U kafeslere sığar (180 cm'lik raf başına 240 bilgi işlem düğümü). Genel güç tüketimini azaltmak için VLIW teknolojisine sahip Transmeta Crusoe TM 5x00 serisi işlemciler kullanılabilir ve yalnızca birkaç watt tüketir (P4 için 75 W veya IA-64 kristalleri için 130 W); aynı zamanda, 240 bilgi işlem düğümündeki toplam güç tüketimi 1 kW'ı geçmez.

    Çözüm

    Paralel programlama, donanım desteği, paralelliği belirlemek için algoritma yapısının analizi ve paralel görevleri programlamak için algoritmik diller dahil olmak üzere ilgili konuların bütün bir alanıdır.

    Paralel hesaplama teknolojileri, günümüzde dünya bilim ve teknolojisinin gerekliliklerine bağlı olarak hızla gelişmektedir.

    Sıklıkla, toplum için hatırı sayılır bir değeri temsil etse de nispeten yavaş ofis veya ev tipi bilgisayarların yardımıyla çözülemeyen bu tür görevlerle uğraşmak gerekir. Bu durumda tek umut, genellikle süper bilgisayarlar olarak adlandırılan yüksek hızlı bilgisayarlara yerleştirilir. Yalnızca bu sınıftaki makineler büyük miktarda bilginin işlenmesiyle başa çıkabilir. Bu, örneğin istatistiksel veriler veya meteorolojik gözlemlerin sonuçları, finansal bilgiler olabilir. Bazen işlem hızı kritiktir. Bunlar hava tahmini ve iklim değişikliği modellemesidir. Bir doğal afet ne kadar erken tahmin edilirse, ona hazırlanmak için o kadar fazla fırsat vardır. Önemli bir görev, ilaçların modellenmesi, insan genomunun kodunun çözülmesi, petrol ve gaz sahalarının keşfi ve süper bilgisayarlar ve küme sistemleri yardımıyla çözülebilecek diğer büyük ölçekli görevlerdir.

    Bugünün sorunu, eğitim ve bilim kurumlarında paralel hesaplama için ilgili teknolojilerde tam olarak ustalaşmayı mümkün kılmayan açık bir donanım eksikliğidir; konunun sıklıkla uygulanan tamamen teorik çalışması, olumlu sonuçlardan çok olumsuz sonuçlara yol açar. Çoğu eğitim ve endüstriyel laboratuvarda paralel bilgi işlem uygulamasının başlatılmasına izin veren teknolojiler ancak şimdi ortaya çıkıyor. Etkili paralel programlar oluşturmak, algoritmaların yapısının geleneksel sıralı programlamaya göre çok daha ciddi ve derinlemesine analiz edilmesini gerektirir ve bazı yaklaşımlar, programcıların düşüncesinde ciddi bir değişiklik olmadan uygulanamaz. Pratik olarak anlamlı sonuçlar elde etmek için teorik analizin yanı sıra, paralel programlar oluşturma konusunda sürekli pratik yapmak gerekir.

    Kaynakça

    1. Voevodin V.V., Voevodin Vl.V. Paralel hesaplama. - St. Petersburg: BHV-Petersburg, 2004. -608 s.

    2. Harvey M. Deitel. İşletim sistemlerine giriş (İngilizce'den L.A. Teplitsky, A.B. Khodulev, Vs.S. -M.: Mir, 1987 (elektronik versiyon, 2004)

    3. Gergel Başkan Yardımcısı, Strongin R.G. Çok işlemcili bilgi işlem sistemleri için paralel hesaplamanın temelleri (ders kitabı, ed. 2, eklenmiştir). -N. Novgorod: ed. UNN onları. N.I. Lobachevsky, -2003 (elektronik sürüm http://pilger.mgapi.edu/metods/1441/basic_pr.zip).

    4. Korneev V.V. Bilgi işlem sistemleri. -M.: Helios ARV, -2004, -512 s.

    5. Latsis A.Ö. Bir süper bilgisayar nasıl yapılır ve kullanılır. -M.: Çok Satanlar, 2003.

    6. Shpakovsky G.I. Paralel bilgisayarların ve süperskalar işlemcilerin organizasyonu. // İşlem ödenek. -Minsk: Belarus Devlet Üniversitesi, 1996. -296 s. (elektronik versiyon http://pilger.mgapi.edu/metods/1441/spakovsk.zip)

    7. Shpakovsky G.I., Serikova N.V. MPI standardında çok işlemcili sistemler için programlama. -Minsk:, BGU, 2002. -325 s. (elektronik sürüm http://www.cluster.bsu.by/download/book_PDF.pdf, http://pilger.mgapi.edu/metods/1441/pos_mpi.pdf)

    İle disiplin "Paralelhesaplamalar optik ve optoinformatik alanında" Formun 10. yarıyılında...

  • "Otomatik kontrolün teorik temelleri" disiplini üzerine dersler

    Görev

    ... ____________________________ "____" __________________200_ derslerİledisiplin"Teorik temel... bilgi işlem: 1) tamamen merkezi sistem - klasik sıralı algoritma 2) tamamen merkezi olmayan sistem - paralel ...

  • 7. uzmanlık öğrencileri için "AĞ TEKNOLOJİLERİ" (güncellenmiş versiyon) disiplini üzerine DERSLERİN ÖZETİ

    Soyut

    "Yönetimde bilgi sistemleri" Bölümü KONSPECT DERSLERİledisiplin"AĞ TEKNOLOJİLERİ" (gelişmiş sürüm) için ... çok önemli bir avantaj - gerçekleştirme yeteneği paralelhesaplamalar. Bir bilgi işlem sistemindeyken, görev...

  • "Nörobilgisayar sistemleri" disiplini üzerine ders notları Shebakpolsky

    Soyut

    Soyut derslerİledisiplin"Nörobilgisayar sistemleri" Shebakpolsky M.F. İçindekiler... eğitim hakkında, modelin basitliği paralelbilgi işlem. İnanmak için hiçbir sebep yok ... bilgisayarların doğasında var paralel doğa bilgi işlem kayıp; her operasyon...

  • 1.2 Paralel veri işleme

    1.2.1 Paralel işlemenin temel olasılığı

    Bugüne kadar geliştirilen hemen hemen tüm algoritmalar sıralıdır. Örneğin a + b × c ifadesini değerlendirirken önce çarpmayı sonra toplamayı yapmalısınız. Elektronik bilgisayarlarda aynı anda çalışabilen toplama ve çarpma düğümleri varsa, bu durumda toplama düğümü boşta kalır ve çarpma düğümünün işini tamamlamasını bekler. Belirli bir algoritmayı paralel olarak işleyecek bir makine yapmanın mümkün olduğu iddiasını kanıtlamak mümkündür.

    Aynı anda çalışırken hesap makinesinin tek bir saat döngüsünde istenen sonucu veren m işlemci oluşturmak mümkündür.

    Bu tür "çok işlemcili" makineler teorik olarak her bir belirli algoritma için oluşturulabilir ve görünüşe göre algoritmaların sıralı doğasını "atlar". Bununla birlikte, her şey o kadar basit değil - sonsuz sayıda özel algoritma var, bu nedenle yukarıda geliştirilen soyut akıl yürütme, pratik anlamla o kadar doğrudan ilişkili değil. Paralelleştirme olasılığına ikna olmuş geliştirmeleri, sınırsız paralellik kavramının temelini oluşturdu ve sözde bilgi işlem ortamlarının - dinamik olarak belirli bir algoritmaya göre ayarlanmış çok işlemcili sistemlerin - uygulanmasını genel bir konumdan değerlendirmeyi mümkün kıldı.

    1.2.2 Paralel hesaplamanın soyut modelleri

    Paralel bilgi işlem modeli, donanım ve yürütme ayrıntılarını soyutlarken, farklı programların yürütme sürelerini karakterize etmek ve karşılaştırmak için üst düzey bir yaklaşım sağlar. Paralel hesaplamanın ilk önemli modeli, paylaşılan bir bellek makinesinin soyutlamasını sağlayan paralel rasgele erişim makinesiydi (PRAM - Paralel Rastgele Erişim Makinesi). Toplu Eşzamanlı Paralel (BSP) modeli, hem paylaşılan hem de dağıtılmış belleğin soyutlamalarını birleştirir. Tüm işlemcilerin talimatları eşzamanlı olarak yürüttüğü kabul edilir; aynı talimatın yürütülmesi durumunda, PRAM soyut bir SIMD makinesidir (SIMD - Tek Yönerge akışı / Çoklu Veri akışı - çoklu veri akışıyla birlikte tek bir komut akışı), ancak işlemciler ayrıca çeşitli yönergeleri yürütebilir. Temel komutlar bellekten okuma, belleğe yazma ve olağan mantıksal ve aritmetik işlemlerdir.

    PRAM modeli, her işlemcinin herhangi bir zamanda herhangi bir bellek konumuna erişebilmesi anlamında idealleştirilmiştir (Bir işlemci tarafından gerçekleştirilen yazma işlemleri, gerçekleştirildikleri sırayla diğer tüm işlemciler tarafından görülebilir, ancak farklı işlemciler tarafından gerçekleştirilen yazma işlemleri, diğer tüm işlemciler tarafından gerçekleştirilir. rastgele görünebilir). Örneğin, PRAM'deki her işlemci, bir bellek konumundan veri okuyabilir veya bu konuma veri yazabilir. Tabii ki, gerçek paralel makinelerde bu olmaz, çünkü bellek modülleri aynı bellek hücresine fiziksel düzeyde erişim emri verir. Ayrıca, gerçek makinelerdeki bellek erişim süresi, önbelleklerin varlığı ve bellek modüllerinin olası hiyerarşik organizasyonu nedeniyle aynı değildir.

    Temel PRAM modeli, eşzamanlı (bu bağlamda paralel) okuma ve yazma işlemlerini destekler. Birkaç işlemci aynı anda ortak bir belleğe eriştiğinde çakışma durumlarından kaçınmaya izin veren kuralları hesaba katan PRAM alt modelleri bilinmektedir.

    Paralel rasgele erişimli makineler (PRAM) kullanan işlevsel elemanlardan devrelerin modellenmesi, Brent teoremine izin verir. İşlevsel öğeler olarak, 4 ana öğe olabilir (sırasıyla DEĞİL, VE, OR, XOR - olumsuzlama, mantıksal VE, mantıksal OR ve dışlayıcı VEYA mantıksal işlemlerini gerçekleştirir), daha karmaşık NAND ve NOR (AND-NOT ve OR-NOT) , yani ve herhangi bir karmaşıklık.

    Aşağıda, gecikmenin (yani yanıt süresinin - girişlerdeki değerleri ayarladıktan sonra elemanın çıkışında sağlanan sinyal değerlerinin göründüğü süre) tüm işlevsel için aynı olduğu varsayılmaktadır. elementler.

    Döngüler oluşturmadan birbirine bağlı fonksiyonel elemanlar devresini ele alıyoruz (fonksiyonel elemanların herhangi bir sayıda girişi olduğunu varsayıyoruz, ancak tam olarak bir çıkış - birkaç çıkışa sahip bir eleman, tek bir çıkışa sahip birkaç eleman ile değiştirilebilir). Giriş sayısı elemanın giriş derecesini, elemanın çıkışının bağlı olduğu giriş sayısı da çıkış derecesini belirler. Genellikle, kullanılan tüm elemanların giriş derecelerinin yukarıdan sınırlandırıldığı, çıkış derecelerinin ise herhangi biri olabileceği varsayılır. Devrenin boyutu, içindeki eleman sayısı olarak anlaşılır, devrenin girişlerinden elemanın çıkışına kadar olan yollardaki en fazla eleman sayısına bu elemanın derinliği denir (devrenin derinliği eşittir). onu oluşturan unsurların derinliklerinin en büyüğüne kadar).

    Şekil 1. Paralel rasgele erişimli bir makine (PRAM - makine) kullanan iki işlemcili bir devre boyutu 15, derinlik 5'in simülasyonu

    Şekil 1, boyutu (toplam işlemci sayısı) n=15, devre derinliği (derinlik seviyelerinin her birinde maksimum öğe sayısı) d=5 işlemci sayısı p=2 (aynı anda simüle edilen elemanlar dikdörtgen alanlarla gruplar halinde birleştirilir ve her grup için, elemanlarının modellendiği adımla belirtilir; modelleme, artan derinlik sırasına göre yukarıdan aşağıya sırayla gerçekleşir, her derinlikte bir seferde p adet). Brent teoremine göre böyle bir devrenin modellenmesi ceil(15/2+1)=9 adımdan fazla sürmeyecektir.

    Bilgisayar teknolojisinin gelişim tarihi boyunca, bilgisayar mimarilerinin gelişimindeki tüm olası yönlerin altına düşeceği bir tür genel sınıflandırma bulmak için girişimlerde bulunulmuştur. Bu sınıflandırmaların hiçbiri, geliştirilen mimari çözümlerin tüm çeşitliliğini kapsayamadı ve zamanın testine dayanamadı. Bununla birlikte, yalnızca geliştiriciler için değil, bilgisayar kullanıcıları için de bilinmesi yararlı olan bir dizi terim bilimsel dolaşıma girmiştir ve yaygın olarak kullanılmaktadır.

    Herhangi bir bilgi işlem sistemi (ister bir süper bilgisayar ister kişisel bir bilgisayar olsun), en yüksek performansını yüksek hızlı öğelerin kullanımı ve çok sayıda işlemin paralel yürütülmesi yoluyla elde eder. Ana işlemleri hızlandırmanın temeli, sistemin çeşitli cihazlarının paralel çalışma olasılığıdır (üst üste binme ile çalışma).

    Paralel bilgisayarlar genellikle Flynn'in sınıflandırmasına göre SIMD (Single Instruction Multiple Data) ve MIMD (Multiple Instruction Multiple Data) makinelerine ayrılır. Diğerleri gibi, yukarıdaki sınıflandırma da kusurludur: doğrudan buna girmeyen arabalar vardır, ayrıca bu sınıflandırmada dikkate alınmayan önemli özellikler de vardır. Özellikle SIMD tipi makinelere genellikle vektör işlemciler denir, ancak yüksek performansları başka bir paralellik biçimine, yani makinenin ardışık düzenine bağlıdır. Cray Y-MP gibi çok işlemcili vektör sistemleri birkaç vektör işlemciden oluşur ve bu nedenle MSIMD (Çoklu SIMD) olarak adlandırılabilir.

    Flynn'in sınıflandırması, hesaplamalı modeller için diğer önemli özellikler arasında ayrım yapmaz; örneğin, paralel bilgi işlem ve senkronizasyon yöntemlerinin "ayrıntı düzeyi".

    Paralel işleme sistemleri için dört ana mimari türü vardır:

    1) Boru hattı ve vektör işleme.

    Boru hattı işlemenin temeli, verilerin bir aşamadan diğerine aktarılmasıyla bazı işlemlerin birkaç aşamada (birkaç aşama için) ayrı olarak yürütülmesidir. Bu durumda, konveyörün farklı aşamalarında birkaç işlemin aynı anda gerçekleştirilmesi nedeniyle verimlilik artar. Ardışık düzen oluşturma, yalnızca işlem hattı tam yüke yakın olduğunda etkilidir ve yeni işlenenlerin besleme hızı, boru hattının maksimum verimiyle eşleşir. Gecikme oluşursa paralel olarak daha az işlem gerçekleştirilecek ve genel performans düşecektir. Vektör işlemleri, hesaplama ardışık düzenini tam olarak yüklemek için ideal bir fırsat sağlar.



    Bir vektör komutu yürütüldüğünde, vektörün tüm öğelerine (veya çoğunlukla bir vektör çiftinin karşılık gelen öğelerine) aynı işlem uygulanır. Belirli bir işlemi gerçekleştirmek için bir ardışık düzen kurmak biraz zaman alabilir, ancak işlenenler, bellek kapasitesinin izin verdiği maksimum hızda ardışık düzene girebilir. Bu durumda, ne yeni bir talimatın seçilmesiyle bağlantılı olarak ne de koşullu bir atlama sırasında hesaplama dalının belirlenmesiyle bağlantılı olarak herhangi bir duraklama olmaz. Bu nedenle, bir vektör makinesinde hesaplamanın ana ilkesi, bazı veri bloklarına yeniden uygulanması gereken bazı temel işlemleri veya birkaç temel işlemin bir kombinasyonunu gerçekleştirmektir. Orijinal programdaki bu tür işlemler, küçük kompakt döngülere karşılık gelir.

    2) SIMD makineleri. SIMD tipindeki makineler, kendi bellekleri olan çok sayıda özdeş işlemci öğesinden oluşur. Böyle bir makinedeki tüm işlemci elemanları aynı programı yürütür. Açıkçası, çok sayıda işlemciden oluşan böyle bir makine, yalnızca tüm işlemcilerin aynı işi yapabileceği görevlerde çok yüksek performans sağlayabilir. Bir SIMD makinesi için hesaplama modeli, bir vektör işlemci için olana çok benzer: büyük bir veri bloğu üzerinde tek bir işlem gerçekleştirilir.

    Bir vektör işlemcinin sınırlı işlem hattı çalışmasının aksine, bir matris işlemci (çoğu SIMD makinesiyle eş anlamlıdır) önemli ölçüde daha esnek olabilir. Bu tür işlemcilerin işlem elemanları evrensel programlanabilir bilgisayarlardır, bu nedenle paralel olarak çözülen bir problem oldukça karmaşık olabilir ve dallar içerebilir. Bu hesaplama modelinin kaynak programdaki olağan tezahürü, vektör işlemlerinde olduğu gibi yaklaşık olarak aynıdır: döngünün bir yinelemesinde oluşturulan değerlerin, döngünün başka bir yinelemesinde kullanılmadığı dizi öğeleri üzerindeki döngüler .

    Vektör ve matris bilgisayarlarındaki hesaplama modelleri o kadar benzerdir ki, bu bilgisayarlar genellikle eşdeğer olarak tartışılır.

    3) MIMD tipi makineler. "Çok işlemcili" terimi çoğu MIMD tipi makineyi kapsar ve ("matris işlemci" teriminin SIMD tipi makinelere uygulanmasına benzer şekilde) genellikle MIMD tipi makinelerle eşanlamlı olarak kullanılır. Çok işlemcili bir sistemde, her işlemci elemanı (PE), programını diğer işlemci elemanlarından oldukça bağımsız olarak yürütür. İşleme öğeleri elbette bir şekilde birbirleriyle iletişim kurmalıdır, bu da MIMD tipi makinelerin daha ayrıntılı bir şekilde sınıflandırılmasını gerekli kılar. Paylaşılan bellekli çoklu işlemciler (sıkı bağlı çoklu işlemciler), tüm PE'ler için kullanılabilir veri ve yönerge belleğine sahiptir. PE'ler, ortak bir veri yolu veya değişim ağı kullanılarak paylaşılan belleğe bağlanır. Aksine, gevşek bağlı çok işlemcili sistemlerde (yerel belleğe sahip makineler), tüm bellek işlemci öğeleri arasında paylaşılır ve her bir bellek bloğu yalnızca ilgili işlemci tarafından kullanılabilir. Değişim ağı, işleme elemanlarını birbirine bağlar.

    Bir MIMD çok işlemcisindeki temel bilgi işlem modeli, paylaşılan verilere periyodik olarak erişen bir dizi bağımsız işlemdir. Bu modelin birçok çeşidi vardır. Spektrumun bir ucunda, programın birçok alt programdan oluşan oldukça fazla sayıda paralel göreve ayrıldığı dağıtılmış hesaplama modeli bulunur. Spektrumun diğer ucunda, bir programdaki her işlemin ayrı bir işlem olarak ele alınabileceği akış hesaplama modeli vardır. Böyle bir işlem, girdi verilerinin (işlenenler) diğer işlemler tarafından kendisine iletilmesini bekler. Alındıktan sonra işlem gerçekleştirilir ve alınan değer, ihtiyacı olan süreçlere aktarılır. Büyük ve orta düzeyde ayrıntı düzeyine sahip akış hesaplama modellerinde, süreçler çok sayıda işlem içerir ve akış şeklinde yürütülür.

    4) SIMD işlemcili çok işlemcili makineler.

    Birçok modern süper bilgisayar, işlemci olarak vektör işlemcileri veya SIMD tipi işlemcileri kullanan çok işlemcili sistemlerdir. Bu tür makineler MSIMD sınıfı makinelere aittir.

    MSIMD gibi makineler için programlama dilleri ve karşılık gelen derleyiciler, tipik olarak programcının "kaba taneli" paralelliği tanımlamasına izin veren dil yapıları sağlar. Derleyici, her görev içinde uygun döngüleri otomatik olarak vektörleştirir. Tahmin edilebileceği gibi, MSIMD gibi makineler, bu iki ayrıştırma ilkesinden en iyisini kullanmayı mümkün kılar: programın buna uygun bölümleri için vektör işlemleri ("ince taneli" paralellik) ve MIMD'nin esnekliği programın diğer bölümleri için mimari.

    Bilgisayar teknolojisinin yıllar boyunca geliştirdiği çok işlemcili sistemler, gelişimlerinin bir dizi aşamasından geçmiştir. Tarihsel olarak, SIMD teknolojisi hakim olunan ilk teknolojiydi. Ancak, artık MIMD mimarilerine sürekli bir ilgi var. Bu ilgi temel olarak iki faktör tarafından belirlenir:

    1. MIMD mimarisi büyük esneklik sunar: yeterli donanım ve yazılım desteği ile MIMD, tek bir uygulama görevi için yüksek performanslı veri işleme sağlayan tek bir kullanıcı sistemi olarak, birçok görevi paralel olarak çalıştıran çok programlı bir makine veya bu yeteneklerin bazı kombinasyonları olarak çalışabilir.
    2. MIMD mimarisi, katı maliyet/performans hususlarına dayalı olarak modern mikroişlemci teknolojisinin tüm avantajlarından yararlanabilir. Aslında, neredeyse tüm modern çok işlemcili sistemler, kişisel bilgisayarlarda, iş istasyonlarında ve küçük tek işlemcili sunucularda bulunan aynı mikroişlemcileri temel alır.

    Çok işlemcili bilgi işlem sisteminin ayırt edici özelliklerinden biri, işlemcilerin birbirine veya belleğe bağlandığı değişim ağıdır. Değişim modeli, çok işlemcili bir sistem için o kadar önemlidir ki, birçok performans özelliği ve diğer tahminler, çözülmekte olan görevlere karşılık gelen işlem süresinin değişim süresine oranıyla ifade edilir. İşlemciler arası iletişimin iki ana modeli vardır: biri mesaj iletmeye dayalıdır, diğeri ise paylaşılan belleğin kullanımına dayalıdır. Paylaşılan çok işlemcili bir bellek sisteminde, bir işlemci belirli bir bellek konumuna yazar ve başka bir işlemci bu bellek konumundan okur. Veri tutarlılığını ve süreç senkronizasyonunu sağlamak için, değişim genellikle "posta kutusu" yöntemi kullanılarak paylaşılan belleğe karşılıklı olarak özel erişim ilkesine göre uygulanır.

    Yerel bellek mimarilerinde doğrudan bellek paylaşımı mümkün değildir. Bunun yerine, işlemciler paylaşılan verilere mesajları bir değişim ağı üzerinden ileterek erişir. İletişim şemasının etkinliği, değişim protokollerine, ana değişim ağlarına ve bellek ve değişim kanallarının bant genişliğine bağlıdır.

    Genellikle ve makul olmayan bir şekilde, paylaşılan bellek ve vektör makinelerinde, değişim sorunları büyük ölçüde programcıdan gizlendiği için değişim maliyetleri dikkate alınmaz. Ancak, bu makinelerde veri yolu, bellek ve işlemci çakışmaları tarafından belirlenen değişim genel giderleri vardır. Sisteme daha fazla işlemci eklendikçe, aynı veri ve veri yolu için daha fazla işlem rekabet eder ve doygunluk durumuna neden olur. Paylaşılan bellek sistemi modeli, programlamaya çok uygundur ve bazen, temeldeki sistem aslında yerel bellek ve mesaj iletimi kullanılarak gerçekleştirilmiş olsa bile, değiş tokuşun sistem çalışması üzerindeki etkisini değerlendirmenin üst düzey bir yolu olarak görülür.

    Devre anahtarlamalı ve paket anahtarlamalı ağlarda, trafik gereksinimleri arttıkça, ağ tıkanıklığı olasılığı dikkate alınmalıdır. Burada işlemciler arası bağlantı ağ kaynakları arasında değişir: kanallar, işlemciler, mesaj arabellekleri. İletilen bilgilerin hacmi, görevin dikkatli bir şekilde işlevsel ayrıştırılması ve gerçekleştirilen işlevlerin dikkatli bir şekilde programlanmasıyla azaltılabilir.

    Bu nedenle, mevcut MIMD makineleri, hem belleğin düzenlenme biçimini hem de ara bağlantılarının yöntemini belirleyen birleşik işlemci sayısına bağlı olarak iki ana sınıfa ayrılır.

    İlk grup, birkaç düzineye kadar (genellikle 32'den az) işlemciyi birleştiren ortak (paylaşılan) bir ana belleğe sahip makineleri içerir. Bu tür makinelerdeki nispeten az sayıda işlemci, tek bir merkezi paylaşımlı belleğe sahip olmayı ve işlemcileri ve belleği tek bir veri yolu kullanarak birleştirmeyi mümkün kılar. İşlemcilerde yeterli önbellek alanı verildiğinde, yüksek performanslı veri yolu ve paylaşılan bellek, birden çok işlemciden bellek erişimini barındırabilir. Aynı erişim süresine sahip yalnızca bir bellek olduğundan, bu makinelere bazen UMA (Uniform Memory Access) adı verilir. Nispeten küçük bir paylaşılan bellekle bu düzenleme yöntemi şu anda en popüler olanıdır. Böyle bir sistemin yapısı, Şek. 10.1.

    Pirinç. 10.1. Paylaşılan belleğe sahip çok işlemcili bir sistemin tipik mimarisi.

    İkinci makine grubu, dağıtılmış belleğe sahip büyük ölçekli sistemlerdir. Çok sayıda işlemciyi desteklemek için, ana belleği bunlar arasında dağıtmanız gerekir, aksi takdirde bellek bant genişliği, çok sayıda işlemciden gelen istekleri karşılamak için yeterli olmayabilir. Doğal olarak bu yaklaşımla birlikte işlemcilerin birbirleri ile bağlantısının da gerçekleştirilmesi gerekmektedir. Şek. 10.2 böyle bir sistemin yapısını göstermektedir.

    İşlemci sayısı arttıkça, işlemcileri iletmek için yüksek hızlı bir ağ ile dağıtılmış bir bellek modeli uygulama ihtiyacını ortadan kaldırmak imkansızdır. İşlemci performansının hızlı büyümesi ve buna bağlı olarak bellek bant genişliği gereksinimlerindeki artışla birlikte, dağıtılmış bellek gerektiren sistemlerin ölçeği (yani sistemdeki işlemci sayısı) ve aynı zamanda desteklenebilen işlemci sayısı azalmaktadır. paylaşılan veri yolu ve paylaşılan bellek.

    Belleğin sistemin bireysel düğümleri arasında dağıtılmasının iki ana avantajı vardır. İlk olarak, çoğu erişim her düğümde yerel belleğe paralel olarak gerçekleştirilebildiğinden, bellek bant genişliğini artırmanın uygun maliyetli bir yoludur. İkincisi, yerel belleğe erişim gecikmesini (erişim süresini) azaltır. Bu iki avantaj, dağıtılmış bir bellek mimarisinin mantıklı olduğu işlemci sayısını daha da azaltır.

    Tipik olarak, G/Ç cihazları ve bellek düğümler üzerinde dağıtılır ve gerçekte düğümler, farklı bir şekilde birbirine bağlı az sayıda (2-8) işlemciden oluşabilir. Birden çok işlemcinin bellek ve bir ağ arayüzü ile bu kümelenmesi maliyet açısından verimlilik açısından oldukça faydalı olabilirken, böyle bir makinenin nasıl çalıştığını anlamak için çok da gerekli değildir, bu nedenle düğüm başına bir işlemciye sahip sistemlere odaklanacağız. Şimdi. Dağıtılmış bellek makinelerinde vurgulanması gereken temel mimari fark, iletişimin nasıl yapıldığı ve belleğin mantıksal modelinin ne olduğudur.

    Pirinç. 10.2. Dağıtılmış belleğe sahip bir makinenin tipik mimarisi.

    Rusya Federasyonu Eğitim ve Bilim Bakanlığı

    Federal Devlet Bütçe Yüksek Mesleki Eğitim Eğitim Kurumu "Bryansk Devlet Mühendisliği ve Teknolojisi

    akademi"

    Bilgi Teknolojileri Bölümü

    Bilginin sıralı ve paralel işlenmesi

    1 numaralı yerleşim ve grafik çalışması

    disipline göre

    "Bilgi işleme teknolojileri"

    Seçenek numarası 16

    RGR-02068025.230400.084

    Bryansk 2015

    Giriş 3

    Paralel bilgi işleme 4

    Bellek Paylaşım Sistemleri 6

    Paralel SQL İşleme 7

    Sıralı Bilgi İşleme 9

    Basit Parti Sistemleri 10

    Referanslar 13

    giriiş

    Bu hesaplama ve grafikte, bilgilerin sıralı ve paralel işlenmesi dikkate alınır. Her biri için örnekler verilmiştir.

    Bilginin sıralı işlenmesi, bir dizi dönüşüm (aşama) yoluyla girdiden çıktıya bilginin sıralı geçişidir, böylece her zaman aralığında (belirli bir bloğa özgü), dönüşüm yalnızca bir işlevsel blokta gerçekleştirilir ve bilgi ona yalnızca önceki bloktan gelir.

    Paralel bilgi işleme, bilginin belirli işlevsel bloklarda bir dizi dönüşüme uğradığı, böylece herhangi bir zamanda birkaç blokta aynı anda (paralel olarak) işlendiği bir bilgi işleme modelidir.

    Paralel bilgi işleme

    Birkaç eylemi aynı anda gerçekleştirme fikrini somutlaştıran paralel veri işlemenin iki çeşidi vardır: ardışık düzen ve paralel.

    paralel işleme. Belirli bir cihaz birim zamanda bir işlem yaparsa, o zaman bin birimde bin işlem gerçekleştirir. Aynı anda çalışabilen bu tür beş bağımsız cihaz olduğunu varsayarsak, o zaman beş cihazlı sistem aynı bin işlemi bin değil iki yüz birim zamanda gerçekleştirebilir. Benzer şekilde, N sayıda cihazdan oluşan bir sistem aynı işi 1000/N birim zamanda yapacaktır. Hayatta benzer benzetmeler bulunabilir: Bir asker 10 saatte bir bahçe kazarsa, aynı yeteneklere sahip elli askerden oluşan bir bölük aynı anda çalışarak aynı işi 12 dakikada yapacak - eylemdeki paralellik ilkesi!

    boru hattı. Kayan nokta biçiminde temsil edilen iki gerçek sayıyı toplamak için ne gereklidir? Sıra karşılaştırma, sıra hizalama, mantis ekleme, normalleştirme vb. gibi bir dizi küçük işlem. İlk bilgisayarların işlemcileri, nihai sonuca ulaşana kadar her argüman çifti için tüm bu "mikro işlemleri" sırayla gerçekleştirdi ve ancak bundan sonra sonraki terim çiftini işlemeye geçtiler.

    Boru hattı işleme fikri, ortak bir işlemin yürütülmesinin ayrı aşamalarını ayırmaktır ve işini tamamlayan her aşama, aynı anda girdi verilerinin yeni bir bölümünü kabul ederken sonucu bir sonraki aşamaya aktarır. Önceden aralıklı işlemlerin kombinasyonu nedeniyle işlem hızında bariz bir kazanç elde ediyoruz. Bir işlemin, her biri bir birim zamanda gerçekleştirilen beş mikro işleme bölünebileceğini varsayalım. Bir bölünmez seri cihaz varsa, 500 birim için 100 argüman çiftini işleyecektir. Her mikro işlem, bir taşıma cihazının ayrı bir aşamasına (veya başka bir şekilde - bir aşamaya) ayrılırsa, beşinci zaman biriminde, böyle bir cihazın farklı bir işleme aşamasında, ilk beş argüman çifti olacaktır. bulunur ve yüz çiftin tamamı 5 + 99 = 104 birim zamanda işlenir - sıralı bir cihaza kıyasla neredeyse beş kat hızlanma (iş hattı adımlarının sayısına göre).

    Görünüşe göre boru hattı işleme, ana cihazın tahsis edilmesi gereken boru hattı aşamalarının sayısı kadar çoğaltılması gereken sıradan paralellik ile başarılı bir şekilde değiştirilebilir. Gerçekten de, önceki örnekteki beş cihaz, 100 çift argümanı 100 birim zamanda işleyecek ve bu da ardışık düzen cihazından daha hızlıdır! Böylece cihaz sayısını beş kat artırarak hem ekipman miktarını hem de maliyetini önemli ölçüde artırmış oluyoruz. Bir otomobil fabrikasının, otomobil üretiminin hızını korurken montaj hattını kaldırmaya karar verdiğini hayal edin. Daha önce montaj hattında aynı anda bin araba varsa, o zaman önceki örneğe benzer şekilde hareket ederek, her biri arabayı baştan sona tamamen monte edebilen bin ekip işe almak gerekir. yüzlerce farklı işlemi gerçekleştirmek ve bunu arabanın daha önce montaj hattında olduğu zamanda yapmak.

    Bugün, çok az insan bilgisayar mimarisindeki paralelliğe şaşırıyor. Tüm modern mikroişlemciler bir tür paralel işleme kullanır. Pentium 4 çekirdeğinde, 126 adede kadar mikro işlem aynı anda farklı yürütme aşamalarında olabilir. Ancak, bu fikirlerin kendileri çok uzun zaman önce ortaya çıktı. Başlangıçta, zamanlarının en gelişmiş ve dolayısıyla tek bilgisayarlarında tanıtıldılar. Daha sonra, teknolojinin uygun şekilde geliştirilmesi ve daha ucuz üretimden sonra, orta sınıf bilgisayarlara indiler ve nihayet, bugün tüm bunlar tamamen iş istasyonlarında ve kişisel bilgisayarlarda somutlaşıyor.

    Tek işlemcili bilgisayar sistemlerinde çalışan birçok uygulamanın performansı, paralel bilgi işleme araçlarının kullanılmasıyla büyük ölçüde iyileştirilebilir. Aşağıdakiler, paralel işlemenin ana kavramları ve çok işlemcili bilgisayarların mimarisidir.

    Birden çok uygulama, işlerinin tek işlemcili bir bilgisayarda işlenmesini istediğinde, tüm işlerin o tek işlemci tarafından yapılması gerekir. Paralel işlemenin amacı genellikle uygulama performansını iyileştirmektir. Bir uygulama, çok işlemcili bir bilgisayar için bir iş isteği yayınladığında, bilgisayar işi mantıksal alt görevlere böler ve ardından birden çok işlemciyi paralel olarak kullanarak bunları işler, bu da işin yürütme süresini azaltır. Büyük bir görevin bölünmesinden kaynaklanan alt görevlerin sayısına paralellik derecesi denir. . Bir görevi tamamlamak için gereken bilgi işlem süresindeki azalma, paralellik derecesi ile doğru orantılıdır. Paralel işlem yapan sistemlerin hızlarını sistemdeki her işlemciden maksimum performans sağlayacak şekilde arttırmaya çalışırlar.