Я хотел бы задать вопрос о тестировании большой CAE- симуляции на одном компьютере в следующих двух ситуациях.
- Чистая система Ubuntu
- Система Ubuntu в Windows 10 (WSL)
Являются ли скорости расчета в обоих случаях практически одинаковыми или они разные?
Ответы:
Ваше программное обеспечение для моделирования, скорее всего, связано либо с процессором, либо с памятью . Для таких рабочих нагрузок можно было бы не видеть каких-либо существенных различий между выполнением кода на «голом железе» или внутри WSL (или любого другого уровня совместимости или виртуальной машины, использующей собственное выполнение), поскольку в любом случае ОС в основном просто находится в режиме ожидания в то время как код симуляции работает непосредственно на процессоре.
Тем не менее, также возможно, что ваше моделирование, по крайней мере, частично связано с вводом / выводом, и именно здесь могут возникнуть различия. Очевидно, WSL (в настоящее время) имеет довольно медленный интерфейсный уровень файловой системы, который может значительно замедлить дисковый ввод-вывод. * При этом дисковый ввод-вывод может быть основным узким местом для многих видов задач массовой обработки данных, «симуляции». обычно не следует тратить большую часть своего времени на чтение и запись файлов. Если у вас есть, вы можете захотеть запустить его с RAM-диска (например, tmpfs на нативном ** Linux), чтобы избежать ненужного доступа к физическому диску.
В любом случае, единственный способ убедиться в этом - проверить свою симуляцию в обеих средах и время, необходимое для ее запуска. Однако прежде чем делать это, вы можете взглянуть на существующие тесты, такие как тест производительности WSL и Docker, VirtualBox и родной Linux от Phoronix от февраля 2018 года , и проверить результаты любых тестов, в которых используются те же компоненты. системы, как ваша симуляция делает.
(FWIW, результаты Phoronix, по-видимому, в основном соответствуют общим принципам, которые я изложил выше, хотя есть несколько примечательных странностей, таких как VirtualBox, по-видимому, превосходящих родной Linux в нескольких тестах, связанных с вводом / выводом, по-видимому, из-за того, что его виртуальный диск не всегда сразу синхронизирует данные на физический диск. Одна потенциально важная проблема, которую я не смог отметить выше, заключается в том, что тесты показывают существенные различия в многопоточной производительности OpenMP как между различными средами хоста, так и между различными дистрибутивами Linux даже при работе на голом оборудовании. это не так уж и удивительно, так как многопоточность и IPC обрабатываются ядром. Я полагаю, что большая часть различий между дистрибутивами может заключаться в разных параметрах настройки времени выполнения и / или времени компиляции ядра.)
*) Согласно этому сообщению в блоге MSDN от 2016 года, в WSL на самом деле есть два компонента интерфейса файловой системы: VolFs, который близко эмулирует собственную семантику файловой системы Linux поверх NTFS и используется для монтирования, например,
/
и/home
, и DrvFs, который обеспечивает в основном семантику, подобную Windows и используется для доступа к дискам хоста Windows через/mnt/c
и т. д. Если вашему программному обеспечению не требуются собственные функции файловой системы Linux, такие как несколько жестких ссылок на один и тот же файл, его настройка для хранения файлов данных в папке DrvFs может повысить производительность доступа к файлам на WSL.**) Согласно этой ветке Reddit от мая 2017 года, "tmpfs в настоящее время эмулируется с использованием диска" в WSL. Если что-то не изменилось за последний год, это, вероятно, означает, что использование tmpfs в WSL не дает выигрыша в производительности по сравнению с использованием обычной файловой системы на диске.
источник
-O3 -march=haswell
или что-то в этом роде. Я не знаю, что на самом деле использует Clear Linux для сборки своих ядер, но, возможно, BMI2 /popcnt
/ что-то еще может измерить разницу в glibc и ядре. (Ядро победило Тем не менее, AVX не выигрывает, потому что ядро избегает касания регистров FPU, за исключением специального кода, такого как данные для исправления ошибок в программном обеспечении RAID5 / 6.)Ubuntu в Windows (WSL - 2017 Fall Creators Update) определенно медленнее, чем «Чистая» Ubuntu в среде Linux.
Например, для рисования экрана в Windows 10 требуется намного больше времени, чем для Ubuntu 16.04, то есть вы действительно можете видеть движение курсора в Windows 10:
Для раскраски заставки WSL Bash требуется около 5 секунд. Для сравнения: в том же самом заставке в Ubuntu 16.04 это примерно 1,5 секунды:
Тестирование CPU
В первом разделе показано, насколько медленен ввод / вывод на экране, но как насчет тестирования процессора?
Из этого вопроса Ubuntu Q & A: утилита для тестирования производительности процессора для Linux , я провел тесты на Ubuntu 16.04 для Linux и Windows. В Linux около 24 секунд, в Windows 10 версии 1709 около 31 секунды. Linux работает на 6 секунд быстрее или примерно на 25% быстрее. Однако я только что обновил Windows 10 до версии 1803 (Redstone 4, также известной как Spring Creators апрель 2018 года), и это заняло 24 секунды, что совпадает с Linux.
Ubuntu 16.04 в Linux
Ubuntu 16.04 на Windows 10 сборка 1709
Ubuntu 16.04 на Windows 10 сборка 1803
ПРИМЕЧАНИЕ. Весеннее обновление Windows 10 для 2018 года (дублированное Redstone 4 ) вышло 9 мая (4 дня назад), и я скоро установлю его, чтобы проверить улучшения. Без сомнения, их много. Я знаю, что меня интересует это способность запускать
cron
задания при запуске. Мне это нужно для автоматического ежедневного резервного копирования на gmail.com.ПРИМЕЧАНИЕ 2. Я только что установил Windows 10 Build 1803 (апрель 2018 года, Spring Creators Update, AKA Redstone 4), и рисование экрана происходит намного быстрее. Теперь только 3 секунды вместо 5 секунд для отображения заставки Bash. Тест производительности процессора наравне с Linux.
источник
Подумайте об этом - в WSL ваш компьютер работает под управлением полной графической системы Windows (которая, в первую очередь, является ужасающей проблемой ресурсов), а также подсистемы Ubuntu. В родной Ubuntu работает только Ubuntu.
источник
pstree
илиps auxw
, очевидно, что все процессы все еще живы. (Илиtop
нажмите M для сортировки по потреблению памяти).systemd
не работают как SysVinit
. В предыдущей части этого комментария делается вид, что вы работали с 5 или 10-летним дистрибутивом Linux сinit
настройкой старой школы .) Но да выход из сеанса X и остановка X11 / GDM высвободят ресурсы, особенно если у вас нет места подкачки, или на вашем рабочем столе часто возникает дерьмо, которое часто просыпается даже в режиме ожидания.Я не знаю, повлияет ли это на вашу симуляцию в частности, но это может:
WSL НЕ использует RAM для разделяемой памяти! Он использует диск!
Это означает, что если ваша симуляция использует общую память (подумайте
/dev/shm
), она может быть медленной и / или изнашивать ваше устройство хранения! И снижение производительности происходит из нескольких слоев:Драйвер файловой системы
Драйвер хранилища
Носитель
Но если он этого не делает, то производительность должна быть такой же, как в Ubuntu с голым металлом (при условии отсутствия других операций ввода-вывода, как уже упоминали другие).
источник