As atualizações / patches do Windows podem afetar os resultados calculados do software de engenharia? [fechadas]

1

Eu trabalho em uma empresa de engenharia que depende muito da precisão dos resultados matemáticos calculados produzidos por software no Windows 7 (MATLAB, ANSYS, códigos Fortran escritos internamente). Recentemente, fui designado para um grupo que é responsável por garantir que o software no Windows não seja afetado negativamente por atualizações / patches para o Windows. Disseram-me que a ideia por trás dessas verificações era que uma atualização do sistema operacional poderia alterar potencialmente os resultados aritméticos do software que usamos. Supostamente houve problemas no passado com o software no Unix / Linux sendo afetado por atualizações do kernel.

A primeira parte da minha pergunta é, qual a probabilidade (ou até mesmo possível) de uma atualização para o Windows 7 através de patches, service packs, versões mais novas do .NET framework, etc., poderem alterar os resultados dos cálculos matemáticos. executado por software? Poderia qualquer alteração nos resultados calculados ser maior do que apenas os erros típicos de arredondamento? Idealmente, um conjunto de casos de teste seria executado por cada parte do software, mas isso não é realmente uma questão de tempo ou custo efetivo para fazer cada patch do Windows.

Na segunda parte, há alguma sugestão de como verificar facilmente se uma atualização para o Windows causou alterações que possam afetar os resultados de nosso software? Como mencionado, a execução de um conjunto completo de testes em cada software não é muito viável e acredito que nosso processo atual pode ser muito melhorado.

Também gostaria de saber como outras empresas de engenharia, especialmente aquelas em setores regulamentados como nuclear e espacial, lidam com esse problema de garantir que o software Windows produza resultados esperados para cálculos de engenharia. Eles também se preocupam que cada atualização para o Windows comece a fornecer valores calculados diferentes? Eu realmente não tenho certeza onde essa linha deve ser traçada entre ser responsável em checar nossos cálculos e ser excessivamente paranóico.

    
por higginsmd 19.11.2014 / 21:46

1 resposta

0

O .NET JIT pode ser atualizado para otimizar a aritmética de ponto flutuante de forma mais agressiva.

Se uma atualização do sistema operacional permitir o suporte de um conjunto de instruções mais novo, como o AVX2, isso também poderá alterar a maneira como o IL é colocado em ação.

Eu não consideraria as atualizações do JIT extremamente raras. Eles provavelmente não colocarão um em uma atualização de segurança, mas eu não ficaria surpreso em encontrar um que vá do .NET 4.5.0 para o 4.5.1.

Na verdade, o novo RyuJIT estará ativado por padrão na próxima versão .NET.

Além desse inteiro, uma instrução aritmética IEEE é executada sem o envolvimento do sistema operacional. Seu resultado é especificado exatamente (isso inclui operações de ponto flutuante).

    
por 19.11.2014 / 22:38