Estou analisando o desempenho dos solucionadores lineares do PETSc. Como eu entendo,
Eu sei que a execução do código paralelo em um processador pode ser usada como proxy para o desempenho seqüencial. No entanto, não acho que seja uma boa medida de um código seqüencial equivalente devido à sobrecarga paralela incorrida. Freqüentemente, o desempenho de um código seqüencial é mais rápido que o desempenho paralelo em um único processador. Suponho que eu poderia procurar bibliotecas numéricas que implementam o mesmo solucionador, mas não há garantia de que o algoritmo seja realmente equivalente.
Como eu entendo,
Assim, se houver uma maneira de quantificar a sobrecarga paralela, poderíamos subtraí-la do tempo paralelo em um processador para obter uma melhor medida do tempo seqüencial.
Então, minhas perguntas seriam:
- Existe uma maneira de calcular a sobrecarga paralela de um código paralelo executado em um único processador quando nenhum código seqüencial está disponível?
- Isso é realmente necessário? O desempenho paralelo em um processador é bom o suficiente para aproximar o desempenho seqüencial, em geral?