Intel Compiler 10 vs. OpenMP

Intel Compiler 10

Sebagai pengembang prosesor multicore terdepan, Intel juga menyediakan tool yang dapat digunakan oleh programmer. Program Intel Compiler 10 terbaru (download test version 30 hari: www.intel.com/software) dapat menganalisis kode program selama proses compiling berjalan dan bila perlu mengalokasikannya menjadi beberapa thread secara otomatis. Namun, Intel Compiler 10 ini bukanlah program yang ajaib. Identifikasi dapat dilakukan secara otomatis apabila compiler merasa yakin bahwa tidak ada deadlock atau Race-Conditions. Bila demikian, maka compiler hanya akan menghasilkan program yang bekerja serial saja (lihat box di atas).

OpenMP

OpenMP adalah seperangkat arahan kompiler serta API untuk program yang ditulis dalam C, C ++, atau FORTRAN yang menyediakan dukungan untuk pemrograman paralel di lingkungan memori bersama. OpenMP mengidentifikasi wilayah paralel sebagai blok kode yang dapat berjalan secara paralel. Pengembang aplikasi memasukkan arahan kompiler ke dalam kode mereka di wilayah paralel, dan arahan ini menginstruksikan pustaka run-time OpenMP untuk menjalankan wilayah secara paralel. Program C berikut menggambarkan arahan kompiler di atas wilayah paralel yang berisi pernyataan printf () hal Ini menciptakan banyak utas yang memproses inti dalam sistem. Jadi, untuk sistem dual-core, dua thread dibuat, untuk sistem quad-core, empat thread dibuat;

Dan seterusnya. Kemudian semua utas secara bersamaan menjalankan wilayah paralel. Ketika setiap utas keluar dari wilayah paralel, itu diakhiri. OpenMP menyediakan beberapa arahan tambahan untuk menjalankan wilayah kode secara paralel, termasuk paralelisasi loop.

Selain memberikan arahan untuk paralelisasi, OpenMP memungkinkan pengembang untuk memilih di antara beberapa level paralelisme. E.g., mereka dapat mengatur jumlah utas secara manual. Ini juga memungkinkan pengembang untuk mengidentifikasi apakah data dibagikan di antara utas atau pribadi ke utas. OpenMP tersedia pada beberapa kompiler open-source dan komersial untuk sistem Linux, Windows, dan Mac OS X.

Intel Compiler 10

Intel Compiler 10 menawarkan dukungan terbaik untuk membuat aplikasi multi-utas. Hanya Edisi Profesional yang menawarkan luasnya pengoptimalan tingkat lanjut, multi-threading, dan dukungan prosesor yang mencakup pengiriman prosesor otomatis, vektorisasi, paralelisasi otomatis, OpenMP *, pengambilan data sebelumnya, dan pengulangan membuka gulungan, bersama dengan template C ++ yang dioptimalkan untuk paralelisme, matematika pemrosesan, dan perpustakaan multimedia.

Optimasi yang sebenarnya hanya dapat dilakukan programmer sendiri, karena ia yang lebih mengetahui elemen program mana yang dapat diproses secara terpisah. Sejak 1997 tersedia sebuah paket programmer OpenMP untuk menandai apakah sebuah elemen dapat diparalelkan atau tidak dalam program. Di sini, jumlah thread dapat ditentukan apakah oleh sistem atau oleh programmer itu sendiri. OpenMP bekerja memroses dengan bahasa program C/C++ dan Fortran. Bahasa ini cukup baik untuk pemprograman aplikasi multi Core

Dalam waktu dekat, AMD segera menghentikan produksi CPU single core mereka. Namun, Intel sudah memutuskan untuk tidak memproduksinya sejak awal 2007 lalu dan sudah memulai untuk mengembangkan CPU dengan 80 core lebih. Tidak akan efektif apabila tanpa software multicore. Jadi, pengembang software sudah harus memulai untuk mengerjakan PR multithreading mereka.