Multinúcleos e Concorrência - Idiomas, Bibliotecas e Técnicas de Desenvolvimento [fechado]

O cenário da arquitetura da CPU mudou, vários núcleos são uma tendência que mudará a forma como temos que desenvolver software. Eu fiz o desenvolvimento multi-threaded em C, C ++ e Java, eu fiz o desenvolvimento multi-processo usando vários mecanismos de IPC. Abordagens tradicionais de uso de threads não parecem facilitar, para o desenvolvedor, utilizar hardware que suporte um alto grau de simultaneidade.

Quais idiomas, bibliotecas e técnicas de desenvolvimento você conhece que ajudam a aliviar os desafios tradicionais da criação de aplicativos simultâneos? Estou obviamente pensando em problemas como impasses e condições de corrida. Técnicas de design, bibliotecas, ferramentas, etc. também são interessantes e ajudam a aproveitar e garantir que os recursos disponíveis estejam sendo utilizados - apenas escrever um aplicativo seguro e robusto não garante a utilização de todos os núcleos disponíveis.

O que eu vi até agora é:

Erlang: processo baseado, mensagem passando IPC, o modelo de concorrência do atorDramatis: biblioteca de modelos de atores para Ruby e PythonScala: linguagem de programação funcional para a JVM com algum suporte adicional de simultaneidadeClojure: linguagem de programação funcional para a JVM com uma biblioteca de atoresCupim: uma porta da abordagem do processo da Erlang e passando a mensagem para o Scheme

O que mais você sabe sobre o que funcionou para você e o que você acha interessante assistir?

questionAnswers(15)

yourAnswerToTheQuestion