Saya pernah mendengar istilah hyper-threading dan multi-threading, tetapi apa sebenarnya perbedaan di antara mereka? Seperti apa prosesor Intel yang menggunakannya?
Saya pernah mendengar istilah hyper-threading dan multi-threading, tetapi apa sebenarnya perbedaan di antara mereka? Seperti apa prosesor Intel yang menggunakannya?
Jawaban:
Multithreading mengacu pada tugas umum menjalankan lebih dari satu utas eksekusi dalam sistem operasi. Multithreading lebih umum disebut "multiprocessing", yang dapat mencakup beberapa proses sistem (contoh sederhana pada Windows adalah, misalnya, menjalankan Internet Explorer dan Microsoft Word pada saat yang sama), atau dapat terdiri dari satu proses yang memiliki banyak utas dalam Itu.
Multithreading (atau harus saya katakan, multiprocessing) adalah konsep perangkat lunak . Praktis setiap Turing-CPU lengkap dapat melakukan multithreading, bahkan jika komputer hanya memiliki satu core CPU dan core itu tidak mendukung hyperthreading. Untuk mendukung multiprocessing, CPU akan melakukan interleave eksekusi dari berbagai thread eksekusi, dengan mengeksekusi satu, kemudian yang lain, lalu yang lain, di mana sistem operasi akan membagi waktu yang tersedia menjadi "irisan" dan memberikan jumlah waktu yang kira-kira sama untuk setiap utas (waktunya tidak harus sama, tetapi biasanya cara itu dilakukan kecuali suatu proses meminta prioritas yang lebih tinggi).
Perhatikan bahwa, setiap kali ada lebih banyak utas eksekusi perangkat lunak yang mencoba dieksekusi pada waktu tertentu daripada ada utas eksekusi perangkat keras (simultan) yang tersedia , maka utas perangkat lunak ini akan "disisipkan" di antara inti yang tersedia. Dalam kasus "uniprocessor" (satu inti CPU tanpa hyperhreading), jika Anda memiliki lebih dari satu utas perangkat lunak, mereka akan selaludisisipkan Jika Anda memiliki CPU 4-core dengan hyperthreading, itu 8 "utas perangkat keras", artinya CPU dapat mengeksekusi 8 utas eksekusi secara bersamaan pada saat yang bersamaan, jadi jika Anda memiliki 8 utas perangkat lunak yang mencoba dijalankan, semuanya dapat berjalan sekaligus ; tetapi jika Anda memiliki 9 utas perangkat lunak, salah satu utas perangkat keras harus interleave sepasang utas (sepasang utas yang tepat akan tergantung pada implementasi penjadwal sistem operasi).
Hyperthreading, di sisi lain, mengacu pada teknologi perangkat keras yang sangat spesifik yang dibuat oleh Intel, yang memungkinkan inti prosesor tunggal untuk interleave banyak thread eksekusi lebih efisien. Dengan kata lain, CPU dengan hyperthreading akan memberikan kinerja yang agak lebih besar dari CPU yang sebaliknya sama tetapi tanpa hyperthreading, karena CPU hyperthreaded akan dapat secara bersamaan menyeimbangkan dua (kadang-kadang lebih, tetapi hyperthreading biasanya 2- cara) utas eksekusi pada inti yang diberikan.
Namun, hyperthreading benar-benar lebih lambat daripada memiliki core fisik yang benar-benar terpisah, karena ada beberapa jenis operasi yang dapat mengganggu keuntungan kinerja dari hyperthreading, sementara ada lebih sedikit operasi yang dapat menyebabkan peristiwa seperti itu dengan core yang benar-benar terpisah.
Ambil contoh berikut, di mana "1 core" diasumsikan melakukan persis sama dalam semua contoh:
Contoh 1: 2 core, tidak ada hyperthreading.
Contoh 2: 4 core, tidak ada hyperthreading.
Contoh 3: 2 core dengan hyperthreading.
Contoh 4: 4 core dengan hyperthreading.
Dalam hal ini, Contoh 4 akan selalu menjadi yang tercepat. Contoh 2 kadang-kadang sekitar secepat Contoh 4, pada beban kerja yang sangat tidak cocok untuk mengambil keuntungan dari optimasi hyperthreading.
Contoh 3, di sisi lain, kadang-kadang, pada beban kerja di mana hyperthreading paling menguntungkan, hampir secepat Contoh 2, meskipun memiliki setengah inti fisik lebih banyak.
Contoh 1 tentu saja, akan menjadi yang paling lambat dari semua contoh, tetapi kadang-kadang mungkin sekitar secepat Contoh 3, ketika menjalankan beban kerja yang kurang cocok untuk hyperthreading.
Dalam tolok ukur dunia nyata dengan CPU Intel modern, kami biasanya menemukan bahwa hasil hyperthreading menghasilkan, secara umum, 20% hingga 40% peningkatan kinerja dibandingkan dengan tanpa hyperthreading (dengan case "no hyperthreading" diperbandingkan dengan menonaktifkan fitur hyperthreading di BIOS). Kadang-kadang akan ada beban kerja di mana penonaktifan hyperthreading menunjukkan keunggulan kinerja , tetapi beban kerja ini jarang terjadi dalam penggunaan aktual. Tetapi, jika saya memiliki pilihan antara 4 core dengan hyperthreading atau 8 core, dengan asumsi bahwa masing-masing core itu sendiri memiliki kinerja yang sama, saya akan memilih CPU 8 core setiap saat.
Multithreading adalah istilah untuk pemrosesan paralel pada tingkat sistem operasi. Prosesor tidak ada hubungannya dengan multithreading.
Hyperthreading adalah konsep Intel yang mengimplementasikan pemrosesan "simultan" dari banyak utas dalam inti prosesor tunggal. Sistem operasi melihat dua inti prosesor, meskipun hanya ada satu inti fisik.