2. BANKALARCA ULUSLARARASI ÖDEME ŞEKİLLERİ
3.17. Türk Eximbank Kredileri
3.17.1. Kısa Vadeli İhracat Kredileri
Os três pseudocódigos apresentados demonstram as meta-heurísticas que utilizamos para reduzir o desbalanceamento das partições enviadas para a fase de redução que é causado de maneira não intencional pela fase de particionamento ao não distinguir as chaves, ou não se preocupar com o conteúdo das partições.
A integração ocorre de forma que o usuário pode escolher a meta-heuristica a ser usada pelo MALiBU, que substitui completamente o particionamento executado pelo MapReduce, o threshold que marca a quantidade de dados a serem acumulados, a quantidade de passos que as meta-heurísticas executam, e o número de particionamentos por passo analisados pela Local Beam Searche Stochastic Beam Search. Com a substituição da fase de particionamento pelo MALiBU, aumenta a complexidade para o usuário, mas dá a ele um melhor controle sobre os dados a serem analisados pela sua aplicação.
5 AVALIAÇÃO EXPERIMENTAL
Nosso principal objetivo com os experimentos realizados é apresentar os resultados alcançados com as meta-heurísticas apresentadas no Capítulo 4, mostrando como é desenvolvida a relação da distribuição de chaves efetuada por elas com a variação do número de chaves acumuladas (threshold) X, número de passos Y , e número de particionamentos por passo β . Demonstrando como as meta-heurísticas podem resolver o problema do partitioning skew no MapReducede maneira mais eficiente que a distribuição por hash presente na implementação do Hadoop YARN 2.7.2, e que a abordagem gulosa apresentada em (LE JIANGCHUAN LIU, 2014). Devido ao grande número de experimentos realizados, dividimos o capítulo de avaliação experimental em duas seções para facilitar a exposição dos cenários.
Na primeira seção, apresentada na Tabela 2, comparamos a meta-heurística Simulated Annealingcom a função de particionamento por hash e com a abordagem gulosa através de três cenários onde cada cenário utiliza um número de passos Y fixo, onde Y ∈ {10000,30000,50000} e apresenta o resultado daquele número de passos com cada variação de threshold X%, onde X ∈ {5, 10, 15, 20, 30}. Finalizamos a primeira seção com um quarto cenário onde comparamos os resultados com threshold X = 30% com os três valores de temperatura.
Tabela 2 – Organização dos cenários na Seção 5.1 Y = 10000 Y = 30000 Y = 50000 X = 30%
Cenário 1 Cenário 2 Cenário 3 Cenário 4
Na segunda seção, apresentada nas tabelas 3 e 4, comparamos as meta-heurísticas Local Beam Search e Stochastic Beam Search com os resultados da Simulated Annealing apresentados na seção anterior, a função de particionamento por hash, e com a abordagem gulosa. Devido ao grande volume de experimentos, apresentamos um total de 45 cenários divididos em 9 grupos de cinco onde cada cenário apresenta uma variação de threshold, e cada grupo possui um valor fixo de passos Y , e um valor fixo de particionamento por passos β onde β ∈ {1,3,5} que representa quantos particionamentos serão produzidos e descartados a cada passo dado pelas meta-heurísticas Local Beam Search e Stochastic Beam Search. Ao final, apresentamos os dez melhores resultados dentre todos os testes feitos com 100% do conjunto de dados em comparação com o que se esperaria de um resultado ótimo e do resultado guloso.
Tabela 3 – Organização dos grupos na Seção 5.2 β\Y Y = 10000 Y = 30000 Y = 50000 β = 1 Grupo 1 Grupo 2 Grupo 3 β = 3 Grupo 4 Grupo 5 Grupo 6 β = 5 Grupo 7 Grupo 8 Grupo 9
Tabela 4 – Organização dos cenários nos grupos da Seção 5.2 X = 05% X = 10% X = 15% X = 20% X = 30% Cenário 1 Cenário 2 Cenário 3 Cenário 4 Cenário 5
Realizamos um total de 525 experimentos utilizando uma versão do hadoop YARN 2.7.2 que modificamos para utilizar o nosso sistema de particionamento no qual é possível escolher entre a abordagem por hash, gulosa, ou uma das três meta-heurísticas. Utilizamos 10 máquinas virtuais com 16 GB de RAM, 16 vCPUs e 160 GB de armazenamento. Todas as máquinas virtuais estão rodando no ambiente de nuvem OpenStack hospedado no LSBD/UFC. Para a realização dos experimentos utilizamos como base um algoritmo de contagem de palavras sobre um conjunto de dados reais compostos dos dados das avaliações dos livros da loja da Amazon (MCAULEY et al., 2015b; MCAULEY et al., 2015a) de aproximadamente 400MB divididos em arquivos de tamanho Tarq ∈ {80MB, 160MB, 240MB, 320MB, 400MB}.
Para executar as meta-heurísticas, acumulamos as chaves geradas como dados in- termediários até que um limite dado por um threshold de X%, com X ∈ {5,10,15,20,30}, seja alcançado. Após isso, executamos a meta-heurística selecionada onde ela fará um número de interações Y onde Y ∈ {10000,30000,50000}. Ao finalizar a primeira execução da meta- heurística, todas as chaves acumuladas são particionadas de acordo com o resultado dado pela meta-heurística selecionada e acumulamos novas chaves para repetir o processo quando o mesmo threshold for alcançado novamente. Para a medição de um bom particionamento é necessário que a maior partição convirja para um tamanho T = Nkeys
Nparts onde Nkeysé número total de chaves e
Npartsé o número de partições.
5.1 SIMULATED ANNEALING
Nosso principal objetivo nessa seção é analisar a performance da meta-heurística Simulated Annealingde acordo com o número de passos Y e o tamanho do acumulo de chaves limitado pelo threshold X, onde valores maiores de X e Y implicam em um maior custo compu-
tacional. Como métrica para medir o desempenho do particionamento será utilizada o tamanho da maior partição, isto é, o número de chaves alocadas a ela.
Figura 14 – Comparação da execução do algoritmo hash padrão do hadoop e do algoritmo guloso com a simulated annealing com diversos thresholds usando 10000 passos
como temperatura. No eixo X é representado o tamanho do conjunto de dados processado indo de 0% a 100%. No eixo Y é representado o tamanho da maior
partição em quantidade de chaves
No primeiro cenário representado na Figura 14 variamos o threshold utilizado para acumular chaves e fixamos a temperatura no valor Y = 10000 como mostrado na Tabela 2. Mesmo o resultado cuja maior partição deu o maior resultado com 10000 passos possui um balanceamento mais satisfatório do que a função de particionamento por hash. Além disso, é possível traçar uma relação inicial entre temperatura e threshold uma vez que quanto maior o threshold, mais complicado se torna o balanceamento. Isso se deve ao fato de quanto mais dados acumulados precisarem ser particionados mais passos serão necessários para equiparar as partições.
Figura 15 – Comparação da execução do algoritmo hash padrão do hadoop e do algoritmo guloso com a simulated annealing com diversos thresholds usando 30000 passos
como temperatura. No eixo X é representado o tamanho do conjunto de dados processado indo de 0% a 100%. No eixo Y é representado o tamanho da maior
partição em quantidade absoluta de chaves
No cenário seguinte, representado na Figura 15, repetimos os testes de variação de threshold aumentando a quantidade de passos para Y = 30000. O número de passos já é o suficiente para convergir todas as partições para um valor próximo ao ideal. Essa mudança do tamanho das partições em comparação com o que foi observado no cenário anterior confirma que o aumento de temperatura é essencial para alcançar um bom resultado quando o acumulo de chaves é muito grande.
Figura 16 – Comparação da execução do algoritmo hash padrão do hadoop e do algoritmo guloso com a simulated annealing com diversos thresholds usando 50000 passos
como temperatura. No eixo X é representado o tamanho do conjunto de dados processado indo de 0% a 100%. No eixo Y é representado o tamanho da maior
No último cenário da Simulated Annealing, representado na Figura 16, aumentamos a quantidade de passos para 50000; mesmo com o aumento do número de passos, os resultados não apresentam uma diferença significativa do resultado anterior. Isso caracteriza que, não apenas deve existir um valor máximo para o número de passos, como também que um número muito grande de passos não é garantia de que a conversão das partições alcançará um resultado melhor. Isso se deve ao fato de estarmos trabalhando com algoritmos não determinísticos.
Para melhor ilustrar a questão da temperatura, trazemos a Figura 17, onde compa- ramos os três valores de Y . Com uma escala levemente reduzida em comparação às figuras anteriores, é possível observar melhor a conclusão obtida pelos cenários de temperatura fixa onde a diferença da maior partição com o número de passos Y = 10000 e Y = 30000 é muito maior do que entre os valores de Y = 30000 e Y = 50000 mostrando que um número exageradamente grande ou pequeno de passos pode não ser necessário para o bom desempenho da meta-heurística e que é necessário buscar um equilíbrio para esse fator.
Figura 17 – Comparação dos resultados dos três números de passos com threshold = 30%