Q# (Quantum Sharp) Kullanımı – Proje Oluşturma ve İlk Uygulama

Q# ile ilgili olarak bir önceki makalede nedir, ne değildir ve DEVELOPMENT KIT kurulumundan bahsetmiştim. Şimdi ise yavaş yavaş işin içerisine girelim.

QSharp Uygulaması Oluşturma

  • Öncelikle Visual Studio 2017’yi açıp New Project diyoruz.
  • Açılan pencereden Visual C# sekmesine gidip “Q# Application“ı seçin.

  • Uygulamamıza “QSharpHello” ismini verip OK diyoruz.
  • Solution Explorer’dan Solution ismine sağ tıklayarak NuGet paketlerini Restore ediyoruz.

  • Referans DLL’lerimizi de toparladık. Şimdi Operation.qs içerisine gidip buraya methodumuzu ekliyoruz.
namespace Quantum.QSharpHello
{
    open Microsoft.Quantum.Primitive;
    open Microsoft.Quantum.Canon;

    operation Operation () : ()
    {
        body
        {
            
        }
    }
}
namespace Quantum.QSharpHello
{
    open Microsoft.Quantum.Primitive;  
      
    // İki sayıyı alıp toplamını verir
    operation Topla (a : Int, b : Int): (Int)  
    {  
        body  
        {  
            return (a + b);  
        }         
    }  
}
  • Bu işlem için bize Microsoft.Quantum.Primitive referansı yeterli. “open” kelimesiyle referansları tanımlayabiliyoruz.
  • Şimdi Driver.cs class’ımıza giderek oluşturmuş olduğumuz bu operation’ımızı simüle edeceğiz.
  • Driver.cs class’ı C# dilindedir.
using Microsoft.Quantum.Simulation.Core;
using Microsoft.Quantum.Simulation.Simulators;

namespace Quantum.QSharpHello
{
    class Driver
    {
        static void Main(string[] args)
        {

        }
    }
}
using System;
using Microsoft.Quantum.Simulation.Core;
using Microsoft.Quantum.Simulation.Simulators;

namespace Quantum.QSharpHello
{
    class Driver
    {
        static void Main(string[] args)
        {
            using (var sim = new QuantumSimulator())
            {
                var result = Toplam.Run(sim, 5, 7).Result;
                Console.WriteLine(result);
            }
            Console.ReadKey();
        }
    }
}

Artık ilk Quantum uygulamamızı oluşturmuş durumdayız ve RUN edebiliriz. =)

NOT: Eğer hatalar alırsanız Solution Explorer’dan sağ tıklayarak Properties>Build>Target Platform> x64 seçin. Hatalarınız devam ediyor ise Projenin .Net Framework’ünü 4.6.1 olarak değiştirip öyle çalıştırın bir de. Arada Visual Studio sapıtabiliyor. Klasikleşmiş “kapat aç düzelir” taktiğini deneyin. Baktınız hala olmuyor çok da zorlamayın =D Donanımsal problem veya kurulumlar esnasında eksik veya yanlış birşeyler yapmış olabilirsiniz.

Elimden geldiğince çok basit bir Quantum Application nasıl oluşturulur bunlardan bahsettim. Bir sonraki Q# makalesini QSharp Structure üzerine yapacağım.

Bilgiyle kalın. =)

Q# (Quantum Sharp) Kullanımı – Programlamaya Giriş ve Kurulum

Q# (QSharp) ‘ı eminim bu postun yazıldığı tarih itibari ile birçoğumuz daha duymadı veya yeni yeni duymaya başladı. Kuantum bilgisayarların gelişimi ve kuantum fiziğine olan ilgi ve alakanın küresel boyutta artmasından dolayı Microsoft Geçtiğimiz haftalarda önce prelease inin çıkardığı bu yeni programlama dilini tanıttı. İyi de bu “Q# (QSharp) nedir?” diye hala merak ediyorsunuz. O halde devam edelim.

Microsoft, Q# (QSharp) progralama dili ve Visual Studio IDE’si ile Kuantum biliminin ön gördüğü teknolojiyi bizler için simüle eden ve kuantum algoritmalar üretebileceğimiz altyapı ve toolları bize sağlıyor.
Buradaki en temel olay klasik olarak bizlere öğretilen “Bilgisayarlar 0 veya 1’ler ile çalışır.” cümlesidir. Buradaki 0 veya 1, bizim için Bit terimini ifade ediyor. bu da Binary Digit yani 2’li sayı sistemi anlamına geliyor. Kuantum bu sistemi yıkarak karşımıza QBit (Kubit) ‘leri getiriyor. QBit ‘ler ise ölçülene kadar “hem 0 hem de 1” olabiliyor.

Kuantum mekaniğinin ve bu modellemenin şuana kadar yaygınlaşamamasının tek sebebi, en basit bir sistemin bile kuantum modellemesinin yapılabilmesi için günümüzdeki bilgisayarların yetersiz kalması ve bu düzeye çıkamamasıydı. Oysa ki bu bilim 1900-1925’li yıllar arasında geliştirildi. Ki teknolojik gelişmelere bakar isek Dünya’nın varoluşundan bu yana son 100 yıl içerisindeki teknolojik anlamda yaşanılan gelişme kadar dünyanın hiç bir zamanında bir gelişme sağlanamamıştır. Öte yandan Son 50 sene içerisinde, geride bıraktığımız son 100 yıldan daha çok teknolojik gelişmeler olmuştur. Bu da aslında teknoloji çağında olduğumuz açık-seçik ortaya koymaktadır. Bu genel bilgileri verdikten sonra kısa kesip konumuzu tekrar toparlayalım.

Minimum Sistem Gereksinimleri

  • Microsoft, Quantum Development Kit için kullandığı ve kuantum simülatörü olan Advance Vector Extensions (AVX) destekli işlemciniz (CPU) olması gerekmektedir. (Bunu desteklemeyen CPU’lar için de çalışılıyor fakat şuan böyle bir destek yok.)
  • Bilgisayarınızda Microsoft OS (Operation System) olarak Windows’un 64 Bit’lik bir sürümü yüklü olması gerekiyor.
  • Visual Studio 2017 yüklü olmalı. Değil ise buradan ücretsiz Community  versiyonunu indirebilirsiniz.

Kurulum

Eğer Visual Studio 2017 yüklü ise de değil ise de yukarıdaki verdiğim linkten setup dosyasını indirin. Kurulu olanlar Modify’e tıklasın, yeni kurulum yapacak olanlar ise direk kuruluma geçecekler zaten. Burada şu “Universal Windows Platform development“, “.NET desktop development” başlıkları kesinlikle Checkleyip kurulumumuza eklemeliyiz.

Daha sonrasında Visual Studio 2017’mizin güncel olduğundan emin olmak için VS’yi başlatıp Tool>Extension & Updates ekranından Updates>Products sekmesinde güncelleme var ise yükleyin.

Bu işlemleri yaptıktan sonra yine hemen yukarıdaki resimdeki alandan Online sekmesine tıklayıp Arama çubuğuna “Quantum Development KIT” yazın. (veya buradan da indirip setup dosyasından da kurabilirsiniz.)

QSharp Dev KIT install

İlk çıkan sonuca tıklayarak kurulum işlemini gerçekleştirebilirsiniz.

Artık Quantum Programming yapabilmemiz için Microsoft’un sağlamış olduğu tüm ortam kurulumlarını tamamladık. Simülasyon ve algoritmalarımızı geliştirebiliriz. Q# ile alakalı bir sonraki yazımda giriş seviyesi olarak en afillisinden bir “Hello World” yapacağız =)
Akabinde de QSharp Structure ‘ın tüm detaylarını vakit buldukça sizlerle paylaşmaya devam edeceğim.