Я хотел бы задать вопрос о тестировании большого CAE моделирования на одном компьютере в следующих двух ситуациях.
Являются ли скорости вычислений в обоих случаях почти одинаковыми или различаются?
Ubuntu в Windows (WSL - 2 017 Осенних Обновлений Создателей) определенно медленнее, чем "Чистая" Ubuntu в среде Linux.
Например, экранное рисование берет много раз дольше в Windows 10 по сравнению с Ubuntu 16.04, т.е. можно на самом деле видеть, что курсор перемещается в Windows 10:
Требуется приблизительно 5 секунд для экрана-заставки Bash WSL для рисования. Для сравнения это - приблизительно 1 1/2 секунда для того же экрана-заставки в Ubuntu 16.04:
Первый раздел показывает, как медленный экран I/O всего лишь что относительно сравнительного тестирования ЦП?
От этого Спрашивают Вопросы и ответы Ubuntu: утилита сравнительного тестирования ЦП для Linux, я запустил тесты на Ubuntu 16.04 на Linux и Windows. На Linux приблизительно 24 секунды на версии 1709 Windows 10 приблизительно 31 секунда. Linux составляет 6 секунд быстрее или приблизительно на 25% быстрее. Однако я просто обновил Windows 10 до версии 1803 (Redstone 4 иначе обновление апреля 2018 Создателей Spring), и потребовалось 24 секунды, который совпадает с Linux.
$ sysbench --test=cpu --cpu-max-prime=20000 run
sysbench 0.4.12: multi-threaded system evaluation benchmark
Running the test with following options:
Number of threads: 1
Doing CPU performance benchmark
Threads started!
Done.
Maximum prime number checked in CPU test: 20000
Test execution summary:
total time: 23.5065s
total number of events: 10000
total time taken by event execution: 23.5049
per-request statistics:
min: 2.13ms
avg: 2.35ms
max: 8.52ms
approx. 95 percentile: 2.76ms
Threads fairness:
events (avg/stddev): 10000.0000/0.00
execution time (avg/stddev): 23.5049/0.00
$ sysbench --test=cpu --cpu-max-prime=20000 run
sysbench 0.4.12: multi-threaded system evaluation benchmark
Running the test with following options:
Number of threads: 1
Doing CPU performance benchmark
Threads started!
Done.
Maximum prime number checked in CPU test: 20000
Test execution summary:
total time: 30.5350s
total number of events: 10000
total time taken by event execution: 30.5231
per-request statistics:
min: 2.37ms
avg: 3.05ms
max: 6.21ms
approx. 95 percentile: 4.01ms
Threads fairness:
events (avg/stddev): 10000.0000/0.00
execution time (avg/stddev): 30.5231/0.00
$ sysbench --test=cpu --cpu-max-prime=20000 run
sysbench 0.4.12: multi-threaded system evaluation benchmark
Running the test with following options:
Number of threads: 1
Doing CPU performance benchmark
Threads started!
Done.
Maximum prime number checked in CPU test: 20000
Test execution summary:
total time: 23.7223s
total number of events: 10000
total time taken by event execution: 23.7155
per-request statistics:
min: 2.21ms
avg: 2.37ms
max: 4.53ms
approx. 95 percentile: 2.73ms
Threads fairness:
events (avg/stddev): 10000.0000/0.00
execution time (avg/stddev): 23.7155/0.00
Примечание: Обновление пружины Windows 10 на 2018 (названный Redstone 4) вышло 9-го мая (4 дня назад), и я буду устанавливать его скоро для проверки улучшений. Несомненно существуют многие. Один я знаю об этом, интересует меня, способность работать cron
задания на запуске. Мне нужно это для автоматических ежедневных резервных копий на gmail.com.
ПРИМЕЧАНИЕ 2: я только что установил Windows 10 Build 1803 (Обновление Создателей Spring апреля 2018 иначе Redstone 4), и экранное рисование намного намного быстрее. Это - теперь только 3 секунды вместо 5 секунд для отображения экрана-заставки Bash. Сравнительный тест ЦП на одном уровне с Linux теперь.
Ваше программное обеспечение моделирования наиболее вероятно или зависящее от ЦП или связанная память. Для таких рабочих нагрузок каждый не был бы кроме видеть любую значительную разницу между выполнением кода "чистого металла" или в WSL (или любой другой слой совместимости или VM, который использует собственное выполнение), с тех пор в любом случае ОС главным образом просто стоит в стороне, в то время как код моделирования работает непосредственно на ЦП.
Однако также возможно, что Вашим моделированием является по крайней мере частично ввод-вывод, связанный, и это - то, где различия могут появиться. По-видимому, WSL (в настоящее время) имеет довольно медленный слой интерфейса файловой системы, который может замедлить диск ввод-вывод значительно.* Тем не менее, в то время как диск, ввод-вывод может быть главным узким местом для многих видов объемных задач обработки данных, "моделирование" обычно, не должен тратить большинство своего времени, читая и пишущий файлы. Если Ваш, можно хотеть полагать, что выполнение его от псевдодиска (например, tmpfs на собственном компоненте ** Linux) избегает бесполезного доступа физического диска.
В любом случае единственный способ быть уверенным состоит в том, чтобы протестировать Ваше моделирование в обеих средах и время, сколько времени это берет для выполнения. Прежде, чем сделать это, однако, можно хотеть смотреть на существующие сравнительные тесты, как этот WSL по сравнению с Докером по сравнению с VirtualBox по сравнению с собственным сравнительным тестом производительности Linux Phoronix с февраля 2018, и исследовать результаты на любые тесты, которые подчеркивают те же компоненты системы, как моделирование делает.
(FWIW, результаты Phoronix, кажется, главным образом соответствуют общим принципам, которые я обрисовал в общих чертах выше, хотя существует несколько известных причуд как VirtualBox, по-видимому, превосходящий собственный Linux по характеристикам в некоторых, ввод-вывод связал сравнительные тесты, по-видимому из-за его виртуального диска не всегда сразу синхронизация данных к физическому диску. Одна потенциально соответствующая проблема, которую мне не удалось отметить выше, - то, что сравнительные тесты показывают существенную разницу в многопоточной производительности OpenMP и между различными серверными средами и также между различными дистрибутивами Linux, работая на "голом" оборудовании. В ретроспективе, это не слишком удивительно, начиная с поточной обработки, и IPC обрабатывается ядром. Я предположил бы, что так большая часть различия между дистрибутивами там может свестись к различным настраивающим параметрам ядра и/или времени компиляции во время выполнения.)
*) Согласно этому сообщению в блоге MSDN с 2016, в WSL существует на самом деле два компонента интерфейса файловой системы: VolFs, который тесно эмулирует собственную семантику файловой системы Linux по NTFS и используется для монтирования, например. /
и /home
, и DrvFs, который обеспечивает главным образом подобную Окнам семантику и используется для доступа к дискам Windows хоста через /mnt/c
и т.д. Если Ваше программное обеспечение конкретно не требует, чтобы собственные функции файловой системы Linux как несколько жестких ссылок на тот же файл, настраивая его для хранения его файлов данных в папке DrvFs могли улучшить производительность доступа к файлу на WSL.
**) Согласно этому потоку Reddit с мая 2017, "tmpfs в настоящее время эмулируется с помощью диска" на WSL. Если что-то не переключило прошлый год, это, по-видимому, означает, что использование tmpfs на WSL не дает выигрыша в производительности по использованию нормальной дисковой файловой системы.
Думайте об этом - в WSL, Ваш компьютер выполняет полную графическую систему Windows (который является ужасающим пожирателем ресурсов во-первых) плюс подсистема Ubuntu. В собственной Ubuntu это только запускает Ubuntu.
Я не знаю, будет ли это влиять на Ваше моделирование, в частности, но оно могло бы:
Это означает, если Ваше моделирование использует общую память (думать /dev/shm
), это может быть медленно и/или износить Ваше устройство хранения! И потеря производительности прибывает из нескольких слоев:
Драйвер файловой системы
Драйвер устройства хранения данных
Носитель
Но если это не делает этого, затем производительность должна быть подобна этому на чистом металле Ubuntu (принимающий никакой другой ввод-вывод, как другие упомянули).