You are on page 1of 6

Avaliando a Performance das Pol ticas de Escalonamento de OpenMP no M etodo de Lattice Boltzmann

Eva r Borges Severo1 , Matheus da Silva Serpa1 , Claudio Schepke1 o Curso de Ci encia da Computac a Universidade Federal do Pampa - Campus Alegrete Av. Tiaraj u, 810 - Bairro: Ibirapuit a - Alegrete - RS - CEP: 97546-550
{evairsevero, matheusserpa}@gmail.com, claudioschepke@unipampa.edu.br
1

Abstract. In a wide variety of elds in Scientic Computing there is algorithms which demands a hight computational costs. An alternative to accelerate the performance of these algorithms consists in a concurrent execution of the code. An important aspect to consider is the way how the tasks are distributed. In the case of OpenMP parallel programming interface, is possible to use different methods of distributing tasks through the schedule clause. In this context, the aim of this work is to evaluate the behavior of scheduling policies of OpenMP. For this purpose, was used the Lattice Boltzmann as a case study. Implementations showed that the use of the schedule clause (guided) get a better performance for the method. Resumo. Em diversas a a ca existem algoritmos que reas da Computac o Cient demandam um elevado custo computacional. Uma alternativa para acelerar o desempenho desses algoritmos consiste na execuc a odigo. o concorrente do c Um importante aspecto a ser considerado e ao dis a forma como as tarefas ser tribu das. No caso da interface de programac a vel o paralela OpenMP, e poss utilizar diferentes m etodos de distribuic a es da cl ausula sche o de tarefas atrav dule. Nesse contexto, o objetivo deste trabalho e avaliar o comportamento das pol ticas de escalonamento de OpenMP. Para tanto, utilizou-se do M etodo de Lattice Boltzmann como estudo de caso. As implementac o es mostraram que o uso da cl ausula schedule (guided) obt em melhor desempenho para o m etodo.

o 1. Introduc a
um ramo da mec A Din amica dos Fluidos Computacional (DFC) e anica dos uidos com o Cient es de Euler e grande relev ancia no contexto da Computac a ca, tendo as equac o de Navier-Stokes como bases fundamentais para praticamente todos os seus problemas es matem [Chung 2010], [Landau and Lifshitz 1987]. Por meio dessas descric o aticas, que relacionam as diferentes propriedades f sicas de l quidos e gases, a DFC possibilita a o num simulac a erica de uma ampla diversidade de estruturas e fen omenos f sicos cotidia o de furac o de comportamento nos, tais como: simulac a oes, previs ao de tempo, simulac a de poluentes em correntes h dricas, aerodin amica, dentre outros [Schepke, C. 2007], [Batchelor 2000]. o dos sistemas computacionais contribuiu para o grande interesse e A evoluc a rea. Em func o disso, desenvolveram-se diavanc o das pesquisas relacionadas a essa a a es num es que versos m etodos e algoritmos baseados em simulac o ericas, onde as equac o

es lineares, representam o dom nio f sico s ao discretizados, gerando um sistema de equac o posteriormente resolvido por algum m etodo num erico [Sims et al. 2000]. T ecnicas alter o m nativas buscam simplicar essas etapas. Uma delas e etodo de Lattice Gas Automata o acontece em tempo, espac (LGA). Neste m etodo, a simulac a o e velocidades discretas, o, por sendo de f acil implementac a em limitado, devido a maneira que o m etodo determina as propriedades f sicas de um uido [Schepke, C. 2007]. Em consequ encia dessas es, o m limitac o etodo LGA sofreu certas mudanc as, evoluindo para o M etodo de Lattice Boltzmann (MLB). es do MLB s Do ponto de vista computacional, as operac o ao essencialmente locais o do algoritmo torna-se uma poss e, devido a isso, a paralelizac a vel alternativa para prover um melhor aproveitamento do hardware e, consequentemente, um consider avel ganho no desempenho do m etodo. o paralela, OpenMP surge como uma eciDentre as interfaces de programac a ente alternativa de paralelismo em mem oria compartilhada. OpenMP faz uso da cl ausula schedule para distribuir as tarefas entre as threads. Nesse contexto, este trabalho busca avaliar o comportamento de diferentes pol ticas de escalonamento denidas pela cl ausula schedule. Para essa abordagem, utilizou-se a t ecnica de MLB como estudo de caso em o de escoamento de uidos. simulac a es. A Sec o 2 descreve o MLB, sua condic o de Este artigo est a dividido em sec o a a o contorno, o modelo do reticulado e trabalhos relacionados. A interface de programac a o paralela e apresentada na Sec ao 3. Na Sec ao 4 s ao descritos detalhes da implementac a o 5 apresenta os resultados experimentais obtidos. A Sec o 6 discute as paralela. A Sec a a es deste trabalho e temas de trabalhos futuros. contribuic o

2. M etodo Lattice Boltzmann


considerado uma representac o discreta da Equac o de O m etodo de Lattice Boltzmann e a a Boltzmann, sendo esta, a base da teoria cin etica dos gases. Esse m etodo faz uso de valores es pelo reticulado, tornando-o diferente do LGA, que reais para a difus ao das informac o por sua vez utiliza valores l ogicos e considera o movimento individual das part culas [Chen and Doolen 1998]. repreNesse m etodo, o comportamento das part culas que constituem um uido e sentado por meio de uma estrutura conhecida por reticulado. 2.1. Modelo de Reticulado Um reticulado, tamb em chamado de lattice ou grade, consiste em um modelo discreto representado por uma malha, que possuiu diversas c elulas ou pontos. Esses pontos repre o desses pontos ocorre simultasentam as part culas de um uido, sendo que a atualizac a neamente em intervalos de tempo discretos. Na literatura, pode-se encontrar diversos modelos de reticulado [Qian et al. 1992]. Neste trabalho foi utilizado um modelo conhecido como D2Q9, sendo dada essa nomenclatura devido ao modelo ser bidimensional e possuir nove possibilidades de deslocamento. es carNesse modelo, cada part cula pode estar em movimento para quatro direc o es diagonais ou permanecer est deais, quatro direc o atica em um ponto. Em consequ encia

es em que mais de uma part desse comportamento, existem situac o cula busca ocupar a o no reticulado. Essas situac es s mesma posic a o ao chamadas de colis oes e tem seu efeito o. descrito atrav es de um operador de relaxac a o e relaxac o, e preciso tratar as condic es de contorno. Nesse Al em da propagac a a o o de contorno utilizada e bounceback. Em caso de colis trabalho, a t ecnica de condic a ao, es dos vetores de velocidade s substituido por ei . as direc o ao invertidas, ou seja, ei e o garante que o uido n Essa condic a ao ultrapassar a as bordas. O MLB torna poss vel modelar computacionalmente uma vasta variedade de problemas, permitindo simular uxos com uma ou v arias fases em geometrias complexas e es de contorno [Schepke, C. 2007]. diferentes condic o 2.2. Trabalhos Relacionados Diversos trabalhos utilizam o MLB para simular fen omenos f sicos. um software comercial capaz de simular diPowerFLOW (Exa Corporation) e versos problemas de uxo de uidos e aerodin amica [Duncan et al. 2010]. Utilizando o MLB, foi poss vel projetar um tunel de vento digital, a m de projetar a aerodin amica do tren o para quatro pessoas da equipe campe a mundial de 2009 (EUA). Em [Ayguad e et al. 2003] s ao feitas an alises de comportamento quanto a o adequada de iterac es de um loop para threads. Este trabalho prop atribuic a o oe uma o de trabalho. nova forma de atribuic a

o Paralela OpenMP 3. Interface de Programac a


fazer uso de mem Uma das formas b asicas de explorar o paralelismo e oria compartilhada. Nesse tipo de arquitetura todos processadores podem acessar a mem oria diretamente e uma API (Application Procomunicarem-se. Seguindo essas caracter sticas, o OpenMP e o paralela para arquitetugramming Interface) que consiste em um padr ao de programac a ras de mem oria compartilhada, sendo desenvolvido para linguagens C/C++ e Fortran. OpenMP utiliza a diretiva #pragma, denida no padr ao da linguagem C/C++. O construtor paralelo #pragma omp parallel indica a regi ao do c odigo que ser a executada em paralelo. #pragma omp for faz com que um lac o for, dentro da regi ao paralela, seja o, dividido entre threads. OpenMP tamb em conta com diversas diretivas de sincronizac a es de interface e vari func o aveis de ambiente. es de um lac o ser A cl ausula schedule descreve como as iterac o o de repetic a ao di o das iterac es s vididas entre o conjunto de threads. A distribuic a o ao atribu das de acordo o de cada das principais com o m etodo denido nessa cl ausula. Segue abaixo a descric a pol ticas de escalonamento. o e feita de forma est es de static - A distribuic a atica, ou seja, conjunto de iterac o tamanhos iguais s ao distribu dos entre as threads. O tamanho de cada bloco e um par denido pelo chunk size, no qual e ametro passado para o m etodo. es s dynamic - As iterac o ao distribu das entre as threads a medida que as mesmas es. Cada thread executa um bloco de iterac es e em seguida solicitam mais iterac o o necessariamente sequencial. solicita outro bloco, dessa forma o acesso n ao e

guided - Semelhante ao dynamic, exceto pelo fato de que o tamanho do bloco dada a uma thread. O tamanho do bloco diminui cada vez que uma demanda e dado pela seguinte equac o: inicial e a bloco inicial = numero de iteracoes / numero de threads Os blocos seguintes s ao formados da seguinte forma: blocos seguintes = numero de iteracoes remanescentes / numero de threads

o do Algoritmo 4. Implementac a
O desenvolvimento de novas vers oes do MLB foi motivado pelo estudo das caracter sticas o paralela e avaliac o de desempenho das mesmas. A das interfaces de programac a a o do MLB foi feita em linguagem C. Duas estruturas de dados foram criimplementac a adas. A estrutura s properties cont em as propriedades f sicas, tais como: densidade, o, escala do tempo de relaxac o e o di acelerac a a ametro real do canal usado para o c alculo es a respeito do reticuo do n umero de Reynolds. A estrutura s lattice armazena informac lado. Nela est ao denidas a quantidade de pontos para as dimens oes x e y , o n umero de es discretas poss o direc o veis de deslocamento dos pontos, um vetor descrevendo a posic a es das das barreiras e bordas do uxo e um vetor onde s ao armazenadas as informac o propriedades f sicas atribu das a cada um dos pontos do reticulado. O lac o principal do composto por operac es de redistribuic o, propagac o, condic o de contorno algoritmo e o a a a o. e relaxac a o de trabalho e feita atrav A divis ao e distribuic a es da cl ausula schedule(tipo, a barreiras impl citas no m das construc oes #pragma omp for. Essas chunk size). H o das threads antes do in o. barreiras garantem a sincronizac a cio da pr oxima operac a

o de Desempenho 5. Avaliac a
Neste trabalho foi simulado o escoamento de uxos de um uido. O objetivo dessa o foi vericar o comportamento dos uxos em ambientes com barreiras e o gasimulac a es paralelas utilizando diferentes formas de distribuic o nho de desempenho em execuc o a de trabalho. No caso de teste foram colocadas barreiras nas bordas horizontais, delimitando o es foi xado para a simulac o, garanescoamento do uido. Um valor de 15000 iterac o a o cont o dos testes foi utilizado um tindo ao nal a propagac a nua do uxo. Na realizac a reticulado com tamanho de 512 128 pontos. 5.1. An alise dos Resultados es utiliPara melhor entender o impacto no desempenho paralelo foram feitas execuc o zando um workstation Dell Precision T7600, da Universidade Federal do Pampa (UNIPAMPA). o cont A arquitetura do ambiente de execuc a em dois processadores Intel Xeon 2.00GHz, cada um com 16 cores, 8 f sicos e 8 l ogicos (tecnologia Hyper-Threading). O processador Intel Xeon E5-2650 possu tr es n veis de cache. A cache L1 cont em 512KB, a cache L2 2MB e a cache L3 20MB. A workstation conta com 128 GB de mem oria RAM e os testes foram executados no sistema operacional Ubuntu Server (Kernel 3.8.0-26)..

350 300 250 Tempo (Segundos) 200 150 100 50 0 1 2 4 8 16 32 static, lx / (8 * threads) static, lx / (2 * threads) static, 1 Ideal Tempo (Segundos)

550 500 400 300 200 100 0 1 2 4 8 16 32 dynamic, lx / (8 * threads) dynamic, lx / (2 * threads) dynamic, 1 Ideal

Threads

Threads

(a) Schedule Static


350 300 250 Tempo (Segundos) 200 150 100 guided, lx / (8 * threads) guided, lx / (2 * threads) guided, 1 Ideal

(b) Schedule Dynamic


32 16 8 4 2 guided, lx / (8 * threads) dynamic, lx / (2 * threads) static, lx / (2 * threads) Ideal

50 0 1 2 4 8 16 32

Speedup

1 1 2 4 8 16 32

Threads

Threads

(c) Schedule Guided

o das Pol (d) Comparac a ticas de Escalonamento

es de desempenho utilizando 1, 2, 4, 8, 16 e 32 Inicialmente foram feitas avaliac o es da pol threads para as nove variac o tica de escalonamento. Os resultados computacio es, sendo que as cinco piores e as cinco nais foram obtidos atrav es da m edia de 20 execuc o melhores foram exclu das. Os testes diferenciam-se pela pol tica de escalonamento e o valor do chunk size, es desse valor. A primeira utiliza chunk size 1. No segundo sendo testadas tr es variac o teste foi utilizado um chunk size de tamanho lx/(2 threads), onde lx representa o n umero de pontos em x. No terceiro teste foi utilizando um chunk size de tamanho lx/(8 threads). o para testes utilizando a pol A gura 5.1(a) apresenta os tempos de execuc a tica o de de escalonamento static. Foi poss vel vericar que o melhor caso deu-se na utilizac a um chunk size com tamanho lx/(2 threads). O segundo teste apresentado pela gura 5.1(b) utiliza uma pol tica dynamic e o melhor caso tamb em se da a um chunk size com o de chunk size n tamanho lx/(2 threads). O terceiro teste mostra que a variac a ao o da pol apresenta elevado impacto na utilizac a tica de escalonamento guided. Utilizando guided, o melhor caso foi usando um chunk size de lx/(8 threads), entretanto o ganho t n ao e ao superior ao outros casos com valores de chunk size diferentes.

Na gura 5.1(d) s ao apresentados os gr acos de Speedup. Foram selecionados os melhores resultados de cada pol tica de escalonamento. Foi poss vel vericar a melhor escalabilidade utilizando a pol tica guided.

6. Conclus ao e Trabalhos Futuros


Este artigo apresentou uma an alise do desempenho de diferentes pol ticas de escalonamento do OpenMP. o de trabalho e um fator deCom base nos estudos, percebe-se que a distribuic a o com a pol terminante no desempenho paralelo. A distribuic a tica guided apresentou os melhores resultados. O tamanho do chunk size se mostrou como um importante fator na diferenc a dos resultados. O melhor caso utilizando as pol ticas static e dynamic ocorre o utilizando guided o melhor caso a com chunk size de lx/(2 threads). Para a variac utilizou chunk size de lx/(8 threads). Como tema de trabalhos futuros pretende-se desenvolver estudos utilizando outros o utilizando outras problemas como caso de teste. Outro trabalho consiste na comparac a o paralela. interfaces de programac a

Refer encias
Ayguad e, E., Blainey, B., Duran, A., Labarta, J., Mart nez, F., Martorell, X., and Silvera, R. (2003). Is the schedule clause really necessary in OpenMP? In OpenMP Shared Memory Parallel Programming, pages 147159. Springer. Batchelor, G. K. (2000). An Introduction to Fluid Dynamics. Cambridge University Press. Chen, S. and Doolen, G. D. (1998). Lattice boltzmann method for uid ows. Annual Review of Fluid Mechanics. Chung, T. J. (2010). Computational Fluid Dynamics. Cambridge university press. Duncan, B. D., Fischer, A., and Kandasamy, S. (2010). Validation of lattice-boltzmann aerodynamics simulation for vehicle lift prediction. In ASME 2010 3rd Joint USEuropean Fluids Engineering Summer Meeting. ASME. Landau, L. D. and Lifshitz, E. M. (1987). Fluid mechanics. Course of Theoretical Physics, 6:111. Qian, Y., dHumieres, D., and Lallemand, P. (1992). Lattice BGK Models for NavierStokes Equation. EPL (Europhysics Letters). Schepke, C. (2007). Distribuic a o etodo o de Dados para Implementac es Paralelas do M de Lattice Boltzmann. PhD thesis, Instituto de Inform atica, UFRGS, Porto Alegre. Sims, J. S., Hagedorn, J. G., Ketcham, P. M., and Sattereld, S. G. (2000). Accelerating Scientic Discovery Through Computation and Visualization. Journal of Research of the National Institute of Standards and Technology.

You might also like