Я хотел бы задать вопрос о тестировании большого моделирования CAE на том же компьютере в следующих двух ситуациях.
Чистая система Ubuntu Система Ubuntu в Windows 10 (WSL)] Являются ли скорости вычислений в обоих случаях почти одинаковыми или они различны?
Ваше программное обеспечение для моделирования, скорее всего, связано с ЦП или памятью. Для таких рабочих нагрузок нельзя было бы увидеть существенную разницу между запуском кода на «голом металле» или внутри 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.
Подумайте об этом - в WSL на вашем компьютере запущена полная графическая система Windows (в первую очередь это ужасный ресурс) плюс подсистема Ubuntu. В родном Ubuntu работает только Ubuntu.
Я не знаю, повлияет ли это на ваше моделирование, но может:
Это означает, что если ваша симуляция использует общую память (думаю, /dev/shm), она может быть медленной и / или изнашивать ваше устройство хранения! Снижение производительности происходит из нескольких уровней:
Драйвер файловой системы Драйвер хранилища Носитель данныхНо если это не так, то производительность должна быть аналогична производительности на bare-metal Ubuntu (если не считать других входов / выходов, как упомянуто другими)
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:
В первом разделе показано, как работает медленный экран ввода-вывода, но как насчет тестирования производительности процессора?
Из этой программы 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.
$ 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.
ПРИМЕЧАНИЕ: Я только что установил Windows 10 Build 1803 (апрель 2018 г. Spring Creators Update AKA Redstone 4) и экран живопись намного быстрее. Для отображения экрана заставки Bash теперь всего 3 секунды вместо 5 секунд. В настоящее время контрольный уровень процессора сравним с Linux.
Ваше программное обеспечение для моделирования, скорее всего, связано с ЦП или памятью. Для таких рабочих нагрузок нельзя было бы увидеть существенную разницу между запуском кода на «голом металле» или внутри 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.
Подумайте об этом - в WSL на вашем компьютере запущена полная графическая система Windows (в первую очередь это ужасный ресурс) плюс подсистема Ubuntu. В родном Ubuntu работает только Ubuntu.
Я не знаю, повлияет ли это на ваше моделирование, но может:
Это означает, что если ваша симуляция использует общую память (думаю, /dev/shm), она может быть медленной и / или изнашивать ваше устройство хранения! Снижение производительности происходит из нескольких уровней:
Драйвер файловой системы Драйвер хранилища Носитель данныхНо если это не так, то производительность должна быть аналогична производительности на bare-metal Ubuntu (если не считать других входов / выходов, как упомянуто другими)
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:
В первом разделе показано, как работает медленный экран ввода-вывода, но как насчет тестирования производительности процессора?
Из этой программы 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.
$ 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.
ПРИМЕЧАНИЕ: Я только что установил Windows 10 Build 1803 (апрель 2018 г. Spring Creators Update AKA Redstone 4) и экран живопись намного быстрее. Для отображения экрана заставки Bash теперь всего 3 секунды вместо 5 секунд. В настоящее время контрольный уровень процессора сравним с Linux.