Я уже знаю, как использовать метод runtime для получения количества доступных процессоров (в java), но мне нужно, как управлять количеством процессоров, которые будут использоваться во время каждый раунд теста или выполнения в многоядерной среде. По-другому, я хочу поэкспериментировать на одном узле многоядерного компьютера с 12 процессорами, но мне нужно указать в каждом раунде эксперимента (выполнения), сколько процессоров должно выполнить мое приложение с резьбой. Мне нужно уметь указывать использование 2 cpus, 4 cpus, 6 cpus, 8 cpus, 10 cpus и 12 cpus. Любые предложения будут приветствоваться ThanksУказание количества процессоров, используемых в многоядерной системе
ответ
Создайте столько потоков, сколько хотите использовать ядра (используйте 1 поток для выполнения на 1 ядре).
здесь нет возможности ограничить количество ядер в противном случае на Java.
Спасибо Uwe Plonus за ваш ответ и предложение, я изучу использование потоков, чтобы воспользоваться преимуществами ядер – ATG
Использовать сближение процессора для JVM. В зависимости от вашей ОС это может быть или не быть тривиальной задачей. :-)
для Windows 7 см это: http://www.techrepublic.com/blog/window-on-windows/change-the-processor-affinity-setting-in-windows-7-to-gain-a-performance-edge/5322
Для Linux используйте этот: http://linux.die.net/man/1/taskset
Примечание: вы устанавливаете родственность процессоров для виртуальной машины Java, а не приложение Java!
Также см. Сообщение this для подхода JNI и дальнейшего обсуждения.
- 1. Портативный способ обнаружения количества используемых * * процессоров в Python
- 2. C++ Многопоточность в многоядерной системе
- 3. mpirun фактическое число используемых процессоров
- 4. Как работают прерывания в многоядерной системе?
- 5. Как получить использование ЦП в многоядерной системе
- 6. Понимание оптимизации gcc -o3 в многоядерной системе
- 7. Ограничение количества используемых сердечников
- 8. Указание количества в PEG.js
- 9. ограничение количества процессоров для пользователя
- 10. предельного числа процессоров, используемых в процессе
- 11. Определение количества процессоров
- 12. Достоверность количества процессоров
- 13. Компилировать программы на многоядерной или распределенной системе
- 14. Изменения мьютекса передаются в другие ядра на многоядерной системе?
- 15. Использование только правильного количества логических процессоров
- 16. Netty - Указание количества потоков для создания
- 17. Указание количества кластеров в R
- 18. Как исправить количество процессоров, используемых MemSQL?
- 19. Как получить трассировку вызова от всех процессоров на многоядерной платформе
- 20. Ограничение количества процессоров для многопоточных приложений
- 21. Определение количества процессоров и ядер
- 22. Звук в режиме реального времени в многоядерной Linux-системе
- 23. Определите, какой из хранилищ памяти будет первым в многоядерной системе?
- 24. Синхронизация кешей в многопоточной программе на многоядерной системе
- 25. OpenMP обнаруживает только одно ядро в многосетевой/многоядерной системе
- 26. Win32: вычислить использование процессора потоков в многоядерной/многопроцессорной системе
- 27. Как подтвердить, что все ядра используются openmp в многоядерной системе?
- 28. Процесс Hung из-за тайм-аута планировщика в многоядерной системе
- 29. Независимый способ определения количества процессоров в Java
- 30. Различные количества процессоров в fsi и fsianycpu
№ Использовать threadpool с N потоками. В противном случае вам нужно сделать это на уровне ОС. Пример для Linux: http://serverfault.com/questions/32322/is-it-possible-to-limit-a-linux-process-so-that-it-can-only-run-on-a-particular –
Это зависит от ОС, как она будет распространять потоки на ядра. – NeplatnyUdaj
Спасибо Brain Roach за ваш ответ и ссылку на пример linux, NeplatnyUdaj спасибо за ваш ответ тоже – ATG