Apakah CPU multi-core masih mengalami penurunan hasil di dunia saat ini?

8

Telah ditunjukkan dalam pertanyaan lain bahwa karena keadaan aplikasi komputer, prosesor multi-core mengalami penurunan hasil. Apakah ini masih terjadi di dunia saat ini?

Apakah sebagian besar aplikasi baru merangkul multi-threading, dan dengan demikian mengambil keuntungan dari memiliki beberapa core? Jika tidak, apakah OS 64-bit yang lebih baru membantu memanfaatkan core dengan menugaskan tugas / proses ke core yang berbeda? Atau apakah prosesor multi-core masih terus menderita dari pengembalian yang sama (atau serupa)?

Harap buat cadangan segala klaim dengan referensi.

rishimaharaj
sumber
2
Berada di sistem operasi x64 tidak akan membuat perbedaan ketika Anda memiliki program dengan banyak utas. Perbedaan lanskap kompiler antara 2008 dan 2012 sangat besar. Sampai ada cara mudah untuk melakukan suatu tindakan di beberapa utas, memiliki CPU dengan kemampuan untuk melakukan beberapa utas sekaligus, adalah semacam tidak ada gunanya. Bahkan hari ini masih tidak cukup mudah untuk melakukan itu.
Ramhound

Jawaban:

7

Itu sangat tergantung pada apa yang Anda lakukan.

Untuk Word, Excel, dan Minesweeper reguler, dan apa pun yang digunakan ibumu, satu inti masih cukup dan lebih dari dua adalah kerja keras. Aplikasi semacam ini menghabiskan sebagian besar waktu idle, menunggu input pengguna.

Untuk bermain game, Anda akan mendapat manfaat dari setidaknya dua. Setelah itu tergantung permainannya. Secara teoritis Anda bisa menjalankan setiap lawan AI pada utas yang terpisah, tetapi logika game sentral tidak dapat dengan mudah diparalelkan - Anda memerlukan satu tempat di mana semua hasil disatukan untuk membentuk kondisi permainan yang koheren. Jadi biasanya ada satu utas "utama" yang ditunggu semua orang.

Untuk multimedia, bilangan real, dan sains, setiap inti penting. Ini adalah tugas-tugas yang secara inheren multithreaded atau dapat dengan mudah dibuat, dan pengembang memiliki insentif yang kuat untuk mengambil keuntungan dari semua kekuatan pemrosesan yang tersedia.

Pengguna yang kuat suka melakukan banyak tugas. Torrent, VirtualBox, tangkapan layar, video, minecraft, dan penelusuran web semuanya berjalan pada saat yang sama. Jadi, Anda akan mendapat manfaat dari setiap aplikasi yang haus CPU memiliki intinya sendiri. Saat ini populer untuk streaming langsung gim Anda. Jadi itu dua inti untuk permainan, setidaknya satu lagi untuk utas enkoder, dan setidaknya satu lagi untuk sisa sistem. Itu setidaknya 4 core.

Ansis Māliņš
sumber
1
Secara umum, AI permainan yang baik jauh lebih sulit daripada merekonsiliasi beberapa tindakan. Itu hanya tambahan mewah. Kedua, Anda menganggap game yang memiliki satu status game sentral. Itu belum tentu benar juga. Bahkan jika itu terjadi, itu belum tentu menjadi penghalang untuk threading juga. Misalnya perhitungan fisika biasanya dilakukan secara paralel. Dan akhirnya, game juga memiliki bagian rendering grafik yang besar, yang mengarah ke threading juga.
MSalters
Aku ragu single core adalah pernah pilihan yang tepat (hanya menempatkan formula benar-benar lambat dalam Excel ...) dan saya pikir Anda lebih-menyederhanakan sedikit. Bagaimana dengan, misalnya, fitur Turbo Core (AMD) / Turbo Boost (Intel) pada prosesor yang lebih baru? Hal ini memungkinkan AMD hex-core saya untuk memarkir setengah core-nya dan menjalankan separuh lainnya pada laju clock yang lebih cepat - dan versi Intel bahkan lebih berbutir halus, saya percaya - sehingga prosesor dapat kembali mengoptimalkan dengan cepat untuk pekerjaan yang dibutuhkan oleh Itu. Apakah itu membuat mereka pilihan yang lebih baik? Masalah ini hanya dapat diatasi secara akurat dengan pengukuran dan tolok ukur dunia nyata.
DMA57361
Saya setuju sepenuhnya dengan @ DMA57361 Beberapa tahun yang lalu Paman saya membeli beberapa komputer AMD single core untuk anak-anaknya yang belum remaja. Proses latar belakang (Pembaruan Windows menjadi pelaku paling mengerikan) secara teratur menjadikannya hampir tidak dapat digunakan selama beberapa menit setiap kali dengan memaksimalkan CPU.
Dan Is Fiddling By Firelight
Jangan lupa hyperthreading. Prosesor Intel yang lebih canggih dapat mensimulasikan inti prosesor tambahan dengan menyediakan set register tambahan di setiap inti dan memungkinkan utas untuk menggunakan bagian berbeda dari setiap inti prosesor pada saat yang sama untuk lebih meningkatkan kinerja multitasking.
bwDraco
Rendering 3D adalah satu lagi yang menunjukkan keuntungan besar. Jika Anda seorang animator atau desainer grafis dan melakukan banyak perenderan; semua perangkat lunak tingkat profesional memiliki keunggulan untuk mengambil keuntungan dari setiap inti yang ditawarkan mesin Anda (dan lebih banyak lagi dalam kasus cluster jaringan). Kinerja akan skala secara linear dengan jumlah core.
Jason C
5

Saya khawatir jawabannya masih, seperti biasa, "itu tergantung pada apa yang Anda lakukan".

Ya, ada pengembalian yang semakin berkurang dengan menambahkan lebih banyak dan lebih banyak core, dan akan selalu ada jika Anda hanya menjalankan satu aplikasi pada satu waktu .

Bahkan dalam aplikasi multi-ulir yang dibuat dengan baik, banyak tugas yang di-ulir dilakukan untuk menunggu komponen paling lambat di dalam mesin - hard drive, jaringan - tanpa memengaruhi kinerja nyata bagi pengguna. Ini tidak dapat ditingkatkan dengan parallelisation yang lebih besar sehingga batas kecepatan teoretis tidak terjangkau untuk tujuan praktis.

Perlu dicatat bahwa ada beberapa aplikasi "besar" yang tidak multi-threaded (cukup periksa Task Manager OS Anda yang setara, itu harus dapat memberi tahu Anda berapa banyak milik setiap proses - Firefox saya saat ini menggunakan 31, misalnya ).

Tentu saja, menjalankan beberapa aplikasi yang tidak saling tergantung tidak dibatasi oleh batasan-batasan ini. Ketika Anda menambahkan lebih banyak core, Anda dapat menjalankan lebih banyak aplikasi secara bersamaan dengan sedikit penurunan dalam kinerja pemrosesan (hard drive, jaringan, dll kinerja tidak sebaik skala, namun). Dalam praktiknya, bahkan hal ini pun tunduk pada hasil yang semakin berkurang karena ada overhead yang tidak dapat dihindari untuk mengelola distribusi kerja antar core, jalur pipa komunikasi, dan sebagainya.

Sebagai contoh, ini posting Hardware Tom (dari 2009) upaya untuk melihat kinerja dari prosesor multi-core beberapa bawah aplikasi secara simultan - menjalankan permainan sepanjang sisi AVG scan (baik yang mungkin multi-threaded). Prosesor quad, tri- dan dual-core semuanya bekerja sama dengan game saja, tetapi menambahkan pemindaian AVG simultan dan kinerja (diukur dengan FPS rata-rata) turun masing-masing sebesar 22%, 40% dan 59%.

Jadi, sementara quad core tidak menawarkan peningkatan kinerja lebih dari sebuah dual core ketika menjalankan satu aplikasi intensif, segera setelah tugas intensif lain muncul itu akhirnya menjadi dua kali sebagai pemain. Sayangnya, saya tidak dapat menemukan banyak hal lain yang menyelidiki seberapa baik skala ini dengan lebih banyak core dan tugas yang lebih intensif.


Dan kemudian Anda harus memperhatikan fitur prosesor modern seperti Intel Turbo Boost / AMD Turbo Core. Fitur-fitur khusus ini memungkinkan prosesor multi-core yang diparkir inti-nya (memasukkannya ke mode yang lebih lambat, daya rendah, dan) dan menggunakan energi cadangan untuk meng-overclock inti yang tetap aktif - memungkinkan prosesor untuk mengoptimalkan dirinya sendiri untuk menyediakan sebanyak mungkin kekuatan pemrosesan mungkin untuk jumlah tugas yang disajikan.

DMA57361
sumber
2

Untuk menambahkan bahan bakar ke api, saya baca di sini bahwa Android sebenarnya diperlambat dengan memiliki lebih dari satu inti:

Penggunaan prosesor multi-inti sebenarnya dapat membuat perangkat Android lebih lambat, kata Mike Bell, manajer umum kelompok mobile dan komunikasi Intel, yang menyalahkan kemampuan multi-threading Android, atau kekurangannya, karena kesulitan sistem operasi dalam menangani CPU yang kuat secara efektif.

Semakin banyak core yang dimiliki perangkat, semakin banyak daya yang dibutuhkan - dan, untuk saat ini, jumlah daya itu terlalu banyak untuk diseimbangkan oleh perangkat Android.

rishimaharaj
sumber
Hmm, bukankah mengedit ini menjadi pertanyaan asli Anda lebih baik?
Journeyman Geek
Saya pikir seluruh utas ini akan dikonversi ke wiki komunitas / FAQ, dan berpikir bahwa yang terbaik adalah meninggalkan pertanyaan apa adanya, dan menambahkan ini secara terpisah. @Moderator - haruskah jawaban ini digabungkan dengan pertanyaan atau dibiarkan apa adanya?
rishimaharaj
0

Tentu saja, itu tergantung pada apa yang Anda lakukan, tetapi ya, ada pengembalian yang semakin berkurang.

Aplikasi sederhana dan sehari-hari seperti pemrosesan kata atau penelusuran Web hanya mendapat sedikit manfaat dari memiliki lebih dari dua inti prosesor. Aplikasi komputasi dan permainan ilmiah cenderung memanfaatkan lebih baik empat (atau lebih) core dan / atau kemampuan hyperthreading karena mereka cenderung dirancang untuk memanfaatkan perangkat keras modern, tetapi manfaat lebih dari empat core terbatas.

Selain itu, tidak semuanya terikat dengan komputasi. Menambahkan inti prosesor tidak akan membantu jika beban kerja Anda terikat I / O. Jika Anda pernah menginstal SSD untuk mengganti hard drive mekanis, Anda mungkin akan tahu bahwa kinerja komputasi sehari-hari lebih sering terbatas daripada tidak oleh penyimpanan komputer Anda. Dalam lingkungan server yang sibuk di mana sejumlah besar core digunakan untuk memungkinkan sistem menangani sejumlah besar pengguna dan permintaan secara bersamaan, array disk khusus, SSD, dan sistem penyimpanan lainnya digunakan untuk memastikan kinerja maksimum di bawah beban.

bwDraco
sumber