Algoritmos paralelos básicos Algoritmos paralelos Glen Rodríguez.

55
Algoritmos paralelos básicos Algoritmos paralelos Glen Rodríguez

Transcript of Algoritmos paralelos básicos Algoritmos paralelos Glen Rodríguez.

Page 1: Algoritmos paralelos básicos Algoritmos paralelos Glen Rodríguez.

Algoritmos paralelos básicos

Algoritmos paralelos

Glen Rodríguez

Page 2: Algoritmos paralelos básicos Algoritmos paralelos Glen Rodríguez.

Integración Se desea calcular la integral de la función f(x) de

x=a hasta x=b

Implícitamente se asume que f(x) es relativamente suave, se determina un conjunto de puntos de “interpolación” o de malla xi en la región a ≤ x ≤ b y se calcula la integral en término de los valores de f(x) y los puntos de la malla.

∫I = f(x) dx

a

b

Page 3: Algoritmos paralelos básicos Algoritmos paralelos Glen Rodríguez.

Regla de Simpson

Se asume que f(x) es una función cuadrática

I = (b-a)*(f(a)+ 4f(xc)+f(b))/6

xX=a X=b

f(a) f(b)

xc =m = (a+ b)/2

f(Xc)

Page 4: Algoritmos paralelos básicos Algoritmos paralelos Glen Rodríguez.

Como sale la función cuadrática?

Por interpolación de Lagrange, la curva se aproxima a una parábola P:

Prueba: P(x) claramente es de 2do grado. Debo demostrar que pasa por los 3 puntos (a, f(a)); (b, f(b)); (m, f(m))

Page 5: Algoritmos paralelos básicos Algoritmos paralelos Glen Rodríguez.

Integrando la aproximación cuadrática

Si integro P(x) tengo:

El error en esta aproximación es proporcional a:

Page 6: Algoritmos paralelos básicos Algoritmos paralelos Glen Rodríguez.

Error en Simpson

Si se parte la integración en n intervalos, el error es:

Donde h=(b-a)/n, epsilon es algún número entre a y b con el máximo modulo de la 4ta derivada de f.

Page 7: Algoritmos paralelos básicos Algoritmos paralelos Glen Rodríguez.

Trapezoidal Iterativo y Simpson iterativo

Trapezoidal: Si tenemos N puntos N xi con

I= (b-a) (f(x0)+2f(x1)+2f(x2)+ ……+2f(x(N-2))+f(x(N-1))/(2(N-1))

O con Simpson:

I= (b-a) (f(x0)+4f(x1)+2f(x2)+ ……+4f(x(N-2))+f(x(N-1))/(3(N-1))

Se suman los f(xi) con diferentes pesos Note que ambos aproximan su cálculo en una región

tamaño (b-a)/(N-1) (el doble de eso para Simpson) que tiende a cero si N es grande, así que la aprox. Es mejor si N se agranda.

Page 8: Algoritmos paralelos básicos Algoritmos paralelos Glen Rodríguez.

Las funciones de peso

Se suman varios wi f(xi) y las diferentes reglas sólo con diferentes wi

Trapezoidal: para índices = 0, 1, 2, 3, ..., N-1Se usa el patrón

wi 1, 2, 2, … 2, 2, 1 Para los mismos índices, Simpson con N impar

tiene el patrónwi 1, 2, 4, 2, 4, … 2, 4, 2, 4, 1

Page 9: Algoritmos paralelos básicos Algoritmos paralelos Glen Rodríguez.

Computación paralela

Diferentes procesadores calculan independientemente diferentes puntos en la integral y luego se suman los resultados de cada procesador

Lo más natural es el escenario de la figura de arriba, con cada procesador calculando una integral sobre una subregión

x0 al x8 en proc. 0 … x24 to x32 en proc. 3 etc. La integral total es la suma de las sub-integrales calculadas en cada procesador

Pero podría asignarse PUNTOS y no REGIONES a los procesadores x0 x4 x8 .. x32 al proc. 0 x3 x7 x11 .. x31 al proc. 3

x0 x4 x8 x12 x16 x20 x24 x28 x32

10 2 3

Page 10: Algoritmos paralelos básicos Algoritmos paralelos Glen Rodríguez.

Método Monte Carlo El Monte Carlo más sencillo, escoge puntos al azar La Integral es la suma de los valores de la función f(xRandom-i) en los

valores escogidos al azar xRandom-i multiplicados por el intervalo de integración (b-a) y dividido por el número de puntos generados.

Esta da un método robusto (y sin preferencias) que es fácil de usar en integrales de n-dimensiones o integrales de funciones problemáticas

Se puede adaptar en límites complicados Se integra sobre regiones más grandes de lo necesario Se define f(x) =0 fuera del intervalo [a b]

ba

Page 11: Algoritmos paralelos básicos Algoritmos paralelos Glen Rodríguez.

Hallar pi por integración con Monte Carlo

(x,y) es un punto aleatorio: x,y variables aleatorias U.D.Otra forma de Monte Carlo: g es una función de densidad.Ambas son equivalentes

Page 12: Algoritmos paralelos básicos Algoritmos paralelos Glen Rodríguez.

Errores

Para una integral con N puntos en 1-D: Monte Carlo tiene un error del orden de 1/N0.5

Trapezoidal iterativo : 1/N2

Simpson iterativo: 1/N4

Pero en d dimensiones, todos menos el Monte Carlo deben usar una malla de N1/d puntos por lado; no funciona bien para N>3 Monte Carlo aún tiene error 1/N0.5

Error de Simpson es 1/N4/d

Cuando usar Montecarlo? Cuando error de Montecarlo es menor que error de Simpson para los mismos N puntos? 1/N0.5 < 1/N4/d 0.5>4/d , o sea d>8

Page 13: Algoritmos paralelos básicos Algoritmos paralelos Glen Rodríguez.

Paradigmas de Monte Carlo paralelo

Master-worker: se genera los números aleatorios en el nodo 0 y se pasan a los demás.

Todos los nodos computan.

Page 14: Algoritmos paralelos básicos Algoritmos paralelos Glen Rodríguez.

Paradigmas de Monte Carlo paralelo

Cliente-servidor: es un servidor de números aleatorios, no procesa, sólo crea y envía los randoms

Page 15: Algoritmos paralelos básicos Algoritmos paralelos Glen Rodríguez.

Paradigmas de Monte Carlo paralelo

Full workers: cada nodo genera sus propios números aleatorios. El nodo 0 sólo cuida que se siembren diferentes semillas o que se use la misma semilla pero diferentes rangos.

Page 16: Algoritmos paralelos básicos Algoritmos paralelos Glen Rodríguez.

Números pseudo-aleatorios Elemento Central en la Simulación digital. Definición formal controvertida. Elemento esencial en muchas áreas del

conocimiento Ingeniería, Economía, Física, Estadística, etc.

Definición intuitiva: Una sucesión de números aleatorios puros, se caracteriza por que no existe ninguna regla o plan que nos permita conocer sus valores.

Los números aleatorios obtenidos a través de algoritmos recursivos se llaman pseudoaleatorios (pseudo= no son, pero parecen).

Page 17: Algoritmos paralelos básicos Algoritmos paralelos Glen Rodríguez.

Mapa Conceptual

Fenómenos FísicosProcedimientos

Matemáticos

NúmerosAleatorios

Validación deSeries de NA

VariablesU (0,1)

VariablesAleatorias

Tabla de Nros. aleatorios

Xi+1=(aXi+c) mod m

Page 18: Algoritmos paralelos básicos Algoritmos paralelos Glen Rodríguez.

Números aleatoriosDisponer de un buen generador de números aleatorios es clave en:

Simulación física (Monte Carlo y famila) Computación Aleatorizada Computación Evolutiva Algoritmos Aleatorizados (ej: algoritmos

de gossip) Verificación de Algoritmos Validación de Algoritmos Criptografía etc.

Page 19: Algoritmos paralelos básicos Algoritmos paralelos Glen Rodríguez.

Algunas Propiedades de Nros Aleatorios 1. Distribución Uniforme

Cualquier número que pertenezca al rango de interés debe tener la misma probabilidad de resultar sorteado. 

2. NO Correlación Serial.

La aparición de un número en la secuencia, no afecta la probabilidad de que aparezca otro (o el mismo) número. (si x1,x2,…,xn son aleatorias el vector (x1,x2,…,xn) también

Page 20: Algoritmos paralelos básicos Algoritmos paralelos Glen Rodríguez.

Algunas Propiedades de Nros Aleatorios

3- Complejidad Computacional: La aleatoriedad de Kolmogorov, también denominada incomprensibilidad computacional. Consiste en constatar si la aleatoriedad de una sucesión de números es incomprensible (problema decidible).

4- Impredecibilidad

Page 21: Algoritmos paralelos básicos Algoritmos paralelos Glen Rodríguez.

Algunas Propiedades de Nros Aleatorios

DEF 1: Kolmogorov (1987) [Complejidad Algorítmica] Una sucesión de números es aleatoria sino puede producirse eficientemente de una manera más corta (con un programa) que la propia serie.

DEF 2: L’Ecuyer (1990) [Impredicibilidad] Una sucesión de números es aleatoria si nadie que utilice recursos computacionales razonables puede distinguir entre la serie y una sucesión de números verdaderamente aleatoria de una forma mejor que tirando una moneda legal para decidir cuál es cuál.

Page 22: Algoritmos paralelos básicos Algoritmos paralelos Glen Rodríguez.

Ejemplo

La sucesión 1,2,3,4,5,1,2,3,4,5,1,2,3,4,5...

es uniforme pero está correlacionada.

La sucesión 3,4,4,2,1,4,5,2,5,4,1,1,3,4,4,3,4

Es no correlacionada pero no es uniforme

Existen Tests que verifican las condiciones de uniformidad y correlación serial.

Page 23: Algoritmos paralelos básicos Algoritmos paralelos Glen Rodríguez.

Generación de “aleatorios” Tablas de números aleatorios

RAND (1955), 100,000 números aleatorios (ruido electrónico)

Fenómenos físicos Ruido blanco producido por circuitos electrónicos Recuento de partículas radioactivas emitidas Lanzamiento de monedas / dados Rueda de la fortuna / ruleta Java Lamps u otos sistemas caóticos

Procedimientos matemáticos pseudo aleatorios Se usa algoritmos para la generación de números

aparentemente aleatorios, se entrega una semilla y se generan los sucesores mediante una función

Page 24: Algoritmos paralelos básicos Algoritmos paralelos Glen Rodríguez.

Propiedades para pseudo aleatorios

Distribución uniforme No correlación Periodo largo (sin repetición). Reproducibles y mutables. Sencillo en su implementación. Método rápido de generación. Poca memoria para la generación Portabilidad.

Page 25: Algoritmos paralelos básicos Algoritmos paralelos Glen Rodríguez.

Método del cuadrado medio

Fue propuesto inicialmente por Von Newman y Metrópolis en el año 1946.

Para generar el siguiente número pseudo-aleatorio, se toman los n dígitos centrales del cuadrado del número anterior de n dígitos.

Se requiere una semilla.

Page 26: Algoritmos paralelos básicos Algoritmos paralelos Glen Rodríguez.

Método del cuadrado medion R(n) R(n)2 M.R(n)2 Val 1 Val 2

0 154 23,716 371 371 0

1 371 137,641 3,764 376 764

2 376 141,376 4,137 413 137

3 413 170,569 7,056 705 056

4 705 497,025 9,702 970 702

5 970 940,900 4,090 409 090

6 409 167,281 6,728 672 728

7 672 451,584 5,158 515 158

8 515 265,225 6,522 652 522

9 652 425,104 2,510 251 510

10 251 63,001 300 300 0

11 300 90,000 0 0 0

12 0 0 0 0 0

Page 27: Algoritmos paralelos básicos Algoritmos paralelos Glen Rodríguez.

Análisis

El problema con este método es que tiende a degenerar rápidamente. Dependiendo del valor inicial el método puede degenerar al cabo de ≈20 términos.

Por ejemplo, supóngase que se quiere generar una serie de números pseudo-aleatorios de cuatro dígitos y se tiene como i-ésimo termino generado es 3500, luego se tendrá:

Se puede observar que hemos llegado a una condición degenerada. Por la tanto, es necesario verificar siempre la serie de números y protegerse contra este fenómeno

n R(n) R(n)2 M.R(n)2 Random

i 3500 12250000 2500 2500

i+1 2500 6250000 2500 2500

Page 28: Algoritmos paralelos básicos Algoritmos paralelos Glen Rodríguez.

Método del Producto Medio

Este método es muy similar al anterior ya que se tomará como número aleatorio siguiente de la serie, a los n dígitos centrales del resultado de una multiplicación previa.

Se requiere dos semillas.

Page 29: Algoritmos paralelos básicos Algoritmos paralelos Glen Rodríguez.

Método del Producto Medion R(n) R(n+1) R(n)2 M.R(n)2 Val 1 Val 20 151 155 23,405 340 340 01 155 340 52,700 270 270 02 340 270 91,800 180 180 03 270 180 48,600 860 860 04 180 860 154,800 5,480 548 4805 860 548 471,280 7,128 712 1286 548 712 390,176 9,017 901 0177 712 901 641,512 4,151 415 1518 901 415 373,915 7,391 739 3919 415 739 306,685 668 668 0

10 739 668 493,652 9,365 936 36511 668 936 625,248 2,524 252 52412 936 252 235,872 3,587 358 58713 252 358 90,216 21 21 014 358 21 7,518 51 51 015 21 51 1,071 7 7 016 51 7 357 5 5 017 7 5 35 0 0 018 5 0 0 0 0 0

Page 30: Algoritmos paralelos básicos Algoritmos paralelos Glen Rodríguez.

Análisis Una modificación para este método consiste en utilizar un

multiplicador constante, en lugar de dos números aleatorios como se muestra a continuación:

Rn+1 = K * Rn

Estos métodos son similares al cuadrado medio. Sin embargo los dos tienen periodos más extensos y los

números parecen estar distribuidos uniformemente. Este método tiende a degenerar a un valor constante. Tanto el método de cuadrados medios como el de producto

medio tienen un periodo corto para la cantidad de números aleatorios que vamos a necesitaremos generar en cada uno de nuestros Modelos.

Page 31: Algoritmos paralelos básicos Algoritmos paralelos Glen Rodríguez.

Método Congruencial Lineal (MCL)

Los generadores congruenciales lineales generan una serie de números pseudo - aleatorios de tal forma que se puede generar el siguiente a partir del ultimo número derivado, es decir, que el número Xn+1 es generado a partir de Xn.

La relación de recurrencia para el método congruencial mixto es:

Xn+1 = (aXn + c) mod m

Donde:X0 = semilla (X0 >0)

a = multiplicador (a >0)c = constante aditiva (c >0)m = módulo (m >X0, m >a y m>c)

Page 32: Algoritmos paralelos básicos Algoritmos paralelos Glen Rodríguez.

Método Congruencial Lineal (MCL)

Si se quiere obtener números Uniformes (0,1) se normaliza el resultado:

Un = Xn / m

En el MCL, si se repite un número ya se repite toda la secuencia.

Ventajas:1. utiliza poca memoria y es muy rápido. 2. fácil de volver a generar la misma secuencia, guardando un solo

número, (se alcanza con partir desde la misma semilla: X0).

Page 33: Algoritmos paralelos básicos Algoritmos paralelos Glen Rodríguez.

Ejemploa c m1 7 13

n X(n) a*X(n)+c [a*X(n)+c] mod m0 7 14 11 1 8 82 8 15 23 2 9 94 9 16 35 3 10 106 10 17 47 4 11 118 11 18 59 5 12 12

10 12 19 611 6 13 012 0 7 713 7 14 114 1 8 815 8 15 2

Page 34: Algoritmos paralelos básicos Algoritmos paralelos Glen Rodríguez.

Si no se escogen los valores adecuados de los parámetros el período del generador de números pseudo – aleatorios, será menor que m.

En la Tabla A se muestra los valores obtenidos para un generador con parámetros: a = 7, c = 9, X0 = 5 y m = 11. Como puede apreciarse en la tabla el período del generador es 10 que es menor que el módulo que es 11.

Si bien este caso no es crítico si lo es el que se presenta en la Tabla B donde los parámetros toman los valores de a = X0 = c = 7 y m=10 cuyo período es de 4, que es un caso muy critico que nos puede llevar a resultados no deseables y poco confiables

Análisis

Page 35: Algoritmos paralelos básicos Algoritmos paralelos Glen Rodríguez.

Tabla A

a c m7 9 11

n X(n) a*X(n)+c [a*X(n)+c] mod m0 5 44 01 0 9 92 9 72 63 6 51 74 7 58 35 3 30 86 8 65 107 10 79 28 2 23 19 1 16 5

10 5 44 0

Page 36: Algoritmos paralelos básicos Algoritmos paralelos Glen Rodríguez.

Tabla B

a c m7 7 10

n X(n) a*X(n)+c [a*X(n)+c] mod m0 7 56 61 6 49 92 9 70 03 0 7 74 7 56 65 6 49 96 9 70 0

Page 37: Algoritmos paralelos básicos Algoritmos paralelos Glen Rodríguez.

Selección de m, a, c, X0

a) Selección de módulo (m). Existen dos opciones que son las siguientes:

a.1) Escoger al azar el módulo m.

a.2) Tomar m de tal manera que sea el número primo más grande posible y además que sea menor que pd-1, donde p es la base del sistema que se esta usando y d es el número de bits que tiene una palabra de computadora en el sistema que se esta usando.

Por ejemplo una computadora Pentium2 que trabaja en el sistema binario entonces se tiene que p = 2 y d = 32.

Page 38: Algoritmos paralelos básicos Algoritmos paralelos Glen Rodríguez.

b) Selección de a. El valor de a debe ser un número entero impar, que no

deberá ser divisible por 3 ó 5. Pero además, para asegurarnos que el generador tenga período completo, el valor que se tome para a deberá escogerse según el siguiente criterio:

(a-1) mod 4 = 0 si 4 es un factor de m.(a-1) mod b = 0 si b es un factor primo de m.

Generalmente se toma a igual a 2k + 1 cuando se trabaja en el sistema binario. En ambos casos el valor que se asigne a k deberá ser mayor o igual que 2.

Selección de m, a, c, X0

Page 39: Algoritmos paralelos básicos Algoritmos paralelos Glen Rodríguez.

c) Selección de c. Este parámetro puede tomar cualquier valor. Pero para

asegurarnos de tener buenos resultados se deberá seleccionar según la siguiente regla:

c mod 8 = 5

En consecuencia c deberá tomar un valor entero impar y relativamente primo a m.

Selección de m, a, c, X0

Page 40: Algoritmos paralelos básicos Algoritmos paralelos Glen Rodríguez.

d) Selección de X0

Se tiene que para el generador congruencial el valor que tome X0 es irrelevante y tiene poca o ninguna influencia sobre las propiedades estadísticas de las series de números pseudo - aleatorios que se generen.

Selección de m, a, c, X0

Page 41: Algoritmos paralelos básicos Algoritmos paralelos Glen Rodríguez.

Método Congruencial Lineal (MCL)

Para terminar esta parte se debe señalar que existen otras formas matemáticas de representar este generador, que son las siguientes:

Xn = [anX0 + c{(an - 1)/(a - 1)}] mod m

Xn+k =[anXk + c{(an - 1)/(a - 1)}] mod m

Page 42: Algoritmos paralelos básicos Algoritmos paralelos Glen Rodríguez.

Método Congruencial Multiplicativo

En forma semejante al método anterior el generador congruencial multiplicativo genera el próximo número pseudo - aleatorio a partir del último número calculado, siguiendo la siguiente relación de recurrencia:

Xn+1 = aXnmod m

Para este generador también se deben escoger adecuadamente los valores de a, X0, y m, con la finalidad de que se pueda asegurar un período máximo para la series pseudo - aleatorias generadas por este método. A continuación se dan las reglas que indican como se deben escoger estos valores.

Page 43: Algoritmos paralelos básicos Algoritmos paralelos Glen Rodríguez.

Selección de m, a, X0

Para trabajar en el sistema binario los valores de los parámetros deberán escogerse siguiendo las siguientes reglas:

El valor de X0 debe ser un número entero impar y relativamente primo a m.

El valor de a debe ser obtenido a partir de la siguiente expresión:a = 8t ± 3

Donde t es cualquier entero. El valor de m puede ser 2d .

Si m = 2d el período del generador es 2d-2 ó m/4. A modo de ejemplo se obtendremos el período de un

generador cuyos parámetros son: a = 5, X0 = 5 y m = 32. En la siguiente tabla se muestra los elementos que componen la serie generada cuyo período es de 8

Page 44: Algoritmos paralelos básicos Algoritmos paralelos Glen Rodríguez.

Tabla C

a m5 32

n X(n) a*X(n)[a*X(n)] mod m

0 5 25 251 25 125 292 29 145 173 17 85 214 21 105 95 9 45 136 13 65 17 1 5 58 5 25 259 25 125 29

10 29 145 17

Page 45: Algoritmos paralelos básicos Algoritmos paralelos Glen Rodríguez.

Tabla D

Parámetrosa b m xo6 0 13 17 0 13 105 0 13 57 0 11 56 0 11 3

Caso Salidas1 6 10 8 9 2 12 7 3 5 4 11 1 6 102 5 9 11 12 6 3 8 4 2 1 7 10 5 93 12 8 1 5 12 8 1 5 12 8 1 5 12 84 2 3 10 4 6 9 8 1 7 5 2 3 10 45 7 9 10 5 8 4 2 1 6 3 7 9 10 4

5

Caso1234

Page 46: Algoritmos paralelos básicos Algoritmos paralelos Glen Rodríguez.

Otros métodos

Series retardadas de Fibonacci In = In-r – In-s mod 224, r, s grandes (cientos, miles), r>s

Series aritméticas: I – k, I – 2k, I – 3k…, mod (224 - 3), k = 7654321

Mersenne Twister (MT19937): periodo de 219937-1. No tiene correlación en 623 dimensiones.

Combinación de 2 o más métodos. Ej: Masaglia es combinación de Fibonacci y Aritméticas

Page 47: Algoritmos paralelos básicos Algoritmos paralelos Glen Rodríguez.

Mersenne Twister

Basado en recurrencia y modulo 2

l, s, t, u son enteros, b, c son máscaras de bits, x[0:n-1] es un array de n enteros sin signo, ll, a son constantes enteras sin signo

Page 48: Algoritmos paralelos básicos Algoritmos paralelos Glen Rodríguez.

Paso 0Paso 0

Crear una máscara para bits superiores y otra para los inferiores Crear una máscara para bits superiores y otra para los inferiores

Paso 1Paso 1

El array x se inicializa con una semilla El array x se inicializa con una semilla

Paso 2Paso 2

y : bits superiores de x[i] concadenados con los bits inferiores de y : bits superiores de x[i] concadenados con los bits inferiores de x[i+1].x[i+1].

Page 49: Algoritmos paralelos básicos Algoritmos paralelos Glen Rodríguez.

Paso 3Paso 3

y * A.y * A. A se escoje tal que sea fácil de calcular con shift derecho y A se escoje tal que sea fácil de calcular con shift derecho y

xor.xor. Paso 4Paso 4

Multiplica por T (tempering matrix) para mejor equidistribución Multiplica por T (tempering matrix) para mejor equidistribución y buena precisión.y buena precisión.

Paso 5 & 6: Paso 5 & 6: Sumar 1 a Sumar 1 a ii , repetir el proceso , repetir el proceso

Page 50: Algoritmos paralelos básicos Algoritmos paralelos Glen Rodríguez.

Streams - Torrentes

Un generador de números aleatorios que comience con la misma semilla, siempre producirá la misma torrente o secuencia de números.

Diferentes semillas generarán diferentes secuencias. Si las semillas se eligen con valores no cercanos (en el ciclo del generador), entonces las secuencias de números generados (torrentes) parecerán y actuarán como números aleatorios independientes entre sí con lo que colaborarán en la generación de v.a. Independientes entre sí.

Page 51: Algoritmos paralelos básicos Algoritmos paralelos Glen Rodríguez.

Generadores Paralelos de nums. pseudo aleatorios

Cómo hago para Montecarlo Paralelo? Generación centralizada (master-worker y

cliente servidor) Generación descentralizada (full workers)

El problema de la 1ra opción es que hay que comunicar data por memoria compartida o por la red: se gasta tiempo. Además no se usaría paralelismo en la producción de los pseudo aleatorios.

Page 52: Algoritmos paralelos básicos Algoritmos paralelos Glen Rodríguez.

Generación descentralizada (full workers)

Asumamos que se usa el mismo método en todos los cores. Hay 3 formas: Todos los cores usan la misma semilla,

generan la misma secuencia, pero usan solo una parte de los números: r1, r2, r3, r4, r5, r6, r7, r8, … (1 sólo stream)

Cada core usa una semilla diferente (varios streams independientes).

Usar un generador especialmente diseñado para computación paralela (varios streams independientes).

Page 53: Algoritmos paralelos básicos Algoritmos paralelos Glen Rodríguez.

Generación descentralizada (full workers)

La primera opción: si son np cores, se computa por gusto un ratio de np-1/np . A veces no se podría usar con hilos.

Puede ser que el generador no sea “thread safe” (cada llamada a random, no importa el hilo, usa la misma variable en memoria necesita un mutex en Multicores) .

La segunda: no hay garantía que las secuencias de 2 diferentes cores no tengan correlación (“Solo Dios sabe si no tienen correlación”). Para np cores, hay np(np-1)/2 chances de correlación. A veces no se podría usar con hilos.

Page 54: Algoritmos paralelos básicos Algoritmos paralelos Glen Rodríguez.

Generadores especialmente diseñados para paralelismo

Series de Fibonnaci con diferentes parámetros para cada core: In = In-r – In-s mod 224, r, s diferentes. O los I

iniciales diferentes. “Dynamic Creator” para Mersenne Twister:

Usando un ID (ej.: número de proceso), tamaño el random, periodo, se generan diferentes semillas para ell Mersenne Twister, que generan streams sin correlación.

Page 55: Algoritmos paralelos básicos Algoritmos paralelos Glen Rodríguez.

Si quiero 100 generadores sin correlación, llamo a esta función 100 veces, con ID=0,1,2,…,99, y obtengo 100 seeds.