Запуск моделирования на чистом Ubuntu vs на Ubuntu в Windows (WSL)

Я хотел бы задать вопрос о тестировании большого моделирования CAE на том же компьютере в следующих двух ситуациях.

Чистая система Ubuntu Система Ubuntu в Windows 10 (WSL)

] Являются ли скорости вычислений в обоих случаях почти одинаковыми или они различны?

14
задан 13 May 2018 в 19:30

8 ответов

Ваше программное обеспечение для моделирования, скорее всего, связано с ЦП или памятью. Для таких рабочих нагрузок нельзя было бы увидеть существенную разницу между запуском кода на «голом металле» или внутри WSL (или любым другим уровнем совместимости или виртуальной машиной, которая использует собственное исполнение), поскольку в любом случае ОС в основном просто стоит в то время как код моделирования выполняется непосредственно на CPU.

Однако также возможно, что ваша симуляция, по крайней мере, частично связана с I / O, и в этом могут возникнуть различия. По-видимому, WSL (в настоящее время) имеет довольно медленный уровень интерфейса файловой системы, что может значительно замедлить дисковый ввод-вывод. * Тем не менее, хотя дисковый ввод-вывод может быть основным узким местом для многих задач обработки объемных данных, обычно не должны тратить большую часть времени на чтение и запись файлов. Если у вас есть, вы можете захотеть запустить его с RAM-диска (например, tmpfs на родной ** Linux), чтобы избежать ненужного доступа к физическому диску.

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

(FWIW, результаты Phoronix, по-видимому, в основном соответствуют общим принципам, изложенным выше, хотя есть несколько заметных странностей, таких как VirtualBox, которые, по-видимому, превосходят родной Linux в нескольких контрольных тестах ввода-вывода, видимо, на его виртуальный диск не всегда сразу синхронизируются данные с физическим диском. Одна потенциально важная проблема, о которой я не заметил выше, заключается в том, что эталонные тесты показывают существенные различия в многопоточной производительности OpenMP как между различными средами хоста , не даже при работе на голом аппаратном обеспечении. Оглядываясь назад, это не слишком удивительно, поскольку управление потоками и IPC обрабатывается ядром. Я бы предположил, что большая разница между дистрибутивами там может снизиться до другой среды выполнения и / или скомпилировать )

*) Согласно этому сообщению в блоге MSDN с 2016 года в WSL есть фактически два компонента интерфейса: VolFs, который тщательно эмулирует собственную семантику файловой системы Linux через NTFS и используется для монтирования, например / и /home и DrvFs, который обеспечивает в основном семантику, подобную Windows, и используется для доступа к дискам хоста Windows через /mnt/c и т. д. Если ваше программное обеспечение не требует особых функций файловой системы Linux, таких как несколько жестких ссылок на тот же файл, настраивающий его для хранения своих файлов данных в папке DrvFs, может улучшить производительность доступа к файлам в WSL.

*) Согласно этому сообщению в блоге MSDN с 2016 года на самом деле есть два интерфейса файловой системы компоненты в WSL: VolFs, который тщательно эмулирует собственную семантику файловой системы Linux через NTFS и используется для монтирования, например / и /home и DrvFs, который обеспечивает в основном семантику, подобную Windows, и используется для доступа к дискам хоста Windows через /mnt/c и т. д. Если ваше программное обеспечение не требует особых функций файловой системы Linux, таких как несколько жестких ссылок на тот же файл, настраивая его для хранения своих файлов данных в папке DrvFs, может улучшить производительность доступа к файлам в WSL.

17
ответ дан 17 July 2018 в 14:26

Подумайте об этом - в WSL на вашем компьютере запущена полная графическая система Windows (в первую очередь это ужасный ресурс) плюс подсистема Ubuntu. В родном Ubuntu работает только Ubuntu.

7
ответ дан 17 July 2018 в 14:26

Я не знаю, повлияет ли это на ваше моделирование, но может:

WSL НЕ использует ОЗУ для общей памяти! Он использует диск!

Это означает, что если ваша симуляция использует общую память (думаю, /dev/shm), она может быть медленной и / или изнашивать ваше устройство хранения! Снижение производительности происходит из нескольких уровней:

Драйвер файловой системы Драйвер хранилища Носитель данных

Но если это не так, то производительность должна быть аналогична производительности на bare-metal Ubuntu (если не считать других входов / выходов, как упомянуто другими)

1
ответ дан 17 July 2018 в 14:26

Ubuntu в Windows (WSL-2017 Fall Creators Update) определенно медленнее, чем «Чистый» Ubuntu в среде Linux.

Например, картинка экрана занимает много времени в Windows 10 по сравнению с Ubuntu 16.04, то есть вы может видеть перемещение курсора в Windows 10:

Для того, чтобы закрасить экран заставки WSL Bash, требуется около 5 секунд. Для сравнения это примерно 1 1/2 секунды для одного и того же заставки в Ubuntu 16.04:

Бенчмаркинг CPU [ ! d10]

В первом разделе показано, как работает медленный экран ввода-вывода, но как насчет тестирования производительности процессора?

Из этой программы Ask Ubuntu Q & amp; A: утилита сравнения производительности для Linux, я запускал тесты на Ubuntu 16.04 на Linux и Windows. В Linux около 24 секунд на Windows 10 версии 1709 около 31 секунды. Linux на 6 секунд быстрее или примерно на 25% быстрее. Однако я только что обновил Windows 10 до версии 1803 (Redstone 4 aka Spring Creators, апрель 2018 года), и потребовалось 24 секунды, что и Linux.

Ubuntu 16.04 на 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

Ubuntu 16.04 в Windows 10 build 1709

$ 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

Ubuntu 16.04 в Windows 10 build 1803

$ 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.

ПРИМЕЧАНИЕ: Я только что установил Windows 10 Build 1803 (апрель 2018 г. Spring Creators Update AKA Redstone 4) и экран живопись намного быстрее. Для отображения экрана заставки Bash теперь всего 3 секунды вместо 5 секунд. В настоящее время контрольный уровень процессора сравним с Linux.

11
ответ дан 17 July 2018 в 14:26

Ваше программное обеспечение для моделирования, скорее всего, связано с ЦП или памятью. Для таких рабочих нагрузок нельзя было бы увидеть существенную разницу между запуском кода на «голом металле» или внутри WSL (или любым другим уровнем совместимости или виртуальной машиной, которая использует собственное исполнение), поскольку в любом случае ОС в основном просто стоит в то время как код моделирования выполняется непосредственно на CPU.

Однако также возможно, что ваша симуляция, по крайней мере, частично связана с I / O, и в этом могут возникнуть различия. По-видимому, WSL (в настоящее время) имеет довольно медленный уровень интерфейса файловой системы, что может значительно замедлить дисковый ввод-вывод. * Тем не менее, хотя дисковый ввод-вывод может быть основным узким местом для многих задач обработки объемных данных, обычно не должны тратить большую часть времени на чтение и запись файлов. Если у вас есть, вы можете захотеть запустить его с RAM-диска (например, tmpfs на родной ** Linux), чтобы избежать ненужного доступа к физическому диску.

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

(FWIW, результаты Phoronix, по-видимому, в основном соответствуют общим принципам, изложенным выше, хотя есть несколько заметных странностей, таких как VirtualBox, которые, по-видимому, превосходят родной Linux в нескольких контрольных тестах ввода-вывода, видимо, на его виртуальный диск не всегда сразу синхронизируются данные с физическим диском. Одна потенциально важная проблема, о которой я не заметил выше, заключается в том, что эталонные тесты показывают существенные различия в многопоточной производительности OpenMP как между различными средами хоста , не даже при работе на голом аппаратном обеспечении. Оглядываясь назад, это не слишком удивительно, поскольку управление потоками и IPC обрабатывается ядром. Я бы предположил, что большая разница между дистрибутивами там может снизиться до другой среды выполнения и / или скомпилировать )

*) Согласно этому сообщению в блоге MSDN с 2016 года в WSL есть фактически два компонента интерфейса: VolFs, который тщательно эмулирует собственную семантику файловой системы Linux через NTFS и используется для монтирования, например / и /home и DrvFs, который обеспечивает в основном семантику, подобную Windows, и используется для доступа к дискам хоста Windows через /mnt/c и т. д. Если ваше программное обеспечение не требует особых функций файловой системы Linux, таких как несколько жестких ссылок на тот же файл, настраивающий его для хранения своих файлов данных в папке DrvFs, может улучшить производительность доступа к файлам в WSL.

*) Согласно этому сообщению в блоге MSDN с 2016 года на самом деле есть два интерфейса файловой системы компоненты в WSL: VolFs, который тщательно эмулирует собственную семантику файловой системы Linux через NTFS и используется для монтирования, например / и /home и DrvFs, который обеспечивает в основном семантику, подобную Windows, и используется для доступа к дискам хоста Windows через /mnt/c и т. д. Если ваше программное обеспечение не требует особых функций файловой системы Linux, таких как несколько жестких ссылок на тот же файл, настраивая его для хранения своих файлов данных в папке DrvFs, может улучшить производительность доступа к файлам в WSL.

17
ответ дан 20 July 2018 в 14:31
  • 1
    Возможно, это не просто настройка параметров, но и параметры компилятора (например, -O3 -march=haswell или что-то еще. Я не знаю, что на самом деле использует Clear Linux для построения своих ядер, но, возможно, BMI2 / popcnt / что-то может сделать измеримую разницу в glibc и Ядро не будет использовать AVX, хотя, поскольку ядро ​​избегает касания FPU-регистров, кроме определенного кода, такого как данные по исправлению ошибок программного обеспечения RAID5 / 6.) – Peter Cordes 14 May 2018 в 04:01

Подумайте об этом - в WSL на вашем компьютере запущена полная графическая система Windows (в первую очередь это ужасный ресурс) плюс подсистема Ubuntu. В родном Ubuntu работает только Ubuntu.

7
ответ дан 20 July 2018 в 14:31
  • 1
    @JimDeadlock Я действительно не думаю, что он убивает рабочий стол, он просто не отображает его. Каждое приложение gui все еще работает в фоновом режиме, не так ли? – Eric Duminil 13 May 2018 в 20:33
  • 2
    Графический интерфейс Windows потребляет некоторую память, но не очень много используется ЦП, когда он ничего не делает. Я не понимаю, почему это имело бы какое-то значительное влияние? – vidarlo 13 May 2018 в 20:43
  • 3
    Переключение консоли на другой VT не убивает никаких процессов; @ EricDulus - правильный. Он может приостановить то, что использует время процессора для обновления графики, потому что X-сервер знает, что он больше не отображается (и, следовательно, может не тратить время на обработку OpenGL или что-то еще). Но если вы запустите pstree или ps auxw, очевидно, что все процессы все еще живы. (Или top и нажмите M для сортировки по памяти). – Peter Cordes 14 May 2018 в 04:07
  • 4
    @MichaelEricOberlin: переход на другой VT не влияет на уровень запуска! Просто текстовые консоли доступны на уровне запуска, который запускает GDM. (И BTW, уровни выполнения в основном ушли в прошлое, systemd не работает, как SysV init. Раньше часть этого комментария притворяется, что вы используете 5 или 10-летний Linux-дистрибутив со старым, школа init.) Но да, выход из вашей X-сессии и остановка X11 / GDM освободят ресурсы, особенно если у вас нет места подкачки, или на вашем рабочем столе есть дерьмо, которое часто просыпается, даже когда «простаивает». – Peter Cordes 14 May 2018 в 04:11
  • 5
    @MichaelEricOberlin: Ваш комментарий довольно просто ошибочен. Не могли бы вы удалить его? – Eric Duminil 14 May 2018 в 14:56

Я не знаю, повлияет ли это на ваше моделирование, но может:

WSL НЕ использует ОЗУ для общей памяти! Он использует диск!

Это означает, что если ваша симуляция использует общую память (думаю, /dev/shm), она может быть медленной и / или изнашивать ваше устройство хранения! Снижение производительности происходит из нескольких уровней:

Драйвер файловой системы Драйвер хранилища Носитель данных

Но если это не так, то производительность должна быть аналогична производительности на bare-metal Ubuntu (если не считать других входов / выходов, как упомянуто другими)

1
ответ дан 20 July 2018 в 14:31

Ubuntu в Windows (WSL-2017 Fall Creators Update) определенно медленнее, чем «Чистый» Ubuntu в среде Linux.

Например, картинка экрана занимает много времени в Windows 10 по сравнению с Ubuntu 16.04, то есть вы может видеть перемещение курсора в Windows 10:

Для того, чтобы закрасить экран заставки WSL Bash, требуется около 5 секунд. Для сравнения это примерно 1 1/2 секунды для одного и того же заставки в Ubuntu 16.04:

Бенчмаркинг CPU [ ! d10]

В первом разделе показано, как работает медленный экран ввода-вывода, но как насчет тестирования производительности процессора?

Из этой программы Ask Ubuntu Q & amp; A: утилита сравнения производительности для Linux, я запускал тесты на Ubuntu 16.04 на Linux и Windows. В Linux около 24 секунд на Windows 10 версии 1709 около 31 секунды. Linux на 6 секунд быстрее или примерно на 25% быстрее. Однако я только что обновил Windows 10 до версии 1803 (Redstone 4 aka Spring Creators, апрель 2018 года), и потребовалось 24 секунды, что и Linux.

Ubuntu 16.04 на 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

Ubuntu 16.04 в Windows 10 build 1709

$ 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

Ubuntu 16.04 в Windows 10 build 1803

$ 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.

ПРИМЕЧАНИЕ: Я только что установил Windows 10 Build 1803 (апрель 2018 г. Spring Creators Update AKA Redstone 4) и экран живопись намного быстрее. Для отображения экрана заставки Bash теперь всего 3 секунды вместо 5 секунд. В настоящее время контрольный уровень процессора сравним с Linux.

11
ответ дан 20 July 2018 в 14:31
  • 1
    Обратите внимание, что это вводит в заблуждение - это не отличает производительность ввода-вывода и другую вычислительную производительность. WSL, как известно, медленный для ввода / вывода (см., Например, тесты Phoronix). Это ничего не говорит о том, можно ли делать вычисления OP так же быстро в WSL. – muru 13 May 2018 в 10:49
  • 2
    Я искренне удивлен тем, что заставка заставки неэффективна в обоих случаях. Ваш компьютер (предположительно) счастлив сделать гораздо более сложные обновления экрана за несколько миллисекунд, например. при воспроизведении видео. И в последний раз, когда я видел терминал так же медленно, как в вашей первой записи, был в начале 90-х, когда набирал BBS на моем модемом 2400 бит / с. – Ilmari Karonen 13 May 2018 в 10:54
  • 3
    Что вы подразумеваете под «Ubuntu in Linux»? – Jon Bentley 13 May 2018 в 15:48
  • 4
    Честно говоря, этот тип тестов совершенно бесполезен для любой реалистичной программы, как и любой бенчмарк, который в основном измеряет скорость рисования консоли. Либо ваше узкое место в вашей программе - это консольный ввод-вывод (который, как известно, медленный даже в Linux с большинством терминальных эмуляторов), или это не является надежным показателем полезности. – Matteo Italia 13 May 2018 в 17:47
  • 5
    @ WinEunuuchs2Unix Из того, что я вижу, есть небольшая отдача. но много ввода-вывода: откуда-то из-за погоды, чтения даты и времени, печати в формате, чтения системной информации и т. д. В любом случае, вы когда-либо использовали Abaqus? Программное обеспечение для моделирования, такое как оно, или Ansys или Simulink, - это не привязка экрана ввода / вывода при запуске фактического моделирования, если вы не принудительно имитируете симуляцию. Вполне возможно, чтобы они отображали результаты только конечного результата в зависимости от сделанного ими моделирования. – muru 13 May 2018 в 18:04

Другие вопросы по тегам:

Похожие вопросы: