Exploiting cloud heterogeneity for cost-efficient execution of HPC applications - Roloff, Eduardo (2019)
O uso de Computação em Nuvem como um ambiente para a execução de aplicações de alto desempenho já é uma realidade atualmente, onde diversos cientistas já utilizam a nuvem como ambiente primário de execução ou, ao menos, como um ambiente que pode estender um ambiente de execução tradicional, tal como um aglomerado de computadores. No entanto, como provedores de nuvem possuem uma oferta diversa de instâncias, com várias configurações heterogêneas tanto em termos de poder de processamento como de custo. Há variação de instâncias com cores de processamento compartilhado até grandes instâncias com foco em execução de aplicações de alto desempenho. Em termos de preço, há variação de instâncias que apresentam valores menores do que um centavo de dólar por hora até instâncias que custam dezenas de dólares pela utilização de uma hora. Por outro lado, as aplicações de alto desempenho são divididas em diversas tarefas que são executadas paralelamente para resolver um problema, tais tarefas acabam apresentando diferentes demandas computacionais, fazendo com que a aplicação apresente um certo nível de desbalanceamento. Juntando-se a grande variedade da oferta de instâncias com aplicações que possuem diferentes demandas, é um problema para o usuário fazer a escolha da instância, ou instâncias, certas para a execução de sua aplicação. Essa tese trata desse problema, realizando um estudo sobre a heterogeneidade da nuvem, buscando identificar oportunidades que podem ser exploradas tanto em termos de redução de custo como buscando um desempenho de execução aceitável, sem apresentar grandes perdas no tempo de execução. Após esse estudo, é proposto um mecanismo chamado CloudHet que utiliza como entradas o perfil das instâncias da nuvem e o perfil de carga das tarefas de uma dada aplicação; utilizando esses dados de entrada o mecanismo faz uma otimização para propor ao usuário um cenário de execução que se adeque ao perfil da sua aplicação, com foco em eficiência de custo. Os resultados mostram que, de acordo com o comportamento da aplicação, é possível obter uma redução significativa de custos usando configurações heterogêneas em comparação com homogêneas. A redução de custos foi de até 63%, com uma perda de desempenho tolerável de até 7%.