Geri Dön

Distribution of objects on multicore processors

Çok çekirdekli işlemcilerde nesnelerin dağıtılması

  1. Tez No: 251800
  2. Yazar: TOLGA KAYAR
  3. Danışmanlar: YRD. DOÇ. DR. FEZA BUZLUCA
  4. Tez Türü: Yüksek Lisans
  5. Konular: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol, Computer Engineering and Computer Science and Control
  6. Anahtar Kelimeler: Belirtilmemiş.
  7. Yıl: 2009
  8. Dil: İngilizce
  9. Üniversite: İstanbul Teknik Üniversitesi
  10. Enstitü: Fen Bilimleri Enstitüsü
  11. Ana Bilim Dalı: Bilgisayar Mühendisliği Ana Bilim Dalı
  12. Bilim Dalı: Belirtilmemiş.
  13. Sayfa Sayısı: 67

Özet

Son yıllarda çok çekirdekli işlemciler daha popüler hale geldi. Çok çekirdekli işlemciler sadece sunucularda ve yüksek kapasiteli bilgisayarlarda değil evlerdeki kişisel bilgisayarlarda da kullanılmaya başlandı[13]. Moore Yasası'na göre tranzistör sayısı her iki yılda iki katına çıkacak. Fakat tranzistör sayısındaki bu artış güç ihtiyacı sebebiyle hız kesmiş görünüyor[4]. Böylece çok çekirdekli işlemcilerin çağı başlamış oldu.Çok çekirdekli işlemcilerde yazılım geliştirme son zamanlarda üzerinde durulan konulardan bir tanesidir. Çok çekirdekli işlemcilerde programlama üzerine yapılmış birçok araştırma bulunmaktadır. Bu işlemcilerde yazılım geliştirmek hem zaman alan hem de karmaşık bir süreç. Eski tip işlemcilerle çok çekirdekli işlemciler arasında yazılım geliştirme açısından farklılıklar bulunmaktadır. Şu anda kullanımda olan ve çok çekirdekli işlemcilere uygun bir biçimde geliştirilmemiş yazılımlar bu işlemciler üzerinde verimli çalışmamaktadır. Bu sorun hiçte kolay olmayan bir adaptasyon süreci ortaya çıkarmaktadır. Bu süreçte en büyük iş programcılara düşmektedir. Bu sorunu işaret eden birçok kitap ve yayın bulunmaktadır.Yazılım geliştirme sürecinde şu anda en çok tercih edilen yöntem nesneye dayalı programlamadır. Günümüzde üzerinde durulan bir diğer önemli ve popüler konu çok çekirdekli işlemcilerde nesneye dayalı yazılım geliştirmedir. Paralel nesneye dayalı yazılım geliştirmek için Cilk++ ve OpenMP gibi araçlar bulunmaktadır. Bu araçlar çok iplikli yapı ile paralelliği sağlamaktadır. Bu paralelleştirmeden faydalanabilmek için programcının bu araçların sağladığı özel komutları kullanması gerekmektedir. Paralelleştirme için kullanılan bir diğer yöntem otomatik paralelleştirmedir. Bu metoda göre programcı kodunu yazarken paralelliği düşünmeden yazar, daha sonra derleyici düzeyinde program çalışma zamanında paralel çalışması için adapte edilir. Fakat otomatik paralelleştirme nesneler düzeyinde değil fonksiyonlar düzeyinde yapılmaktadır. Nesneye dayalı programlama foksiyonlardan değil nesnelerden oluştuğundan dolayı fonksiyonlar düzeyinde paralelleştirme tam olarak uygun olmamaktadır.Bu tezde nesnelerin çekirdeklere derleme seviyesinde dağıtılmasına ilişkin önerilen algoritmayla daha iyi performans ve paralellik sağlanmıştır. Nesneleri çekirdeklere dağıtmak, nesneyi önceden belirli bir çekirdekte yaratıp daha sonra yapılan tüm yordam çağrılarını nesnenin yaratıldığı çekirdeğe yapmaktır. Önerilen algoritmanın nesneleri rastgele dağıtmaktan veya ilk boş bulunan çekirdeğe atmaktan daha iyi ve anlamlı olduğu gösterilmiştir. Bu sonuç birinci ve ikinci seviye önbellekten kaynaklanmaktadır. Nesnelerin niteliklerinden ve paylaşılan verilerinden dolayı nesnelerin aynı işlemcide hatta aynı çekirdekte kalması performansı arttırmış ve önbelleklerin daha iyi kullanılmasını sağlamıştır.

Özet (Çeviri)

In the last two decades multicore multiprocessors have become more popular. Multicore multiprocessors are not only used in servers or high capacity computers, they are also used in personal computers[13]. According to Moore?s Law, the number of transistors will double every two years. However increase in the number of transistors slows down, because of power needed[4]. Thus multicore era begins.Software development on multicore processors is an interesting research issue. There are lots of researches about multicore programming. Development on multicore is more complex and time consuming issue then single core. There are differences between single core multiprocessors and multicore multiprocessors on development styles. Current softwares, that are not designed to work on multicore CPUs, do not work efficiently on multicore CPUs. This problem reveals an adaptation process that is not easy. In this process the most significant responsibility is on software developers. There are books and lots of other documents about multicore programming pointing this issue.Object oriented programming is popular and prefered programming method. Software development on multicore with object oriented programming is another popular issue nowadays. There are tools like OpenMP and Cilk++ to develop parallel object oriented software. They provide parallelism with multithreading. However programmer is expected to write his/her code parallel with commands provided by these tools. The other method for parallelism is automatic (implicit) parallelism. In this method programmer writes his/her code without thinking parallelism, then on compile level program is adapted to run parallel on runtime. However automatic parallelism is not made on object level, it is made on function level. Since object oriented programming consists of objects not functions, function level parallelism is not suitable.In this thesis we propose an algorithm for the distribution of objects to cores on compile level to provide better performance and parallelism. Distribution of objects to cores means creating an object on specific core and calling its methods on the core which the object is created on. We show that our algorithm is more efficient and meaningful than random distribution or distribution to the first empty core methods. This is because of level one and two caches of processors. For each object staying in the same processor, even in the same core results better use of caches and increases performance due to the attributes and shared data of objects among cores of the processors.

Benzer Tezler

  1. Fotonik ağlarla bağlı çok çekirdekli işlemciler için yüksek düzeyli mimari (HLA) standardında veri iletişiminin modellenmesi

    Modeling of data communication in high level architecture-HLA for photonic network connected multi-core processors

    NEVZAT SEVİM

    Yüksek Lisans

    Türkçe

    Türkçe

    2014

    Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolHacettepe Üniversitesi

    Bilgisayar Mühendisliği Ana Bilim Dalı

    YRD. DOÇ. DR. KAYHAN İMRE

  2. ITU-PRP: Parallel running platform a parallel programming framework for java

    ITU-PRP : Paralel i̇şlem platformu Java i̇çi̇n paralel programlama aracI

    ENIS SPAHI

    Yüksek Lisans

    İngilizce

    İngilizce

    2014

    Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrolİstanbul Teknik Üniversitesi

    Bilgisayar Mühendisliği Ana Bilim Dalı

    DOÇ. DR. DENİZ TURGAY ALTILAR

  3. Tasarım anlambilimi ve Goffman'ın dramaturjik yaklaşımı kesişiminde bir bakış: Görüntülü görüşme deneyimi üzerine bir çalışma

    In the intersection of design semantics and Goffman's dramaturgical approach: A study on the experience of video meetings

    NAZLICAN KAYMAK

    Yüksek Lisans

    Türkçe

    Türkçe

    2024

    Endüstri Ürünleri Tasarımıİstanbul Teknik Üniversitesi

    Endüstriyel Tasarım Ana Bilim Dalı

    DOÇ. DR. ÖZGE ÇELİKOĞLU

  4. Impact of object salience in physical and digital exhibitions: A visitor attention study

    Sergi nesnesi çarpıcılığının fiziksel ve dijital sergilerdeki etkileri: Ziyaretçi dikkati üzerine bir çalışma

    AYÇA TURGAY

    Doktora

    İngilizce

    İngilizce

    2018

    İç Mimari ve Dekorasyonİhsan Doğramacı Bilkent Üniversitesi

    İç Mimarlık ve Çevre Tasarımı Ana Bilim Dalı

    DR. ÖĞR. ÜYESİ ÇAĞRI İMAMOĞLU