Desenvolvendo algoritmos simultâneos práticos e fornecendo ferramentas para testá-los e avaliá-los
A programação concorrente ganhou popularidade nas últimas décadas. Cada linguagem e plataforma fornece primitivas correspondentes, que se tornaram cada vez mais difíceis de usar de maneira eficiente com o aumento da complexidade do sistema, como modelos de memória relaxados ou arquiteturas NUMA. Na prática, surgem várias questões importantes. Como construímos algoritmos concorrentes eficientes? Qual é a melhor compensação entre garantias de progresso, eficiência e equidade? Como verificamos se todos esses algoritmos estão corretos? Como os comparamos? Embora algumas das perguntas tenham sido parcialmente respondidas no meio acadêmico, muitos problemas práticos permanecem. Nosso objetivo é responder a essas perguntas oferecendo soluções praticamente razoáveis e teoricamente valiosas, juntamente com ferramentas de alta qualidade que possam ajudar outros pesquisadores e desenvolvedores na área da concorrência.