Please use this identifier to cite or link to this item: http://hdl.handle.net/11527/403
Title: Dıstrıbuted Opencl - Opencl Platformunun Ağ Ölçeğinde Dağıtılması
Other Titles: Distributed Opencl - Distributing Opencl Platform On Network Scale
Authors: Altılar, Deniz Turgay
Eskikaya, Barış
436846
Bilgisayar Mühendisliği
Computer Engineering
Keywords: OpenCL
Grafik İşlem Birimleri Üzerinde Genel Amaçlı Hesaplama
Grafik İşlem Birimi Kümeleri
OpenCL
GPU
GPGPU
HPC
GPU clusters
Issue Date: 24-Jul-2012
Publisher: Fen Bilimleri Enstitüsü
Institute of Science and Technology
Abstract: Grafik kartları, yapısındaki çok çekirdeklilik ve işlem hattı mimarisi sayesinde yüksek miktardaki bağımlı olmayan verileri paralel olarak hızlı bir şekilde işleyebilme yeteneğine sahiptir. Ekran kartlarının bu özelliğinden bilimsel hesaplamalar, benzetim uygulamaları, işaret işleme uygulamaları gibi alanlarda da yararlanabilmek amacıyla grafik işlem birimi üzerinde genel amaçlı programlama (GPGPU) kavramı ortaya çıkmıştır. OpenCL, son zamanlarda yaygın olarak kullanılmaya başlayan bir GPGPU çatısıdır. OpenCL, çeşitli üreticilere ait çeşitli modellerdeki CPU ve GPU aygıtlarının bulunduğu heterojen ortamlarda çalışan ve aygıtlar arasında taşınabilir programlar yazmayı mümkün kılmaktadır. Üreticiler tarafından kabul edilen ortak OpenCL standartları sayesinde hem programcılar aygıtlara özel teknik detaylardan soyutlanmakta hem de platform ve aygıt özelliklerinden bağımsız programlar yazılabilmektedir. Bu nedenle OpenCL, önde gelen üreticiler tarafından desteklenen ve giderek daha yaygın olarak kullanılan bir GPGPU çatısı haline gelmektedir. Bu tez çalışmasında; tek bir bilgisayarın kaynaklarını kullanarak çalışan OpenCL çatısını, JSON-RPC iletişim tekniği kullanarak ağ ölçeğinde dağıtılmış olan birçok bilgisayardaki kaynakları paralel olarak kullanabilecek hale getiren Distributed OpenCL (Dağıtılmış OpenCL) çatısı geliştirilmiştir. Geliştirilen bu yeni yapı ile OpenCL çatısının birçok bilgisayardaki GPU veya CPU kaynaklarının aynı işlem üzerinde paralel olarak çalışıp aygıt başına düşen işlem yükünü azaltarak genel hesaplama performansını arttıracak ve aynı zamanda aygıt, üretici ve işletim sisteminden bağımsız olarak çalışacak şekilde genişletilmesi amaçlanmıştır. Geliştirilen yapı istemci – sunucu mimarisinde çalışan bir sistemdir. İstemci, dağıtım katmanı ve sunucu bileşenlerinden oluşmaktadır. İstemcilerde çalışan ev sahibi programların yaptığı OpenCL API çağrıları yine istemcide çalışan dağıtım katmanı tarafından yakalanmakta, OpenCL çağrıları, çağrılara ait parametrelerle birlikte JSON mesajlarına çevrilmekte ve sistemdeki sunuculara JSON – RPC protokolü kullanılarak iletilmektedir. Sunucu, kendisine gelen mesajları dinlemekte, bir mesaj geldiğinde JSON formatındaki mesaj içeriğini ayıklayarak ilgili OpenCL çağrısını verilen parametrelere birlikte işletmekte, dönen sonuç parametrelerini yine JSON mesajı haline getirerek istemciye cevap olarak iletmektedir. Mesaj cevabını alan istemcideki dağıtım katmanı, dönüş değerlerini OpenCL çağrısının işlevini göz önünde bulundurarak ev sahibi programa döndürmektedir. Geliştirilen bu yeni yapı üzerinde Doğal OpenCL (Native OpenCL) ile karşılaştırmalı olarak bazı testler yapılmıştır. Bu testler ek yük testleri, paralel yürütme testleri ve çekirdek döngüsü testleri olarak sınıflandırılmaktadır. Ek yük testlerinde Native OpenCL ile Distributed OpenCL’de sunucu ve istemcinin aynı bilgisayarda çalışması, sunucu ve işlemcinin farklı bilgisayarlarda çalışması durumlarındaki performans karşılaştırılmıştır. Paralel yük testlerinde Distributed OpenCL’in bir istemci – bir sunucu, bir istemci – iki sunucu, bir istemci – dört sunucu şeklinde çalışması gözlemlenmiştir. Çekirdek döngüsü testlerinde hesap yoğun bir çekirdek fonksiyonu benzetimi yapılarak bu durumda sistemler arasındaki performans farkı ölçülmüştür. Testler sonucunda Distributed OpenCL çatısının özellikle düşük gecikmeli – yüksek hızlı ağlar ve çoklu GPU barındırabilen aygıtlar ile birlikte kullanıldığında; üretici – işletim sistemi bağımsız, dağıtık, paralel çalışan ve ölçeklenebilir yapıya sahip bir GPGPU hesaplama ortamı sağlayabileceği görülmüştür.
This paper presents a framework that extends OpenCL by distributing computing process to many computing resources connected via network and enables the computing resources to run in parallel. Using JSON RPC (Remote Procedure Call technique relying on JavaScript Object Notation) in communication layer, Distributed OpenCL framework provides platform and operating system independency. Using this framework, a host program executed on a computer that has no OpenCL support is able to use other computing resources distributed on network in parallel. Results show that OpenCL platform model can be extended to network scale to provide a vendor, architecture and operating system independent and a parallel computing environment with reasonable communication overhead.
Description: Tez (Yüksek Lisans) -- İstanbul Teknik Üniversitesi, Fen Bilimleri Enstitüsü, 2012
Thesis (M.Sc.) -- İstanbul Technical University, Institute of Science and Technology, 2012
URI: http://hdl.handle.net/11527/403
Appears in Collections:Bilgisayar Mühendisliği Lisansüstü Programı - Yüksek Lisans

Files in This Item:
File Description SizeFormat 
12864.pdf993.86 kBAdobe PDFView/Open


Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.