CUDA Nedir?

 

CUDA, Nvidia tarafından ortaya konulan, bilgisayarın işlem performansına yüksek oranda katkı yapan bir paralel programlama platformudur. C, C++, C#, Fortran, Java, Python gibi programlama dilleri ile yazılmış algoritmaların GPU yani “grafik işlem birimi” üzerinde çalışmasını sağlayan bir sistem olarak da tanımlanabilir.

Paralel programlama, birden fazla CPU’nun bir arada çalışmasını istediği için zorluk çıkartır. CPU’lar aslen seri işlemcilerdir ve birden fazla CPU’nun bir arada kullanılabilmesi için karmaşık yazılımlar gerekmektedir. CUDA ise bünyesinde zaten paralellik yarattığı için bu zorlukları ortadan kaldırıyor.

cuda_teknolojisi_1

CUDA etkinleştirilmiş GPU ile görüntü ve video işlem, hesaplamaya dayalı biyoloji ve kimya, akışkan dinamiği, bilgisayarlı tomografi, sismik analiz, ışın izleme ve çok daha fazlası dahil olmak üzere geniş bir aralıkta kullanım alanları bulmaktadır. CUDA, sadece NVIDIA GPU’larda çalışması itibariyle rakiplerinden farklı olsa da 2012 yılı itibariyle dünya üzerinde 300 milyondan fazla CUDA destekli GPU olduğu bilinmektedir. Bugün bu sayı daha da üst seviyeye ulaşmıştır.

GPU ve CPU Mimarisi Arasındaki Farklar

Normalde “işlem” denildiğinde akla ilk gelen bileşen CPU’dur fakat iş paralel programlamaya geldiğinde GPU’lar CUDA ile kendisini daha fazla öne çıkarıyor. Öncelikle bu iki yapı arasındaki farkların üzerinden geçelim, daha sonra ise CUDA’nın nasıl çalıştığını daha iyi anlamaya çalışalım.

Tasarım Amacı:

Bir CPU çekirdeği, tek bir yönerge akışını bir kerede mümkün olduğu kadar çabuk yürütmek için tasarlanmıştır. GPU’lar ise birçok paralel yönerge akışını mümkün olduğu kadar çabuk yürütmek için tasarlanmışlardır.

Transistör Kullanımı:

CPU’larda transistörler yönergelerin yeniden düzenlenmesini gerçekleştiren tamponlar, rezerve istasyonları, tahmin mekanizmaları ve büyük tampon bellek gibi bileşenlerden oluşur. Bu bileşenler, tek bir iş parçacığının yürütülmesini hızlandırmak için tasarlanmıştır. GPU’da ise transistorler işlemci dizileri, çoklu işlem donanımı, paylaşılan bellek ve birden fazla bellek denetleyicilere atanmıştır. Bu özellikler belirli bir iş parçacığının işletilmesinin hızlandırılmasına değil, yonganın üzerinde bulunan onbinlerce iş parçacığının aynı anda yürütülmesi için tasarlanmıştır ve böylece iş parçacıkları arasında iletişimi kolaylaştırarak yüksek bellek bant genişliği sağlar.

Arabelleğin (Cache) Rolü:

CPU, biriktirme ara belleğini, genel bellek erişim gecikmesini azaltarak performans arttırmak amacıyla kullanır. GPU ise ara belleği (ya da yazılımla yönetilen paylaşılan belleği) bant genişliğini arttırmak için kullanır.

Gecikme (Latency) Yönetimi:

CPU’da bellek gecikmesi, geniş arabellekler ve tahmin mekanizmaları ile yönetilir. Bunlar tasarım üzerinde büyük yer kaplarlar ve genellikle güç tüketimi konusunda savrukturlar. GPU ise gecikmeyi binlerce iş parçacığını bir anda destekleyerek yönetir. Eğer herhangi bir iş parçacığı bellekten yük bekliyosa, GPU herhangi bir gecikmeye sebep olmadan derhal başka bir işe geçiş yapar.

Çoklu işlem (Multi-threading):

CPU’lar çekirdek başına bir veya iki iş parçacığı yürütme desteğine sahiptir. CUDA destekli GPU’lar ise akış işlemcisi başına 1024’e kadar iş parçacığı destekler. CPU’nun uygulamalar arasında bir kez geçiş yapması yüzlerce saat döngüsüne mal olurken GPU’nun geçiş yaparken herhangi bir kaybı yoktur. Zaman kaybetmeden birçok geçişi ardı ardına yapabilir.

SIMD ve SIMT:

CPU’lar vektörel işlemler için SIMD (Single Instruction Multiple Data – Tek Yönergeyle Birden Çok Veri) birimleri kullanırlar. GPU’lar ise ölçekli yürütme için SIMT (Single Instruction Multiple Thread – Tek Yönergeyle Birden Çok İş Parçacığı) kullanırlar. SIMT, programcının verileri vektörler halinde düzenlemesini gerektirmez, iş parçacıkları için rastgele dağılıma olanak tanır.

Bellek Denetleyici:

Örneğin Intel CPU’lar üzerinde on-die bellek denetleyici bulunmaz. CUDA destekli GPU’lar, 8 adete kadar on-die bellek denetleyici kullanırlar. Sonuç olarak GPU’lar, CPU’lara göre 10 kata kadar daha fazla bant genişliğine sahiptirler.

cuda_teknolojisi_2

CUDA Nasıl İşler?

Genellikle video işleme ve dönüştürme konusunda kullanılan CUDA’nın direkt olarak bu işe yönelmediğini en başından belirtmek gerek. Birbiri ile veri paylaşımı yapabilen paralel dizilime sahip çekirdekler, CPU’nun tek düzen şeklinde yapacağı işi yayarak gerçekleştirir. Farklı hatlara yüklenen işlemler yavaş gerçekleşir fakat tek yolda yapılabilecek süreden daha kısa sürede işlem sonuçlanır. Bunu daha iyi anlamak için aşağıdaki görseli inceleyebilirsiniz.

cuda_teknolojisi_3

Yani kısacası konu kodlara ve CPU’nun tek başına kaldıramayacağı ağırlıktaki yüklere CUDA göğüs gerer, işi paylaşır ve kısa süre içerisinde bitmesini sağlar. Yalnız bu noktada bir şeyi de atlamamak gerek. CUDA’dan faydalanmak için öncelikle bu özelliği açmak gerekiyor. Yukarıda daha önce belirttiğimiz gibi kullanılan programlama diline yapılan ufak bir ek ile CUDA aktif hale getirilebiliyor.

C

CUDA İLE PARALEL HESAPLAMA

Hesaplama, CPU üzerindeki “merkezi işlemden” CPU ve GPU üzerindeki “birlikte işleme” doğru bir evrim geçirmektedir. NVIDIA, hesaplamadaki bu yeni paradigmaya olanak vermek için uygulamacılar için önemli bir taban olan ve GeForce, ION Quadro ve Tesla GPU’larüzerinde temin edilen CUDA paralel hesaplama mimarisini geliştirdi.

Tüketici pazarında Elemental Technologies, MotionDSP and LoiLo, Inc. ürünleri dahil olmak üzere başlıca video uygulamalarının neredeyse tümü CUDA ile hızlandırılmıştır veya yakında hızlandırılacaktır.

CUDA bilimsel araştırma alanında büyük coşku ile kabul görmüştür. Örneğin, CUDA yeni ilaç keşiflerini hızlandırmak üzere dünya genelinde akademik alanda ve ilaç şirketlerinde 60.000’den fazla araştırmacı tarafından kullanılan moleküler dinamik simülasyon program AMBER’i hızlandırmaktadır.

Finans piyasasında, Numerix ve CompatibL yeni bir risk uygulaması için CUDA desteğini duyurdu ve 17 kat hızlandırma elde etti. Numerix yaklaşık 400 finans kurumu tarafından kullanılmaktadır.

CUDA’nın bu denli kKabul görmesinin bir göstergesi de GPU hesaplama için Tesla GPU’ya olan eğilimdir. Şu anda dünya genelinde enerji sektöründe Schlumberger ve Chevron’dan bankacılık sektöründe BNP Paibas’a kadar Fortune 500 şirketlerinde kurulu 700’den fazla GPU kümesi bulunmaktadır.

Yakın zamanda yapılan Microsoft Windows 7 ve Apple Snow Leopard lansmanları ile GPU hesaplama yaygınlaşmaktadır. Bu yeni işletim sistemlerinde, GPU yalnızca grafik işlemci olmakla kalmayıp aynı zamanda tüm uygulamaların erişebildiği genel amaçlı bir paralel işlemci olacaktır.

CUDA PARALEL HESAPLAMA PLATFORMU

CUDA® paralel hesaplama platformu farklı özellikteki verileri ifade etmeye olanak veren birkaç basit C ve C++ uzantısı sağlar. Programcı paralelliği C, C++, Fortran gibi üst düzey dillerde ve OpenACC direktifleri gibi açık standartlarda ifade etmeyi seçebilir. CUDA paralel hesaplama platformu 1000’lerce GPU hızlandırmalı uygulama tarafından kullanılmaktadır ve 1000’lerce yayınlanmış araştırmanın konusu olmuştur.

Geliştiriciler için komple CUDA araçları ve ekosistem çözümleri bulunmaktadır. CUDA ile geliştirme hakkında daha fazla bilgi için CUDA Zone sayfasını ziyaret edin.

Paralel Hesaplamaya başlama ile ilgili daha fazla bilgi veya en güncel CUDA yüklemeleriiçin CUDA Developer Zone sayfasını ziyaret edin.

Standart C ve Paralel C kodunun yan yana karşılaştırılması

Standart C ve Paralel C kodunun yan yana karşılaştırılması

PCI Express nedir? PCI Express hızları nedir ? PCI Express versiyonları nelerdir?

PCI, İngilizce “Peripheral Component Interconnect” kelimelerinin baş harflerinden oluşan bir kısaltmadır. Türkçe’de “Çevresel bileşen bağlantısı” anlamına gelmektedir.

Express kelimesi de Türkçe’de “Hızlı” anlamına gelmektedir.

PCI Express kelime anlamı olarak “Hızlı Çevresel bileşen bağlantısı” anlamına gelmektedir.

PCI; Bilgisayara entegre devreler veya harici kartlar halinde donanım eklenmesine imkan veren veriyolu arabirimidir.

PCI Express; Eski PCI, PCI-X ve AGP veriyolu standartlarını değiştirmek için tasarlanmış bir yüksek hızlı seri bilgisayar genişleme veriyolu standardına verilen isimdir.

Resmi olarak “PCIe” olarak kısaltılır. PCIe olara anılan veriyolu standardı üzerinde ciddi geliştirmeler bulunmaktadır.

Biçim özellikleri PCI-SIG (PCI Special Interest Group) tarafından korunur ve geliştirilir.

Genel, kişisel bilgisayarlarda kullanılabilir durumda olan PCIe 3.0 genişleme kartları için son standarttır.

PCI Express 2004 yılında yaratılmıştır. PCI, PCI-X ve AGP‘nin yerini almıştır. Bit genişliği 1-32 bit arasıdır. Bir seri bağlantı türüdür.

PCI Express kimler tarafından yaratılmıştır?

1. İntel

2. Dell

3. HP

4. IBM

PCI Express hızları

Slot başına;

1. v1.x: 250 MB/s (2.5 GT/s)

2. v2.x: 500 MB/s (5 GT/s)

3. v3.0: 985 MB/s (8 GT/s)

4. v4.0: 1969 MB/s (16 GT/s)

Bir x16 slotunda;

1. v1.x: 4 GB/s (40 GT/s)

2. v2.x: 8 GB/s (80 GT/s)

3. v3.0: 15.75 GB/s (128 GT/s)

4. v4.0: 31.51 GB/s (256 GT/s)

PCI Express’in eski veriyolu standartlarından farkları

1. Daha yüksek bir maksimum sistem veriyolu verimliliği,

2. Düşük I / O pin sayısı,

3. Küçük bir fiziksel ayak izi,

4. Veri yolu cihazları için daha iyi performans ölçekleme,

5. Daha ayrıntılı bir hata algılama ve raporlama mekanizması,

6. Hot plug işlevselliği.

PCI Express tak çıkar arayüzleri

1. ExpressCard

2. Mobile PCI Express Module

3. XQD card

PCI Express harici arayüzü

Böyle Thunderbolt gibi PCI Express Harici Kablolama ile…

PCI Express versiyonları

1. PCI Express 1.0a

2. PCI Express 1.1

3. PCI Express 2.0

4. PCI Express 2.1

5. PCI Express 3.x

6. PCI Express 4.0

PCI Express bağlantı performansları (Slot başına)

1. PCI Express versiyonu: 1.0 Ham bit hızı: 2.5 GT/s Bant Genişliği: 2 Gbit/s

2. PCI Express versiyonu: 2.0 Ham bit hızı: 5 GT/s Bant Genişliği: 4 Gbit/s

3. PCI Express versiyonu: 3.0 Ham bit hızı: 8 GT/s Bant Genişliği: 7.877 Gbit/s

4. PCI Express versiyonu: 4.0 Ham bit hızı: 16 GT/s Bant Genişliği: 15.754 Gbit/

PCI Express bağlantı performansları (Bir X16 Slotunda)

1. PCI Express versiyonu: 1.0 Ham bit hızı: 40 GT/s Bant Genişliği: 4 GB/s

2. PCI Express versiyonu: 2.0 Ham bit hızı: 80 GT/s Bant Genişliği: 8 GB/s

3. PCI Express versiyonu: 3.0 Ham bit hızı: 128 GT/s Bant Genişliği: 15.754 GB/s

4. PCI Express versiyonu: 4.0 Ham bit hızı: 256 GT/s Bant Genişliği: 31.508 GB/s

PCI Express form faktörleri

1. Yüksekliği düşük kart

2. Mini Kart

3. ExpressCard

4. XMC

5. Gelişmiş TCA

6. AMC

7. Mobil PCI Express Modülü NVIDIA

PCI Express 1.0a

2003 yılında, PCI-SIG slot başına 250 MB / s veri hızı ve saniyede (GT / s) başına 2.5 gigatransfers bir aktarım hızı ile, PCIe 1.0a tanıttı.

PCI Express 1.1

2005 yılında, PCI-SIG PCIe 1.1’i tanıtmıştır. Bu güncellenmiş veriyolu çeşitli geliştirmeler içerir, ama PCI Express 1.0a ile tam uyumludur.

Veri hızı için herhangi bir değişiklik yapılmamıştır.

PCI Express 2.0

PCI-SIG 15 Ocak 2007 tarihinde PCI Express Base 2.0’ı duyurmuştur. Bu veriyolu ile slot başına verim 250 MB / s, 500 MB / s  yükselmiştir. Veri transfer hızını iki katına çıkarmıştır.

PCIe 2.0 anakart yuvalarının PCIe v1.x kartları ile tam bir geriye dönük uyumu vardır.

PCI Express 2.1

PCI Express 2.1’in hızı PCI Express 2.0 ile aynıdır. Ne yazık ki,  PCI Express 2.1 kartları ve 1.0/1.0a ile bazı eski anakartlar arasında geriye doğru uyumluluk yoktur ama PCI Express 1.1 bağlantılı anakartlar ile geriye dönük uyumluluk destek programları aracılığıyla kendi üreticileri tarafından bir BIOS güncellemesi ile sağlanlanabilmektedir.

PCI Express sorun çözme ve geliştirme araçları

1. Osiloskop

2. Mantık analizörleri

3. Veri yolu analizörleri

PCI Express rekabet protokolleri

Çeşitli iletişim standartları yüksek bant genişliği seri mimarilerEe dayalı ortaya çıkmıştır. Bunlar;

1. InfiniBand

2. RapidIO

3. HyperTransport

4. QPI

5. StarFabric

6. MIPI LLI

Kaynak: http://www.nedir.com/pc%C4%B1-express#ixzz4NifiwRnW

OLED NEDİR?

OLED

QKodak şirketi tarafından geliştirilmiş bir teknolojidir. OLED’ler çoğunlukla düz ekran için kullanılmaktadır. LCD teknolojisine alternatif olarak sunulmaktadır. Normal operasyonda düşük enerji tüketmesi, ince ve hafif olması sayesinde son zamanlarda cep telefonlarında kullanımı yaygınlaşmıştır. Zamanla parlaklıklarını yitirdikleri şeklinde eleştiriler almaktadır. Gelişmekte olan ve gelecek vaad eden bir teknolojidir. Işık yayan diyot(LED) familyasının son türü “Organic Light Emitting Device” ya da “Organic Light Emitting Diode” açılımına sahip bir akronimdir. “Organic Electroluminescent Device” (OEL) olarak da anılır. Tipik olarak iki elektriksel kontak(elektrot) arasında kalan ve ışık yayan bir dizi ince film organik katmandan oluşur. OLED’ler molekül ağırlığı düşük organik malzemeler (SM-OLED)veya polimer bazlı materyalden (PLED , LEP) oluşur. Farklı katmanlara sahip LCD’ler ve FED‘ lerden farklı olarak OLED’ler monolitik (tek katmanlı)dırlar. Çünkü yapılışı sırasında her katman diğeri üzerine kaplanarak yekpare olacak şekilde üretilir.

Başlangıçta gösterge uygulamaları için geliştirilen OLED’ler parlak renkli görüntüleri ile düşük güçte geniş görüş açısı sağlayan ekranların yapılabilmesini sağladılar. LCD ekranlarda olduğu gibi bunlar için arkadan aydınlatma gerekmez. OLED’ler genelde cam üzerinde üretilirler ancak plastik ve kıvrılabilir malzeme üzerinde olabiliyorlar. Örneğin Universal Display’in yaptığı fleksibl(kıvrılabilir) OLED modeli “FOLED” böyledir. Bu türden ekranların üretilmesinin ileride taşınabilir cihazlarda devrim yaratacağı konuşuluyor. Örneğin cebinizden bir kalem çıkarıyorsunuz. Çekince açılıyor, üzerine rulo şeklinde sarılmış ekran ortaya çıkıyor.

Oled Ekranlar Nasıl Çalışır?

oled_yapi.jpgOLED, çok sayıda organik ince film tabakaları ve 2 yarı iletken bir araya gelerek oluşturulan bir yapıya verilen isimdir. Bu yapının üzerinden elektrik akımı geçtiğinde ise parlak bir ışıma yapmaktadır. Bu özelliği sayesinde bildiğimiz LCD ekranlardan farklıdır. Çünkü günümüzde kullanılan LCD ekranlarda görüntü olabilmesi için beyaz bir arkaplan ışığına ihtiyaç duymaktadır. OLED ekranların bu özelliği sayesinde çok ince ve kaliteli görüntü elde edilmektedir.

OLED ekranların avantajları şu şekilde sıralanabilir:

– Heyecan Verici Ekranlar: Şimdiye kadar görülmemiş, çok ince, esnek yada transparan ekranlar
– Düşük Enerji Tüketimi: Özellikle Taşınabilir cihazlarda düşün enerji gereksinimi sayesinde çevre dostu.
– Daha Yüksek Parlaklık : Daha yüksek parlaklık ve her açıdan mükemmel görüntü kalitesi.
– Hafif : Çok ince yapıda olduğundan her türlü esnek yapıda kullanılabilme.

400px-oled_schematicsvg.png

1. Katot (−), 2. Işık yayan tabaka, 3. Radyasyon yayan tabaka, 4. İletken tabaka, 5. Anot (+)

Günümüzde OLED ekranlar cep telefonları, taşınabilir müzik/video oynatıcılar, taşıtlardaki müzik sistemlerinde, dijital fotoğraf makinelerinde ve PDA türündeki cihazlarda küçük boyutlarda kullanılmaktadır. Düşük enerji türketimi ve yüksek parlaklığı sayesinde tercih edilmektedir. Aralık 2007 de Sony firması 11 inch boyutunda (yaklaşık 27 cm) OLED televizyonu satışa sunması bekleniyor. Bunun yanı sıra birkaç firmanın birlikte yaptığı çalışmalar sayesinde 42 inch lik OLED ekran prototip olarak üretilmiştir. Ancak şuanda yüksek maliyeti dolayısıyla piyasaya sürülmemektedir. Önümüzdeki yıllarda bu alanda yapılan çalışmalar sonucunda bu teknolojinin de fiyatları makul seviyelere inecektir.

MVC (Model View Controller) Nedir

MVC (Model View Controller) Nedir

MVC, uygulama geliştirmede özelliklede web uygulamaları geliştirmede kullanılan mimari desenlerden biridir. MVC denince akla günümüzde Microsoft’un ASP.NET MVC Framework’u gelir. Oysaki MVC son 20 yıldır yazılım dünyasında yer almaktadır. MVC  Model , View , Controller
kelimelerinin baş harflerinden oluşur ve her kelime MVC’nin farklı bir katmanını ifade eder.

Model View Controller

Model, proje içerisinde kullanılacak olan nesnelerin oluşturulduğu kısımdır. Örneğin bir otobüs otomasyonu yapmak istediğimizde bilet bilgilerinin tutulacağı bir modele ihtiyaç duyulacaktır. Bu modelde biletin güzergah, tarih, yolcu gibi bilgileri yer alacaktır.

View, kullanıcının gördüğü arayüzdür. Bu bir web sayfası, masaüstü uygulaması arayüzü veya mobil bir tasarım olabilir.

Controller, tüm işlemlerin (veritabanı işlemleri, hesaplamalar… gibi) yapıldığı kontrol bölümüdür. Controller ayrıca model ve view arasındaki veri akışını da kontrol eder.

SYNTAX (SÖZDİZİM) NEDİR ?

Temel olarak bir dilde (language) tanımlı olan öğelerin (kelime, işlem, sembol yada değerlerin) anlamlı bir dizilim oluşturmasıyla ilgilenen bilimdir.

Örnekler

Örneğin Türkçe için aşağıdaki cümle anlamlı bir cümledir:

"Esat okula geldi"

yukarıdaki cümlede herhangi bir yazım hatası ve dizilim sorunu bulunmamaktadır. Bununla birlikte:

"okula Esat geldi"

cümlesi de Türkçe açısından uygun bir cümle iken

"geldi okula Esat"

cümlesi hem devrik hem de anlamını yitirmiş bir cümledir. Benzer durum matematiksel işlemler için de aşağıdaki şekilde gösterilebilir:

( 3 + 4 )

Yukarıdaki matematiksel işlem dizilim açısından sorunsuzken:

( 3 4 + )

Yukarıdaki halde de yazılabilir (postfix notation).

3 ) ( 4 +

Ancak yukarıdaki yazılış dizilim açısından hatalıdır.

Yukarıdaki örneklerde görüldüğü üzere her dilin kendisine göre bir dizilimi ve dizilime göre farklı anlamları bulunmaktadır. İşte sözdizim (syntax) bu konuda çalışmaktadır.

Anlam çıkarımı

Sözdizim çalışmalarının önemli bir kısmı da dilin işlendiği bilgisayar tarafından girilen cümleye (Statement) anlam verilmesidir.  Cümlelerin anlamlarını çalışan anlambilim (Semantics) açısından genelde cümlenin bir anlamını gösteren model bulunmakta ve anlam çıkarımında hedeflenen amaç girilen cümleyi bu modele çevirmke olmaktadır.

Bu çevirim için çeşitli yaklaşımlar mevcuttur. Örneği yacc gibi sözdizim (syntax) analizi yapan ve makine dilleri (machine languages) için başarılı bir şekilde çalışan ve yapısında içerik bağımsız dil (context free language) barındıran, kod üretme  programları bulunmaktadır. Yacc ve benzeri kod üreticilerinede (code builder) hedeflenen dil genelde CFG ile gösterilebilen bir makine dilidir ve başarı oranı oldukça yüksektir.

Buna karşılık doğal dillerin analizi ve semantik gösterimi (semantic representation) için tam başarı ne yazık ki neredeyse imkansızdır.  Ayrıca doğal dilin analizi sonucunda elde edilen sonucun gösteriminde de ciddi problemler bulunmaktadır.

Cümle üretimi (Syntax Generation)

Anlam çıkarımına benzer şekilde, ifade edilmek istenen anlamın üretilmesi de bir problemdir. Örneğin 4 sayısını toplama işlemi ve pozitif tamsayılar kümesi ile göstermek istersek:

1+3
2+2
3+1

gösterilmerinin tamamı üretmek istediğimiz değer olabilir. Benzer şekilde doğal dil üretimi (natural language generation) yukarıdaki örneğe göre oldukça karmaşık bir üretim yapısını desteklemek zorundadır. (Yukarıdaki örnekte yaşanan karmaşıklık (ambiguity) çözümü için belirli sonlu otomat (deterministic finite automata) kullanılabilir, burada sadece probleme örnek verilmiştir)

Örneğin Ali’nin okula gelmesinden, ders dinlemesinden ve eve dönmesinden bahsetmek isteyelim. Muhtemel bir bilgisayar çıktısı:

Ali okula geldi. Ali ders dinledi. Ali eve döndü.

Şeklinde olabilir. Ancak dikkat edileceği üzere insanlar konuşurken bu tip cümleler sıralamazlar. Örneğin

Ali okula geldi. O ders dinledi. O eve döndü.

Şeklindeki cümleler daha insana yakındır. (dönüştü (anaphora resolution) kullanılmıştır)

Benzer şekilde:

Ali okula geldi, ders dinledi ve eve döndü.

Cümlesi insan kullanımına çok daha yakındır (ellipsis (hazf) kullanılmıştır)

Yukarıda görüldüğü üzere doğal dil üretimi sırasında da söz dizimden faydalanılmaktadır.

Şablon Yapısı (templates)

Bu sözdizim çalışması yaklaşımına göre dilde bulunan cümlelerin anlamlarının anlaşılması (veya bu dilde bir cümle üretimi) için çeşitli şablonlar kullanılır. Bir söz dizim çalışmasının en temelini oluşturan şablon kullanımı (çeşitli kaynaklarda çerçeve (Frame) olarak da isimlendirilmektedir). Oldukça katı(rigid) bir yapıya sahiptir. Anlamak için şablona mutlak uyum şarttır. Ürettiği sonuçlar ise ancak şablon yapısında olmaktadır.

Kategorik Dilbilgisi (Categorical Grammer)

Sözdizim çalışmalarında dilin modellenmesi sırasında kullanılan bir dilbilgisi örneğdir. Bu yapıda dilde bulunan öğeler anlamsal olarak gruplanır ve modellenir. Örneğin “bahçeli okul” şeklindeki bir tamlamada aslında iki farklı kelime vardır. Kategorik dilbilgisinde bu iki kelimenin oluşturduğu gruba dilbilgisindeki bir kategori ismi verilir.

Genelde çok sık kullanılan kategoriler NP ve VP olarak da geçen isim kelime grubu (noun phrase) ve fiil kelime grubudur. (verb phrase)

Bağlılık Dilbilgisi (Dependency Grammer)

Dilbilgisindeki kelime veya kelime gruplarının tanımlanması ve sıralarının belirlenmesine ilave olarak şayet bu kategoriler arasında bir bağlantı tanımı yapılıyorsa bu dilbilgisi çeşidine bağlılık dilbilgisi ismi verilir.

Basitçe bir öznenin, bir fiilin faili (agent) olması durumu bu grup gramer tanımındandır.

Örneğin cebirsel sözdizimler (algebraic syntax) bu gruptan sayılabilir.

Fonksiyonel Dilbilgisi (Functionalist Grammer)

Bu dilbilgisi grubunda ise dilde bulunan kelimelerin ve kelime gruplarının kullanım amaçları ve üstlendikleri görevler değerlendirilir.

Örneğin “At, tay doğurdu” cümlesindeki doğurmak fiili üretken bir fiildir ve modellenen dünyaya yeni bir varlık ekler. Buna karşılık “Ali peynir yedi” fiili tüketken bir fiildir ve modellenen dünyadan bir varlık eksilir. Bu durumda iki fiili iki ayrı grupta ele almak mümkündür.

Stokastik Dizilimler (Stochastic Grammers)

İstatistiksel dilbilimin (Probabilistic Linguistic) çalışma alanı olan bu sözdizim çeşidinde çeşitli olasılık ağları (örneğin markof modelleri (markov chain) ) vasıtasıyla dizilim modellemesi yapılır.

Byte’den sonraki büyüklükler

Öncelikle bilgisayarda en küçük veri ölçü birimi bit’dir. Bit kelimesi binary digit kelimelerinin kısaltmasıdır. Türkçe anlamı ise ikili sayı demektir. Kısacası bit ikilik sistemde değerler alabilen bir birimdir. Yani değeri sadece “0” veya “1” olabilir. 8-Bit 1 byte eder.

– 8 Bit = 1 Byte(Bayt)
– 1024 Byte = 1 KiloByte(KiloBayt) -> Kısaltması Kb
– 1024 KiloByte = 1 MegaByte(MegaBayt) -> Kısaltması Mb
– 1024 MegaByte = 1 GigaByte(GigaBayt) -> Kısaltması Gb
– 1024 GigaByte = 1 TeraByte(TeraBayt) -> Kısaltması Tb
– 1024 TeraByte = 1 PetaByte(PetaBayt) -> Kısaltması Pb
– 1024 PetaByte = 1 EksaByte(EksaBayt) -> Kısaltması Eb
– 1024 EksaByte = 1 ZettaByte(ZettaBayt) -> Kısaltması Zb
– 1024 ZettaByte = 1 YottaByte(YottaBayt) -> Kısaltması