Execução paralela de métodos em Scala - Ferreira, Daniel Filipe Ventura (2019)
A programação não tem acompanhado de uma forma simplificada as evoluções de hard- ware verificadas ao longo dos anos. Os recursos disponíveis nos atuais processadores multinúcleo e clusters de alta performance ainda não estão a ser aproveitados na sua totalidade por programadores não especialistas na área de computação paralela. O modelo de programação de alto nível Single Operation Multiple Data (SOMD) apre- senta uma nova ideia que tem o objetivo de generalizar a execução de aplicações de forma paralela. O modelo pretende, com o acrescento de algumas anotações, ser capaz de execu- tar em sistemas multinúcleo e distribuídos sub-rotinas previamente escritas e pensadas de forma sequencial. O objetivo principal do projeto desta dissertação é a criação de uma implementação em Scala, usando a framework de programação Akka, do modelo SOMD. A solução será capaz de executar de forma paralela código sequencial que seja suscetível de tratamento usando a técnica de divisão e conquista. Pretende-se explorar as duas formas clássicas de paralelismo: computação local usando memória partilhada (nível multinúcleo) e compu- tação distribuída usando troca de mensagens (nível multimáquina).