Distribution of objects on multicore processors
Çok çekirdekli işlemcilerde nesnelerin dağıtılması
- Tez No: 251800
- Danışmanlar: YRD. DOÇ. DR. FEZA BUZLUCA
- Tez Türü: Yüksek Lisans
- Konular: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol, Computer Engineering and Computer Science and Control
- Anahtar Kelimeler: Belirtilmemiş.
- Yıl: 2009
- Dil: İngilizce
- Üniversite: İstanbul Teknik Üniversitesi
- Enstitü: Fen Bilimleri Enstitüsü
- Ana Bilim Dalı: Bilgisayar Mühendisliği Ana Bilim Dalı
- Bilim Dalı: Belirtilmemiş.
- 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
- 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
2014
Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolHacettepe ÜniversitesiBilgisayar Mühendisliği Ana Bilim Dalı
YRD. DOÇ. DR. KAYHAN İMRE
- 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
2014
Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrolİstanbul Teknik ÜniversitesiBilgisayar Mühendisliği Ana Bilim Dalı
DOÇ. DR. DENİZ TURGAY ALTILAR
- 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
2024
Endüstri Ürünleri Tasarımıİstanbul Teknik ÜniversitesiEndüstriyel Tasarım Ana Bilim Dalı
DOÇ. DR. ÖZGE ÇELİKOĞLU
- İstanbul Çatalca bölgesinde uzaktan algılama yöntemleri ile metropoliten analizi
Başlık çevirisi yok
F.ZEHRA ALKAN
- 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
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