Monte Carlo en modelos de spin aplicación en GPGPU

19
Monte Carlo en modelos de spin aplicación en GPGPU Ezequiel Ferrero PEA-GPGPU - Córdoba, Mayo 2011

Transcript of Monte Carlo en modelos de spin aplicación en GPGPU

Page 1: Monte Carlo en modelos de spin aplicación en GPGPU

Monte Carlo en modelos de spinaplicación en GPGPU

Ezequiel Ferrero

PEA-GPGPU - Córdoba, Mayo 2011

Page 2: Monte Carlo en modelos de spin aplicación en GPGPU

PEA-GPGPU, Córdoba, Mayo 2011 1/18

Menú:

• Modelo de Ising

• Monte Carlo, Algoritmo de Metropolis

• Esquema de paralelización (checkerboard)

• RNGs en GPUs

• Implementaciones del checkerboard (1,2,3)

• Extensiones a 3D y a otros problemas

• Conclusiones

Page 3: Monte Carlo en modelos de spin aplicación en GPGPU

Modelo de Ising

Una red (regular) con un spin en cada sitio

Los spins interactúan entre ellos y eventualmente con campos magnéticos externos.

La variable de spin si (i=1,..,N) toma valores +1 (spin up ↑) o -1 (spin down ↓)

Denominamos configuración del sistema a un dado arreglo {si} de las variables.

donde <ij> indica “pares de primeros vecinos”

PEA-GPGPU, Córdoba, Mayo 2011

La energía total del sistema de spins es el Hamiltoniano:

Si J>0 la interacción se denomina ferromagnética(favorece configuraciones de spins alineados)

Si J<0 la interacción es antiferromagnética(favorece configuraciones de spins anti-alineados)

2/18

Page 4: Monte Carlo en modelos de spin aplicación en GPGPU

Modelo de Ising (cont.)

paramagneto(desordenado)

ferromagneto(ordenado) … …

PEA-GPGPU, Córdoba, Mayo 2011

Tc

T

“magnetización por spin”

donde con

Estados de equilibrio mínimo de

3/18

calcular esto de manera exacta es por lo general imposible

métodos aproximados o numéricos

Page 5: Monte Carlo en modelos de spin aplicación en GPGPU

Ecuación maestra

PEA-GPGPU, Córdoba, Mayo 2011

Monte Carlo

Proceso estocástico markoviano

Si pedimos que que

condición de balance global

ó (más fuerte) condición de balance detallado

Necesidad de realizar un muestreo pesado en el espacio de las configuraciones

Sea la probabilidad asociada con el estado al tiempo t.

Consideremos la probabilidad de transición del estado al estado

es decir,

4/18

debe ocurrir

Page 6: Monte Carlo en modelos de spin aplicación en GPGPU

PEA-GPGPU, Córdoba, Mayo 2011

Monte Carlo (cont.)

Metropolis Glauber

balance detallado: distribución de Boltzmann:

Algoritmo de Metropolis

for (i=0; i<N; i++){choose si � backupcalculate H_beforesi = -si (“flip”)calculate H_afterif (∆H = H_after-H_before =< 0){accept the move} else {pick a random number raccept the move if r < exp(-∆H/kBT)}

}

1) partimos de una configuración x

2) eligimos al azar una nueva configuración x’

(que difiere de x en el estado de un spin flip)

3) calculamos ∆H

4) si ∆H ≤ 0 , aceptamos la nueva configuarción

5) si ∆H > 0 la aceptamos con probabilidad exp(-∆H/kBT)

6) repitimos desde 2)

N repeticiones = 1 MCS

paso de Monte Carlo (MCS)

5/18

Page 7: Monte Carlo en modelos de spin aplicación en GPGPU

Estrategia de paralelización

PEA-GPGPU, Córdoba, Mayo 2011

(interacción a primeros vecinos)

Dos subredes de spins no interactuantes: blancas y negras

Red cuadrada de N=LxL spins, interacciones a primeros vecinos y c.c. periódicas

(Nota: Actualización “not-random”, NO cumple balance detallado pero SÍ balance global)

Esquema del “tablero de ajedrez”

Dado un spin en un casillero negro, todos sus vecinos estarán en casilleros blancos, y viceversa

En nuestro kernel “update” en CUDA reemplazaremos las N elecciones de spin al azar por algo como:

6/18

L

L

Veremos cómo aplicamos esta estrategia de paralelización GPUs, pero antes...RNGs

Page 8: Monte Carlo en modelos de spin aplicación en GPGPU

Generadores de números (pseudo)aleatorios

PEA-GPGPU, Córdoba, Mayo 2011

Estado del RNG

-Período del RNG

-Calidad del RNGOutput

Semilla

11-19 int / 624 int2 intestado: 1 int

2607 / 219937≤264 (depende de a)período: 232 (b=32)

Mersenne TwisterMultiply-With-CarryLinear Congruential Generator

MTMWCLCG

Además nos interesan:

7/18

-Velocidad del RNG(el “random number” propiamente dicho)

Page 9: Monte Carlo en modelos de spin aplicación en GPGPU

PEA-GPGPU, Córdoba, Mayo 2011

Implementación de RNGs en paralelo

8/18

Tomar distintas partes de una misma secuencia global (opción standard)

Generar secuencias independientes con cada hilo: se necesitan distintos (conjuntos de) multiplicadores

t 2t

splitting

leapfrogging

p.ej. (LCG):

Opción 1

Opción 2

~65000~1500001 o unos pocos

MTMWCLCG

número de goodmults

Page 10: Monte Carlo en modelos de spin aplicación en GPGPU

PEA-GPGPU, Córdoba, Mayo 2011 9/18

M. Weigel arXiv:1101.1427v1 (2011)

RNGs para modelos de spin en GPUs

Es muy rápido y de estado muy pequeño, pero mete correlaciones por su corto período. (e.g. en un Ising de 4096x4096, utilizamos todos los RN en menos de 256 MCS).

LCG

Opciones: -LCG-64bits: un poco más lento, pero mejora el período-Inicializar at random (disminuye el efecto de solapamiento de las secuencias)

MWC Aparece como una muy buena opción. Rápido y de gran período, estado pequeño. Limitación razonable en la cantidad de goodmults.

MT En principio, desrecomendado para GPGPU. Es un generador de muy buena calidad y período gigante, pero no es tan rápido y su estado, al parecer, no entra memoria on-chip.

Otras Opciones: Lagged Fibonacci, XorShift, KISS, etc....

Ising: 1024x1024, β=0.4

Page 11: Monte Carlo en modelos de spin aplicación en GPGPU

Implementaciones del checkerboard: Ejemplo 1

T. Preis, P. Virnau, W. Paul, J.J. SchneiderJohannes Gutenberg University of Mainz, Germany

paralelización para un sistema de 16x16 spins

Características: - primer trabajo en IsingGPGPU “JCP most read article in 2009”.- LCG-32 inicializado at random.- todos los updates se hacen en memoria global.- transfieren array de semillas a shared antes de cada kernel.- limitación de tamaño L ≤ 1024 para la GT200, (L ≤ 2048 para Fermi).

Aceleración máxima: 60x (con GTX 280)

(n=L)

PEA-GPGPU, Córdoba, Mayo 2011 10/18

Journal of Computational Physics 228, 4468 (2009)

PerformanceImplementación Ising 2D:

Page 12: Monte Carlo en modelos de spin aplicación en GPGPU

arXiv:1006.3865v1, Computer Physics Communications, in press (2010)

efectos (indeseados) de la técnica de multi-hit

arXiv:1101.1427v1 (2011)

BxB (4x4) bloques (asignado c/u a un multiprocesador)

TxT (8x8) hilos por bloque

PEA-GPGPU, Córdoba, Mayo 2011 11/18

Implementaciones del checkerboard: Ejemplo 2

M. WeigelJohannes Gutenberg University of Mainz, Germany

Implementación Ising 2D: “double checkerboard”

Características: - aprovecha la memoria compartida- LCG-32 inicializado at random, critica su conveniencia en la práctica.- vector con los pesos de Boltzmann a memoria de textura.- genera RN aún cuando no se necesitan, para evitar divergencias de hilos.- para amortizar la carga a shared de las baldosas implementa una técnicade multi-hit, en donde se repite k veces la actualización de las mismasbaldosas antes de switchear. (aumenta tiempo de autocorrelación, performance física óptima para k~10)

T = L/B

L

T

Page 13: Monte Carlo en modelos de spin aplicación en GPGPU

Tiempo de spin flip: tiempo promedio de flipeo de un spin, medido con el reloj de pared.

PEA-GPGPU, Córdoba, Mayo 2011 12/18

Implementaciones del checkerboard: Ejemplo 2 (cont.)

Performance

Tesla C1060, k=100

TILE óptimo para sistemas grandes: T=16

M. Weigel arXiv:1006.3865v1, Computer Physics Communications, in press (2010)

M. Weigel arXiv:1101.1427v1 (2011)

Aceleración máxima: 30x/105x para k=1/k=100 (en Tesla C1060)~70x/235x (en GTX 480)

(idem para GTX 480)

Para L>4096, tsf = 0.27ns/0.076ns para k=1/k=100 (en Tesla C1060)tsf = 0.034ns para k=100 en Fermi (GTX 480, 2.3 veces más rápida)

(desaceleración de un factor 1.73 usando LCG-64 y de 2.63 usando Fibonacci)

(OJO: tCPU(Weigel) = tCPU(Preis) / 10 )

Page 14: Monte Carlo en modelos de spin aplicación en GPGPU

EEF, J. De Francesco, N. Wolovick, S. CannasGPGPU Computing Group, FaMAF, UNC

Modelo de Potts de q estados(generalización del Ising)

PEA-GPGPU, Córdoba, Mayo 2011 13/18

arXiv:1101.0876v1 (2011) , submitted Computer Physics Communications

Implementaciones del checkerboard: Ejemplo 3

Implementación 2D: FRAMES

Características: - implementa MWC con 512x512/2 generadores independientes (cota impuesta por la cantidad de goodmults).- divide al sistema en frames de 512x512.- comprime stencil bidimensional (blacks,whites) logrando localidad y ahorrando transferencia de memoria.- copia estado de los RNGs a registros.- no utiliza tablita de pesos de Boltzmann, recalcula.- L máximo sólamente limitado por la memoria (global) disponible.- implementa sumas mariposa para cálculos de magnetización y energía.

Page 15: Monte Carlo en modelos de spin aplicación en GPGPU

PEA-GPGPU, Córdoba, Mayo 2011 14/18

Implementaciones del checkerboard: Ejemplo 3

Tiempos de spin flip:

Performance

Aceleración máxima:

GTX 280: entre 0.48ns y 0.54ns (entre 47x y 42x)GTX 470: entre 0.21ns y 0.30ns (entre 108x y 76x)GTX 480: entre 0.18ns y 0.24ns (entre 126x y 95x)

GTX 480 (con CC2.0): 0.147ns (155x) para L=32768

-Un framing de 256x256 penaliza un 25% y framing de 1024x1024 acelera un 2%.-Eliminar los branches divergentes no mejora la performance (el shceduler ya estáescondiendo esas cosas).

Notas:

“q-state Potts model metastability study using optimized GPU-based Monte Carlo algorithms”. arXiv:1101.0876v1. Quizás sea la primera aplicación práctica de GPGPU en modelos de spin clásicos.

¿Para qué queríamos todo esto?

Page 16: Monte Carlo en modelos de spin aplicación en GPGPU

PEA-GPGPU, Córdoba, Mayo 2011

Extensiones a 3D

Preis et al.

Arreglo de spins en una red cúbica regular

15/18

N=LxLxL spins

6 “primeros vecinos”

L=<256 por límites de memoria

Aceleración: 35x (GTX 280)

JCP 228, 4468 (2009)

Weigel

-Mismo esquema: double checkerboard-TILE limitado a T ≤ 8 por max_threads

arXiv:1101.1427v1 (2011)

Performance

Tesla C1060: 0.13ns (k=100) � 110xGTX 480: 0.067ns (k=100) � 210x

CPU: 0.14ns (más que 6/4 del caso 2D)

Page 17: Monte Carlo en modelos de spin aplicación en GPGPU

PEA-GPGPU, Córdoba, Mayo 2011

- Interacciones a 2dos o 3ros vecinos

Extensiones a otros sistemas

16/18

La estrategia del FRAMES seguiría siendo útil

- Interacciones de largo alcance

Lo más que se puede hacer es paralelizar las sumas en el cálculo de campos locales

- Para interacciones Jij , tipo spin glass, la extensión es directa, pero es menor el speed-up

- Para spins continuos, tipo Heisenberg, el speed-up es mayor

Page 18: Monte Carlo en modelos de spin aplicación en GPGPU

PEA-GPGPU, Córdoba, Mayo 2011

CONCLUSIONES

• Comenzar a usar GPUs para simulaciones de Monte Carlo intensivas en sistemas de spins con interacciones de corto alcance no es una opción, es un must.

•Las características del RNG a utilizar y su conveniencia, deben ser chequeadas en cada caso. Usar MWC puede ser un buen comienzo en general.

•Si usan LCG: NO splitting, NO leapfrogging, random seeding.

•RNGs de gran período en general vienen acompañados de una relativa gran demanda de memoria. Almacenar el estado de cada thread en global es ineficiente.

•Existen varios esquemas de paralelización posibles: el double chequerboard con multi-hit que aprovecha shared aporta los mejores tiempos de spin flip; el esquema de frames según la cantidad de RNGs independientes parece ser más fácil de extender a otros problemas.

•Limitados a spins Ising, técnicas de multi-spin coding (representar varios spins en una misma palabra) proveen una aceleración adicional.

17/18

Page 19: Monte Carlo en modelos de spin aplicación en GPGPU

PEA-GPGPU, Córdoba, Mayo 2011 18/18

Referencias:

• T. Preis, P. Virnau, W. Paul, J.J. Schneider, Journal of Computational Physics 228, 4468 (2009)

• M. Weigel, arXiv:1006.3865v1, to appear in CPC (2010)

• B. Block, P. Virnau, T. Preis, Computer Physics Communications 181, 1549 (2010)

• EEF, J. De Francesco, N. Wolovick, S. Cannas, arXiv:1101.0876v1 (2011)

• M. Weigel arXiv:1101.1427v1 (2011)

• M. Weigel, T. Yavors’kii Physics Procedia 00, 1 (2011)

•S. Hissoiny, P. Després, B. Ozell, arXiv:1101.1846v1 (2011)

• T. Preis, Eur. Phys. J. Special Topics 194, March II 2011 (2011)