Багатоядерні процесори… вони справді потрібні? [зачинено]


0

Для чого потрібні багатоядерні процесори? Я маю на увазі, який тип речей виграє від використання багатоядерних? Також є які-небудь речі, які страждають у продуктивності за використання багатоядерних ... тобто. вони працюють краще, використовуючи одноядерний процесор?


паралельні операції виграють багато. наприклад, візуалізація в режимі реального часу
nothrow

4
............так.
Ред С.

Відповіді:


8

Все, де ви хочете зробити більше ніж одну незалежну річ, виграє від наявності декількох процесорів або ядер. Традиційний приклад - Операційні системи, одночасно запускаючи текстовий процесор, браузер тощо. Одноядерний комп'ютер може стати менш чуйним для всіх програм, коли одна програма робить щось обчислювально дорогого, тоді як багатоядерна машина може ізолювати зайняту програму на одному ядрі, залишаючи вільні ресурси для обслуговування заявок користувача.

Іншим благодійником є ​​високопаралелізовані обчислення, такі, як це відбувається в наукових обчисленнях. Робота може бути розповсюджена на декілька процесорів або ядер. Виробництво процесорів досягає меж швидкості роботи одного процесора, а не плавлення. Вони знайшли відповідь, щоб більше процесорів працювало повільніше.


1
+1 за те, що згадує, що декілька процесів лише на настільній машині вже можуть бути тихою вагомою причиною. Більшість людей, здається, занадто важко чіпляються до багатопотокового сценарію :-)
Joey

+1 для @Brabster і +1 для @Johannes - але я сьогодні не маю голосів, вибачте. :)
Олексій

3

Багатопотокові програми отримують перевагу від багатоядерних процесорів, оскільки ви можете призначити потоки для роботи на різних процесорах. Ви отримуєте справжню паралелізацію замість того, щоб скоротити час таким чином.

Java Swing має окремий потік лише для обробки подій інтерфейсу. Я б сказав, що це певна перевага навіть для однопроцесорних машин.

Хитрість полягає в тому, що це не відбувається за допомогою магії. Додаток має бути написане таким чином, щоб він знав про багато процесорів, використовуючи алгоритми, які явно ними користуються.


2

Оскільки синхросигнали обмежені, це єдиний спосіб масштабування, порахуйте наявні в даний час вікна, не забудьте системний лоток. Якщо ви все ще сумніваєтесь, відкрийте диспетчер завдань або зробіть ps -efце, ви запускаєте Linux.


1

Розрахунки, що є процесором, мають найбільше користь від багатоядерних процесорів. Наприклад, одне моє захоплення - це комп'ютерна візуалізація та відстеження променів. Існує лінійна швидкість з кількістю доступних процесорів.

Зауважте, що зараз обчислення високої інтенсивності переносяться на графічний процесор (блок графічної обробки, тобто графічна карта), використовуючи такі технології, як CUDA , OpenCL та Direct Compute .

Інтенсивне обчислення програмного забезпечення буде найкраще використовувати суміш обчислень на основі декількох ядер та GPU.

Microsoft .NET 4.0 має значний прогрес у паралельному програмуванні, що значно спрощує запис багатопотокових програм. Як результат, вони будуть ще більш поширеними в найближчому майбутньому.


1
Напруга процесора не є ключовим фактором, ключовим фактором є те, наскільки добре може бути паралелізована інтенсивна частина процесора. Рейкове трасування - хороший приклад того, що гарно масштабує при паралельному укладанні.
Сандер Рійкен

@Sander: Правда в тому, що якщо паралельні нитки змагатимуться за одні й ті ж ресурси і часто виявляють, що ресурс заблокований іншим потоком, то багаторазове нанизування не має великої користі (або, можливо, навіть втрати). Чи можете ви придумати інші категорії напружених процесорів, які не принесуть користі?
Ерік Дж.

Я не можу придумати категорію програм / проблем / алгоритмів, які мали б проблеми. Просто програми, які не розроблені з урахуванням багатопотокового набору, швидше матимуть статичний стан, який вимагає ексклюзивного доступу. Мова на зразок F # та мовні елементи, такі як вирази lamba, полегшують запис коду, який краще паралелізується.
Сандер Рійкен

@SanderRijken: Оберіть будь-яку NP-важку проблему, і у неї виникнуть проблеми паралельно. Що стосується важких проблем, що не стосуються NP, першочерговий пошук приходить на думку.
Мехрдад

1

Так, вони потрібні для більш високих швидкостей з поточним дизайном процесора . Однак із цим підходом є підводні камені, головним чином, що програма, про яку йде мова, повинна бути спроможною паралельно працювати.


0

Багатоядерні процесори існують вже деякий час, і розробникам реально користуватися ними, написавши багатопотокові програми.


0

Абсолютно! Навіть на моєму старому P4 3.2GHz перемикання на простий Dual Core 2 ГГц зробив величезну різницю ... Дайте мені 6 ядер натякають натяк

Кілька процесорів також дозволяє виконувати більше кодів, оскільки процесор може обробляти лише один фрагмент коду одночасно. Отже, чим більше процесора, тим швидшою та чуйнішою може бути програма.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.