O seu software de simulação provavelmente está ligado à CPU ou à memória . Para essas cargas de trabalho, não seria diferente ver a diferença significativa entre executar o código em "bare metal" ou dentro da WSL (ou qualquer outra camada de compatibilidade ou VM que use execução nativa), pois, em ambos os casos, o sistema operacional está apenas aguardando enquanto o código de simulação é executado diretamente na CPU.
No entanto, também é possível que sua simulação seja pelo menos parcialmente ligada à E / S e é aí que podem surgir diferenças. Aparentemente, o WSL (atualmente) possui uma camada de interface do sistema de arquivos bastante lenta que pode diminuir significativamente a E / S do disco. * Dito isso, enquanto a E / S do disco pode ser o principal gargalo para muitos tipos de tarefas de processamento de dados em massa, uma "simulação" geralmente não deve gastar a maior parte do tempo lendo e gravando arquivos. Se o seu for, considere executá-lo a partir de um disco RAM (por exemplo, tmpfs no Linux nativo **) para evitar o acesso desnecessário ao disco físico.
De qualquer forma, a única maneira de ter certeza é testar sua simulação nos ambientes e no tempo que leva para ser executado. Antes de fazer isso, no entanto, convém dar uma olhada nos benchmarks existentes, como este WSL vs. Docker vs. VirtualBox vs. Linux nativo da Phoronix, a partir de fevereiro de 2018 , e examinar os resultados para quaisquer testes que enfatizem os mesmos componentes do sistema como faz sua simulação.
(FWIW, os resultados do Phoronix parecem coincidir principalmente com os princípios gerais que descrevi acima, embora existam algumas curiosidades notáveis como o VirtualBox aparentemente superando o Linux nativo em alguns benchmarks de E / S, aparentemente devido ao seu disco virtual nem sempre sincronizar dados imediatamente Um problema potencialmente relevante que não observei acima é que os benchmarks mostram diferenças significativas no desempenho do OpenMP multiencadeado, tanto entre os diferentes ambientes host quanto entre as diferentes distribuições do Linux, mesmo quando executadas em hardware simples. isso não é muito surpreendente, já que o threading e o IPC são tratados pelo kernel. Eu acho que grande parte da diferença entre as distribuições pode se resumir a diferentes parâmetros de tempo de execução e / ou tempo de compilação do kernel.)
*) De acordo com esta postagem do blog do MSDN de 2016, na verdade existem dois componentes de interface do sistema de arquivos no WSL: VolFs, que emula de perto a semântica nativa do sistema de arquivos Linux sobre NTFS e é usado para montar eg /
e /home
, e DrvFs, que fornece semântica semelhante ao Windows e é usado para acessar as unidades host do Windows via /mnt/c
etc. Se o seu software não exigir especificamente recursos nativos do sistema de arquivos Linux, como vários links físicos para o mesmo arquivo, configurá-lo para armazenar seus arquivos de dados em uma pasta DrvFs pode melhorar o desempenho do acesso a arquivos em WSL.
**) De acordo com este thread do Reddit de maio de 2017, "o tmpfs está atualmente emulado usando o disco" no WSL. A menos que algo tenha mudado no ano passado, isso presumivelmente significa que o uso de tmpfs no WSL não oferece benefícios de desempenho em relação ao uso de um sistema de arquivos normal em disco.