Я ищу некоторое руководство, прежде чем тратить много времени на реорганизацию устаревшей программы. Если у меня есть ядра, которые являются частью виртуального кластера. У меня есть вычисление, разбитое на многие части и распространяемое каждому члену кластера. Если каждый сердечник является гиперпоточным, то из следующего наиболее эффективно:Виртуализация Hyper-threaded core
- 2 виртуальных машины, по одному для каждого логического ядра. Половина вычислений отправляется на каждую виртуальную машину, где ОС обрабатывает использование логических ядер.
- 1 виртуальная машина, в которой OpenMP используется для создания 2-х разрядов для разделения вычислений.
Чувство кишки является вариантом 2, потому что гиперпоточное ядро не является истинным ядром, а для опции 3 требуются дополнительные накладные расходы на запуск потоков и передачу данных, когда один поток простаивает. Любое понимание очень ценится. Благодарю.
Может вы даже настроить виртуальную машину на гипер-резьбовой сердечник? В любом случае, я бы пошел с 2, я ожидал бы, что ОС, поддерживающая HT, будет работать лучше, чем виртуальная машина при использовании виртуализации. Это только мое чувство кишки, хотя, и это, вероятно, также зависит от ОС, о которой идет речь (и VM, конечно). – Luaan