Как сделать многопоточное приложение использовать все ядра на Ubuntu в VMWare?

У меня многопоточное приложение на C ++ (с использованием pThreads), которое обрабатывает массивный плоский файл, который отлично работает в Windows, – использует все четыре ядра на моем маленьком процессоре. Клиент хочет запустить тот же код в Red Hat на пожарной машине 64 Xeon. Поэтому я скомпилирую его здесь (g ++), запустил его на Ubuntu на VMWare, а код использовал только один из четырех ядер. Поэтому я думаю, что это проблема VMWare, и я отправляю код клиенту – там, где он делает то же самое (насколько я могу сказать удаленно – mpstat -P ALL показывает, что загруженные CPU не загружены). Нужно ли мне что-то делать, чтобы заставить Red Hat развернуть потоки? Есть что-то, что мне не хватает – я пытаюсь изменить приоритет «хороший», но я чувствую, что что-то не хватает.

Я могу опубликовать код, но, как я уже сказал, отлично работает на Windows, использует pThreads и т. Д.

One Solution collect form web for “Как сделать многопоточное приложение использовать все ядра на Ubuntu в VMWare?”

Я попытался бы диагностировать, если это проблема с вашей средой VM или вашим кодом. Вот некоторые вещи, которые следует учитывать в отношении вашей виртуальной машины.

  • У вас есть vmware, настроенный для доступа к нескольким процессорам? У меня нет опыта работы с последними версиями, но это было то, что вам нужно было специально разрешить. В VirtualBox у меня есть опция в конфигурации виртуальной машины, в которой указывается, сколько из гостевых процессоров доступно для работы.

  • Если вы используете cat /proc/cpuinfo у своего гостя Ubuntu, вы видите более одного процессора?

  • Получаете ли вы правильное использование нескольких процессоров, если вы делаете что-то общее, например, отправляетесь в исходный код ядра с помощью компиляции ядра с make -j10 ?

Если какая-либо из этих вещей окажется неправильной, они указывают на то, что ваша виртуальная машина неправильно сконфигурирована, а не проблема с вашим кодом.

  • / dev / tcp не присутствует в Linux
  • Компиляция источников с компилятором, отличным от стандартного
  • Как авторизовать монофонические приложения C # при запуске PIP Raspberry?
  • Как настроить мое окружение таким образом, чтобы была использована правильная (отличная от системы) версия библиотеки
  • Как сбрасывать двоичный файл как строковый литерал C / C ++?
  • Чтение файлов .desktop программно
  • Как выглядит параллельная программа Python с верхней командой?
  • Как разрешить пользователю выполнять скрипт, принадлежащий root? Сетуид больше не работает
  • Настройка правильной среды программирования
  • Как Node.js / модуль кластера передает новые соединения из процесса master / parent, дочерних процессов?
  • Поиск зависимостей для скомпилированной программы на C ++
  • Linux и Unix - лучшая ОС в мире.