Escolha um binário C de acordo com o ambiente

Eu compilei meu código com sinalizadores específicos (-Os, -O2, -march = native e suas combinações) para produzir um tempo de execução mais rápido.

Mas meu problema é que nem sempre corro na mesma máquina (porque no meu laboratório existem várias máquinas diferentes). Às vezes, eu corro dentro de um MacOS ou dentro de um Linux (em ambos os casos com diferentes versões do sistema operacional).

Gostaria de saber se existe uma maneira de determinar qual binário será executado, dependendo do ambiente em que o binário será executado (refiro-me ao tamanho do cache, núcleos da CPU e outras propriedades sobre a máquina específica). Em outras palavras, como escolher (quando o programa carregar) o binário mais rápido (compilado anteriormente com diferentes tamanhos de binários de destino e extensões do conjunto de instruções) de acordo com a máquina específica usada?

Desde já, obrigado.

questionAnswers(4)

yourAnswerToTheQuestion