Pergunta

Gostaria de saber se existe alguma comparação confiável do desempenho entre idiomas "modernos" em multithreading, como EG Scala e idiomas "clássicos" de nível inferior "como C, C ++, Fortran usando LIBs paralelos como MPI, POSIX ou mesmo MP aberto.

Quaisquer links e sugestões são bem -vindos.

Foi útil?

Solução

Dado que o Java e, portanto, Scala, pode chamar bibliotecas externas e, uma vez que essas bibliotecas externas altamente especializadas farão a maior parte do trabalho, o desempenho será o mesmo desde que as mesmas bibliotecas sejam usadas.

Fora isso, qualquer comparação é essencialmente sem sentido. O código Scala é executado em uma máquina virtual com otimização em tempo de execução. Essa otimização pode levar programas de longa duração a um desempenho maior do que os programas compilados com esses outros idiomas-ou não. Depende do programa específico escrito em cada idioma.

Outras dicas

Aqui está outra não-resposta: vá para o seu Supercomputer Center local e pergunte qual fração da carga da CPU é usada por cada idioma em que você está interessado. Isso só lhe dará uma resposta proxy à sua pergunta, ela lhe dirá o que as pessoas que estão preocupados com o alto desempenho em essas máquinas usadas ao enfrentar o tipo de problema que eles enfrentam. Mas é tão instrutivo quanto qualquer outra resposta que você provavelmente receberá para uma pergunta tão ampla.

PS A resposta será que fortran, C e C ++ consomem bem acima de 95% dos ciclos da CPU.

Eu veria comparações como uma fração. O numerador é uma constante (em torno de 0,00001, acredito). O denominador é o número de encadeamentos multiplicados pelo número de processadores lógicos.

Iow, para um único tópico, a comparação tem uma chance em um milhão de significado de algo. Para um processador Quad Core executando um aplicativo com (digamos) 16 threads, você terá uma chance em 64 milhões de um resultado significativo.

Em suma, existem sem dúvida poucas pessoas trabalhando nisso, mas as chances de até mesmo um resultado de qualquer um deles fornecendo um resultado útil e significativo ainda é extremamente baixo. Pior, mesmo que um deles realmente significasse algo, seria quase impossível encontrar, e ainda mais difícil de verificar a ponto de você realmente sabia Isso significava algo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top