Saya ingin mengajukan pertanyaan tentang pengujian simulasi CAE besar pada komputer yang sama dalam dua situasi berikut.
- Sistem Ubuntu murni
- Sistem Ubuntu di Windows 10 (WSL)
Apakah kecepatan perhitungan dalam kedua kasus hampir sama atau mereka berbeda?
Jawaban:
Perangkat lunak simulasi Anda kemungkinan besar terikat dengan CPU atau terikat memori . Untuk beban kerja seperti itu, orang tidak akan kecuali melihat perbedaan yang signifikan antara menjalankan kode pada "bare metal" atau di dalam WSL (atau lapisan kompatibilitas lain atau VM yang menggunakan eksekusi asli), karena dalam kedua kasus OS sebagian besar hanya menunggu sedangkan kode simulasi berjalan langsung pada CPU.
Namun, ada kemungkinan juga bahwa simulasi Anda setidaknya sebagian terikat I / O, dan di situlah perbedaan mungkin muncul. Rupanya, WSL (saat ini) memiliki lapisan antarmuka sistem file yang agak lambat yang dapat memperlambat disk I / O secara signifikan. * Itu mengatakan, sementara disk I / O dapat menjadi hambatan utama untuk berbagai jenis tugas pemrosesan data massal, sebuah "simulasi" biasanya tidak menghabiskan sebagian besar waktunya untuk membaca dan menulis file. Jika milik Anda, Anda mungkin ingin mempertimbangkan untuk menjalankannya dari disk RAM (mis. Tmpfs pada native ** Linux) untuk menghindari akses disk fisik yang tidak perlu.
Bagaimanapun, satu-satunya cara untuk memastikan adalah menguji simulasi Anda di kedua lingkungan dan waktu berapa lama untuk berjalan. Namun, sebelum melakukan itu, Anda mungkin ingin melihat tolok ukur yang ada, seperti WSL vs Docker vs VirtualBox vs tolok ukur kinerja Linux asli oleh Phoronix dari Februari 2018 , dan periksa hasilnya untuk setiap tes yang menekankan komponen yang sama dari sistem seperti simulasi Anda.
(FWIW, hasil Phoronix tampaknya sebagian besar cocok dengan prinsip-prinsip umum yang saya uraikan di atas, meskipun ada beberapa keanehan yang menonjol seperti VirtualBox yang ternyata mengungguli Linux asli dalam beberapa tolok ukur terikat I / O, tampaknya karena disk virtualnya tidak selalu segera menyinkronkan data ke disk fisik .Salah satu masalah yang berpotensi relevan yang saya gagal catat di atas adalah bahwa tolok ukur menunjukkan perbedaan signifikan dalam kinerja OpenMP multi-threaded baik antara lingkungan host yang berbeda dan juga antara distro Linux yang berbeda bahkan ketika berjalan pada perangkat keras yang telanjang. itu tidak terlalu mengejutkan, karena threading dan IPC ditangani oleh kernel. Saya kira banyak perbedaan antara distro-distro yang ada mungkin disebabkan oleh runtime yang berbeda dan / atau kompilasi parameter tuning kernel waktu.)
*) Menurut posting blog MSDN ini dari 2016, sebenarnya ada dua komponen antarmuka sistem file di WSL: VolFs, yang secara dekat mengemulasi semantik sistem file Linux asli di atas NTFS dan digunakan untuk me-mount eg
/
dan/home
, dan DrvFs, yang menyediakan sebagian besar semantik seperti Windows dan digunakan untuk mengakses drive Windows host melalui/mnt/c
dll. Jika perangkat lunak Anda tidak secara khusus memerlukan fitur sistem file Linux asli seperti banyak tautan keras ke file yang sama, mengonfigurasinya untuk menyimpan file datanya dalam folder DrvFs dapat meningkatkan kinerja akses file pada WSL.**) Menurut utas Reddit ini dari Mei 2017, "tmpfs saat ini ditiru menggunakan disk" di WSL. Kecuali ada sesuatu yang berubah selama setahun terakhir, ini mungkin berarti bahwa menggunakan tmpfs pada WSL tidak memberikan manfaat kinerja dibandingkan menggunakan sistem file pada disk normal.
sumber
-O3 -march=haswell
atau sesuatu. Saya tidak tahu apa yang sebenarnya digunakan Clear Linux untuk membangun kernel mereka, tetapi mungkin BMI2 /popcnt
/ apa pun yang dapat membuat perbedaan yang terukur dalam glibc dan kernel. (Kernel menang akan mendapat manfaat dari AVX, karena kernel menghindari menyentuh register FPU kecuali dalam kode spesifik seperti data-error-koreksi data perangkat lunak RAID5 / 6.)Ubuntu di Windows (WSL - 2017 Fall Creators Update) jelas lebih lambat dari Ubuntu "Murni" di lingkungan Linux.
Misalnya pengecatan layar membutuhkan waktu beberapa kali lebih lama di Windows 10 dibandingkan Ubuntu 16.04, artinya Anda sebenarnya dapat melihat pergerakan kursor di Windows 10:
Diperlukan waktu sekitar 5 detik untuk mengecat layar WSL Bash. Sebagai perbandingan, ini sekitar 1 1/2 detik untuk layar splash yang sama di Ubuntu 16.04:
Benchmarking CPU
Bagian pertama menunjukkan betapa lambatnya I / O layar tetapi bagaimana dengan pembandingan CPU?
Dari Tanya Jawab tentang Ubuntu ini: Utilitas benchmark CPU untuk Linux , saya menjalankan pengujian pada Ubuntu 16.04 di Linux dan Windows. Di Linux sekitar 24 detik pada Windows 10 versi 1709 sekitar 31 detik. Linux 6 detik lebih cepat atau sekitar 25% lebih cepat. Namun saya hanya memutakhirkan Windows 10 ke versi 1803 (pembaruan Redstone 4 alias Spring Creators April 2018) dan butuh 24 detik yang sama dengan Linux.
Ubuntu 16.04 di Linux
Ubuntu 16.04 pada Windows 10 build 1709
Ubuntu 16.04 pada Windows 10 build 1803
CATATAN: Pembaruan Windows 10 musim semi untuk 2018 (dijuluki Redstone 4 ) keluar pada 9 Mei (4 hari yang lalu) dan saya akan segera menginstalnya untuk memeriksa peningkatan. Tak ayal ada banyak. Satu yang saya tahu yang menarik minat saya adalah kemampuan untuk menjalankan
cron
pekerjaan di startup. Saya memerlukannya untuk backup harian otomatis ke gmail.com.CATATAN 2: Saya baru saja menginstal Windows 10 Build 1803 (April 2018 Spring Creators Update AKA Redstone 4) dan lukisan layar jauh lebih cepat. Sekarang hanya 3 detik, bukan 5 detik untuk menampilkan layar splash Bash. Benchmark CPU setara dengan Linux sekarang.
sumber
Pikirkan tentang hal ini - di WSL komputer Anda menjalankan sistem grafis Windows penuh (yang merupakan sumber daya yang mengerikan di tempat pertama) ditambah subsistem Ubuntu. Di Ubuntu asli itu hanya menjalankan Ubuntu.
sumber
pstree
ataups auxw
, sudah jelas bahwa semua proses masih hidup. (Atautop
dan tekan M untuk mengurutkan berdasarkan konsumsi memori).systemd
tidak berfungsi seperti SysVinit
. Bagian awal dari komentar ini berpura-pura bahwa Anda menjalankan distro Linux berusia 5 atau 10 tahun denganinit
pengaturan sekolah lama .) Tapi ya , keluar dari sesi X Anda dan menghentikan X11 / GDM akan membebaskan sumber daya, terutama jika Anda tidak memiliki ruang swap, atau desktop Anda memiliki omong kosong yang sering bangun bahkan ketika "idle".Saya tidak tahu apakah ini akan mempengaruhi simulasi Anda secara khusus, tetapi mungkin:
WSL TIDAK menggunakan RAM untuk memori bersama! Itu menggunakan disk!
Ini berarti, jika simulasi Anda menggunakan memori bersama (berpikir
/dev/shm
), mungkin lambat dan / atau usang perangkat penyimpanan Anda! Dan penalti kinerja datang dari beberapa lapisan:Driver sistem file
Driver penyimpanan
Media penyimpanan
Tetapi jika tidak melakukan ini, maka kinerjanya harus sama dengan yang ada pada Ubuntu bare-metal (dengan asumsi tidak ada I / O lain, seperti yang disebutkan orang lain).
sumber