15Aug

Bagaimana Anda Menghitung Kecepatan Prosesor pada Prosesor Multi-Core?

click fraud protection

Munculnya prosesor multi-core kelas konsumen ekonomis menimbulkan pertanyaan bagi banyak pengguna: bagaimana Anda menghitung secara efektif kecepatan sesungguhnya dari sistem multi-inti? Apakah sistem 3Ghz 4 inti benar-benar 12GHz? Baca terus saat kami menyelidiki.

Pertanyaan Hari Ini &Sesi jawaban datang kepada kami atas izin dari SuperUser - subdivisi dari Stack Exchange, pengelompokan komunitas dari situs web Q & A.

Pertanyaan

Pembaca SuperUser NReilingh penasaran bagaimana kecepatan prosesor untuk sistem multi-core sebenarnya dihitung:

Apakah benar untuk mengatakan, misalnya, bahwa prosesor dengan empat core yang masing-masing berjalan pada 3GHz sebenarnya adalah prosesor yang berjalandi 12GHz?

Saya pernah mengalami argumen "Mac vs. PC"( yang omong-omong TIDAK menjadi fokus topik ini. .. yang kembali di sekolah menengah) dengan seorang kenalan yang berkeras bahwa Mac hanya diiklankan sebagai mesin 1Ghz karena merekadual-prosesor G4s masing-masing berjalan pada 500MHz.

instagram viewer

Pada saat saya tahu ini menjadi omong kosong karena alasan yang menurut saya jelas bagi kebanyakan orang, namun saya hanya melihat komentar di situs ini karena efek "6 core x 0.2GHz = 1.2Ghz" dan itu membuat saya berpikir ulang tentangapakah ada jawaban nyata untuk ini.

Jadi, ini adalah pertanyaan teknis filosofis / teknis yang kurang atau lebih tentang semantik perhitungan kecepatan clock. Saya melihat dua kemungkinan:

  1. Setiap inti sebenarnya melakukan perhitungan x per detik, sehingga jumlah total perhitungannya adalah x( inti).Kecepatan clock
  2. agak merupakan hitungan dari jumlah siklus yang dialami prosesor dalam waktu sedetik, jadi selama semua core berjalan pada kecepatan yang sama, kecepatan setiap siklus clock tetap sama tidak peduli berapa banyak coreada. Dengan kata lain, Hz =( core1Hz + core2Hz +. ..) / core.

Jadi, apa cara yang tepat untuk menunjukkan kecepatan clock total dan, yang lebih penting, mungkinkah menggunakan nomenklatur kecepatan inti tunggal pada sistem multi-inti?

Jawaban

Kontributor SuperUser Mokubai membantu membersihkan semuanya. Dia menulis:

Alasan utama mengapa prosesor quad-core 3GHz tidak pernah secepat inti tunggal 12GHz berkaitan dengan bagaimana tugas yang dijalankan pada prosesor itu bekerja, yaitu single-threaded atau multi-threaded. Hukum Amdahl penting saat mempertimbangkan jenis tugas yang sedang Anda jalankan.

Jika Anda memiliki tugas yang secara inheren linier dan harus dilakukan secara tepat langkah-demi-langkah seperti( program yang sangat sederhana)

10: a = a + 1 20: goto 10

Maka tugas sangat bergantung pada hasilnya.dari pass sebelumnya dan tidak dapat menjalankan banyak salinan dari dirinya sendiri tanpa merusak nilai 'a' karena setiap salinan akan mendapatkan nilai 'a' pada waktu yang berbeda dan menuliskannya secara berbeda. Ini membatasi tugas ke thread tunggal dan dengan demikian tugas tersebut hanya dapat berjalan pada satu inti pada waktu tertentu, jika dijalankan pada banyak core maka korupsi sinkronisasi akan terjadi. Ini membatasinya sampai 1/2 dari daya CPU dari sistem dual core, atau 1/4 dalam sistem quad core.

Sekarang ambil tugas seperti:

10: a = a + 1 20: b = b + 1 30: c = c + 1 40: d = d + 1 50: goto 10

Semua baris ini independen dan dapatdibagi menjadi 4 program terpisah seperti yang pertama dan dijalankan pada saat bersamaan, masing-masing dapat memanfaatkan secara efektif kekuatan penuh salah satu inti tanpa masalah sinkronisasi, ini adalah di mana Hukum Amdahl masuk ke dalamnya.

Jadi jika Anda memiliki satu aplikasi berulir yang melakukan perhitungan kasar, prosesor 12GHz tunggal akan menang telak, jika Anda dapat membuat tugas terbagi menjadi beberapa bagian dan multi-threaded maka 4 inti bisa mendekati, namun tidak cukup terjangkau., kinerja yang sama, sesuai dengan Hukum Amdahl.

Hal utama yang diberikan sistem multi CPU adalah responsif. Pada mesin single core yang bekerja keras, sistem bisa terasa lamban karena sebagian besar waktunya bisa digunakan oleh satu tugas dan tugas lainnya hanya berjalan dalam ledakan singkat di antara tugas yang lebih besar, sehingga menghasilkan sistem yang nampaknya lamban atau menyebalkan..Pada sistem multi-core tugas berat mendapat satu inti dan semua tugas lainnya bermain di inti lainnya, melakukan pekerjaan mereka dengan cepat dan efisien.

Argumen "6 core x 0.2GHz = 1.2Ghz" adalah sampah dalam setiap situasi kecuali jika tugas sejajar dan independen. Ada sejumlah tugas yang sangat paralel, namun masih memerlukan beberapa bentuk sinkronisasi. Handbrake adalah trancoder video yang sangat bagus dalam menggunakan semua CPU yang ada namun memerlukan proses inti untuk menjaga benang lainnya terisi data dan mengumpulkan data yang mereka lakukan.

  1. Setiap inti sebenarnya melakukan perhitungan x per detik, sehingga jumlah total perhitungannya adalah x( inti).

Setiap inti mampu melakukan perhitungan x per detik, dengan asumsi beban kerja yang sesuai paralel, pada program linier yang Anda miliki adalah 1 inti. Kecepatan clock

  1. agak merupakan hitungan dari jumlah siklus yang dialami prosesor dalam waktu sedetik, jadi selama semua core berjalan pada kecepatan yang sama, kecepatan setiap siklus clock tetap sama tidak peduli berapa banyak coreada. Dengan kata lain, Hz =( core1Hz + core2Hz +. ..) / core.

Saya pikir ini adalah kesalahan untuk berpikir bahwa 4 x 3GHz = 12GHz, memberikan karya matematika, namun Anda membandingkan apel dengan jeruk dan jumlahnya tidak tepat, GHz tidak bisa digabungkan begitu saja untuk setiap situasi. Saya akan mengubahnya menjadi 4 x 3GHz = 4 x 3GHz.

Punya sesuatu untuk ditambahkan ke penjelasan? Terdengar dalam komentar. Ingin membaca lebih banyak jawaban dari pengguna Stack Exchange tech-savvy lainnya? Simak thread diskusi selengkapnya disini.