Running PixInsight in WSL2: Faster than Native Windows!

Running PixInsight in WSL2: Faster than Native Windows!

Introduction

PixInsight is a powerful astrophotography processing application, but its performance varies significantly depending on the platform it runs on. In this benchmark study, we explore the performance of PixInsight running in Windows 11 versus WSL2 (Windows Subsystem for Linux 2) on the same Intel i9-13900K system.

Key Takeaway:

🚀 PixInsight runs significantly faster in WSL2 than on native Windows 11.

This article details the tests, results, and observations, focusing exclusively on WSL2 and Windows 11—no native Linux benchmarks are included as we did not have a dedicated Linux installation available.


System Configuration

Hardware

  • CPU: Intel i9-13900K (24 cores, 32 threads, hybrid architecture with P-cores & E-cores)
  • RAM: 128GB DDR5 @ 5600MHz (2xDual Channel and don't ask me how it even works, it took 4 sets of DDR5 to get here)
  • Storage: PCIe 4.0 NVMe (PixInsight installed on NVMe)
  • OS: Windows 11 Pro (WSL2 Ubuntu 24.04.2 LTS used for Linux tests)
  • PixInsight Version: 1.9.3 (default settings, no swap modifications inside PixInsight)

WSL2 Configuration (Optimized Settings)

The following .wslconfig settings were tested to optimize performance:

[wsl2]
processors=24
memory=96GB
swap=64GB

Other tested configurations:

  • memory=48GB, swap=0
  • memory=64GB, swap=0
  • memory=96GB, swap=0
  • processors=16, memory=96GB, swap=64GB

Benchmarking Methodology

  • Official PixInsight Benchmark v1.0.08 was used.
  • Multiple runs were performed per configuration to identify trends.
  • No changes were made to PixInsight’s internal swap settings.
  • Only WSL2 settings were modified to improve performance.
PixInsight Windows 11 32 Threads 128GB Ram 16GB Swap
PixInsight WSL2 12 Threads 96GB Ram 0GB Swap

Benchmark Results

Windows 11 (Baseline Performance)

Run Total Time CPU Time Swap Time Total Performance CPU Performance Swap Performance
1 25.15s 17.83s 7.29s 18,707 21,227 12,589
2 25.45s 18.15s 7.28s 18,482 20,852 12,615
3 25.52s 18.11s 7.39s 18,433 20,905 12,420

WSL2 with 24 Processors, 96GB RAM, 64GB Swap

Run Total Time CPU Time Swap Time Total Performance CPU Performance Swap Performance
1 21.60s 14.97s 6.60s 21,783 25,282 13,902
2 21.65s 14.97s 6.65s 21,731 25,278 13,798
3 21.85s 15.53s 6.30s 21,524 24,368 14,567
4 22.57s 16.02s 6.53s 20,842 23,621 14,067

WSL2 with 48GB RAM, No Swap - Best result

Run Total Time CPU Time Swap Time Total Performance CPU Performance Swap Performance
1 22.97s 16.11s 6.84s 20,479 23,498 13,418

WSL2 with 64GB RAM, No Swap - Best result

Run Total Time CPU Time Swap Time Total Performance CPU Performance Swap Performance
1 21.91s 15.37s 6.53s 21,466 24,630 14,068

WSL2 with 96GB RAM, No Swap

Run Total Time CPU Time Swap Time Total Performance CPU Performance Swap Performance
1 20.88s 14.35s 6.50s 22,533 26,381 14,118
2 21.85s 15.29s 6.54s 21,530 24,763 14,029
3 22.01s 15.32s 6.67s 21,374 24,707 13,768

Key Findings & Observations

  1. WSL2 is up to 20% faster than Windows 11.
    • Best WSL2 time: 20.52s vs. Best Windows 11 time: 25.15s.
    • WSL2 consistently beats Windows in every test.
  2. Optimizing .wslconfig significantly boosts WSL2 performance.
    • Increasing processors to 24 and memory to 96GB showed some performance gains.
    • Adding swap (64GB) further improved performance (best run: 20.52s).
  3. Windows 11 Scheduler is inefficient for PixInsight.
    • Windows does not properly allocate P-cores & E-cores.
    • WSL2 utilizes resources more efficiently, leading to higher CPU utilization and better swap performance.
  4. WSL2 Swap Boosts Performance (Even with Enough RAM)
    • With 96GB RAM, swap was still beneficial, suggesting Linux kernel memory management optimizations.
    • WSL2 swap (64GB) resulted in the best performance overall.

Windows Benchmark report - 32 Threads, 128GB Ram and 16GB SWAP

*******************************************************************************
The Official PixInsight Benchmark version 1.0
Copyright (C) 2014-2021 Pleiades Astrophoto. All Rights Reserved.
*******************************************************************************

Benchmark version ...... 1.00.08
Input checksum ......... 2cd72b67e12fff2812ef5b5da054ab2a70a25e23
Serial number .......... CY4R1B92NLPG8O0X9R2VBA5WUKCATDN5

CPU Identification
CPU vendor ............. GenuineIntel
CPU model .............. 13th Gen Intel(R) Core(TM) i9-13900K

System Information
Platform ............... Windows
Operating system ....... Microsoft Windows 11 Pro
Core version ........... PixInsight Core 1.9.2 (x64)
Logical processors ..... 32
Total memory size ...... 127.769 GiB

Execution Times
Total time ............. 00:25.23
CPU time ............... 00:17.55
Swap time .............. 00:07.66
Swap transfer rate ..... 2163.776 MiB/s

Performance Indices
Total performance ...... 18642
CPU performance ........ 21567
Swap performance ....... 11984

*******************************************************************************

Benchmark version ...... 1.00.08
Input checksum ......... 2cd72b67e12fff2812ef5b5da054ab2a70a25e23
Serial number .......... Z5111KN5L6203BH8ORUOF5YV0F77A4X0

CPU Identification
CPU vendor ............. GenuineIntel
CPU model .............. 13th Gen Intel(R) Core(TM) i9-13900K

System Information
Platform ............... Windows
Operating system ....... Microsoft Windows 11 Pro
Core version ........... PixInsight Core 1.9.2 (x64)
Logical processors ..... 32
Total memory size ...... 127.769 GiB

Execution Times
Total time ............. 00:25.41
CPU time ............... 00:17.66
Swap time .............. 00:07.73
Swap transfer rate ..... 2144.987 MiB/s

Performance Indices
Total performance ...... 18513
CPU performance ........ 21434
Swap performance ....... 11880

*******************************************************************************

Benchmark version ...... 1.00.08
Input checksum ......... 2cd72b67e12fff2812ef5b5da054ab2a70a25e23
Serial number .......... RLPGV59COBJWOPH93P1B9Z64BPL3QCGM

CPU Identification
CPU vendor ............. GenuineIntel
CPU model .............. 13th Gen Intel(R) Core(TM) i9-13900K

System Information
Platform ............... Windows
Operating system ....... Microsoft Windows 11 Pro
Core version ........... PixInsight Core 1.9.2 (x64)
Logical processors ..... 32
Total memory size ...... 127.769 GiB

Execution Times
Total time ............. 00:25.45
CPU time ............... 00:17.82
Swap time .............. 00:07.60
Swap transfer rate ..... 2180.325 MiB/s

Performance Indices
Total performance ...... 18484
CPU performance ........ 21237
Swap performance ....... 12076

*******************************************************************************

Benchmark version ...... 1.00.08
Input checksum ......... 2cd72b67e12fff2812ef5b5da054ab2a70a25e23
Serial number .......... HRUI97LJG3OF6340165TB667P772456T

CPU Identification
CPU vendor ............. GenuineIntel
CPU model .............. 13th Gen Intel(R) Core(TM) i9-13900K

System Information
Platform ............... Windows
Operating system ....... Microsoft Windows 11 Pro
Core version ........... PixInsight Core 1.9.2 (x64)
Logical processors ..... 32
Total memory size ...... 127.769 GiB

Execution Times
Total time ............. 00:25.52
CPU time ............... 00:17.60
Swap time .............. 00:07.89
Swap transfer rate ..... 2100.018 MiB/s

Performance Indices
Total performance ...... 18434
CPU performance ........ 21501
Swap performance ....... 11631

*******************************************************************************

WSL2 Benchmark report - 12Threads 47GB Ram, 0GB Swap

*******************************************************************************
The Official PixInsight Benchmark version 1.0
Copyright (C) 2014-2021 Pleiades Astrophoto. All Rights Reserved.
*******************************************************************************

Benchmark version ...... 1.00.08
Input checksum ......... 2cd72b67e12fff2812ef5b5da054ab2a70a25e23
Serial number .......... GK061CGIHZKF68G7WBW67QVJC2MQL7FE

CPU Identification
CPU vendor ............. GenuineIntel
CPU model .............. 13th Gen Intel(R) Core(TM) i9-13900K

System Information
Platform ............... Linux / Ubuntu 24.04.2 LTS
Operating system ....... 5.15.167.4-microsoft-standard-WSL2 #1 SMP Tue Nov 5 00:21:55 UTC 2024 GNU/Linux
Core version ........... PixInsight Core 1.9.3 (x64)
Logical processors ..... 12
Total memory size ...... 47.050 GiB

Execution Times
Total time ............. 00:20.52
CPU time ............... 00:14.01
Swap time .............. 00:06.49
Swap transfer rate ..... 2555.448 MiB/s

Performance Indices
Total performance ...... 22924
CPU performance ........ 27010
Swap performance ....... 14153

*******************************************************************************

Benchmark version ...... 1.00.08
Input checksum ......... 2cd72b67e12fff2812ef5b5da054ab2a70a25e23
Serial number .......... DJ3L4X9NC8794001KINYJ1BD960416QU

CPU Identification
CPU vendor ............. GenuineIntel
CPU model .............. 13th Gen Intel(R) Core(TM) i9-13900K

System Information
Platform ............... Linux / Ubuntu 24.04.2 LTS
Operating system ....... 5.15.167.4-microsoft-standard-WSL2 #1 SMP Tue Nov 5 00:21:55 UTC 2024 GNU/Linux
Core version ........... PixInsight Core 1.9.3 (x64)
Logical processors ..... 12
Total memory size ...... 47.050 GiB

Execution Times
Total time ............. 00:21.68
CPU time ............... 00:15.30
Swap time .............. 00:06.36
Swap transfer rate ..... 2607.836 MiB/s

Performance Indices
Total performance ...... 21698
CPU performance ........ 24733
Swap performance ....... 14444

*******************************************************************************

Benchmark version ...... 1.00.08
Input checksum ......... 2cd72b67e12fff2812ef5b5da054ab2a70a25e23
Serial number .......... K07931675F6T0J46EH0T94F73Y94N7KY

CPU Identification
CPU vendor ............. GenuineIntel
CPU model .............. 13th Gen Intel(R) Core(TM) i9-13900K

System Information
Platform ............... Linux / Ubuntu 24.04.2 LTS
Operating system ....... 5.15.167.4-microsoft-standard-WSL2 #1 SMP Tue Nov 5 00:21:55 UTC 2024 GNU/Linux
Core version ........... PixInsight Core 1.9.3 (x64)
Logical processors ..... 12
Total memory size ...... 47.050 GiB

Execution Times
Total time ............. 00:21.99
CPU time ............... 00:15.51
Swap time .............. 00:06.46
Swap transfer rate ..... 2565.436 MiB/s

Performance Indices
Total performance ...... 21389
CPU performance ........ 24400
Swap performance ....... 14209

*******************************************************************************

Benchmark version ...... 1.00.08
Input checksum ......... 2cd72b67e12fff2812ef5b5da054ab2a70a25e23
Serial number .......... CG9TK9YLNL56645I3XB20M06WC6CI4U0

CPU Identification
CPU vendor ............. GenuineIntel
CPU model .............. 13th Gen Intel(R) Core(TM) i9-13900K

System Information
Platform ............... Linux / Ubuntu 24.04.2 LTS
Operating system ....... 5.15.167.4-microsoft-standard-WSL2 #1 SMP Tue Nov 5 00:21:55 UTC 2024 GNU/Linux
Core version ........... PixInsight Core 1.9.3 (x64)
Logical processors ..... 12
Total memory size ...... 47.050 GiB

Execution Times
Total time ............. 00:22.97
CPU time ............... 00:16.11
Swap time .............. 00:06.84
Swap transfer rate ..... 2422.658 MiB/s

Performance Indices
Total performance ...... 20479
CPU performance ........ 23498
Swap performance ....... 13418

*******************************************************************************

Conclusion: WSL2 Wins

🔥 WSL2 outperforms Windows 11 when running PixInsight.

  • Faster execution times.
  • Better CPU performance.
  • More efficient memory and swap handling.
  • Windows 11’s inefficient CPU scheduler is a major bottleneck.

✅ Recommendation: If you're running PixInsight on Windows, switch to WSL2 for better performance!


Packages required to run PixInsight in WSL2

Base System Dependencies

sudo apt-get install -y \
  xorg \
  libx11-6 \
  libssl3 \
  libcrypto3 \
  libssh2-1 \
  libpsl5 \
  libbrotli1 \
  libstdc++6 \
  libmvec1 \
  libgcc-s1 \
  libc6 \
  libxau6 \
  libxdmcp6 \
  libbsd0 \
  libmd0

Qt6 Dependencies

sudo apt-get install -y \
  qt6-base-dev \
  qt6-webengine-dev \
  qt6-webview-dev \
  qt6-webchannel-dev \
  qt6-positioning-dev \
  qt6-svg-dev \
  qt6-svg

Other packages may be required dependent on your own WSL2 Ubuntu install, your millage may vary and basic Linux skills are required.

Future Tests

  • Native Linux Performance Comparison (when available).
  • CUDA and PixInsight in WSL2
  • Experimenting with Kernel 6.x in WSL2.