¿Qué tipo de matemática se usa en la programación de computación paralela?

Para escribir computación paralela, debe saber cómo paralelizar sus cálculos.

Para esto, usarías diferentes campos de las matemáticas.

Como ejemplo, usted debía sumar números: [math] \ sum x [/ math]

Usted sabe que puede dividirlo debido a la propiedad asociativa “+”. Es bastante intuitivo.

A veces es más difícil. Si tuviera que multiplicar la matriz, tendría que prestar atención al pedido.

Para la suma, puede imaginar nodos de cuadrícula sumando sus sectores asignados. Para la multiplicación de matrices, los nodos deben recordar a quién le dieron qué agregar correctamente.

Entonces, como matemático, usarías principalmente teoría de grupos y álgebra.

Otro ejemplo, es la suma de una matriz 2D. Tendría algo como esto:

[matemáticas] \ sum_i \ sum_j a_ {i, j}
[/matemáticas]

I y J son libres entre sí. Eso te dice que puedes calcularlos por separado. (Puede fragmentar por líneas o asignar i, j a un solo índice)

Pero, tarde o temprano, puede caer en algo más difícil:

[matemáticas] \ sum \ binom {m, n} [/ matemáticas]

Es posible que desee dividir a los factoriales ocultos. (¡Porque el mismo factorial se puede calcular varias veces!)

Pero la operación raíz (“+”) es tan fácil de paralelizar.

Ahora, ahí está el mapa, reduce la cosa. Puede escribir las cosas anteriores como mapa reducido y el sistema se enviará en consecuencia.

El producto matricial en sí mismo puede escribirse como un mapa reducido donde la clave es la pareja y los valores son los dos vectores para multiplicar.

Otra función de reducción simplemente fusionaría todos los resultados en una matriz usando las teclas para colocarlos en el lugar correcto.

Como puede ver, el mapa, reducir lo hace un poco más fácil. ¡Sin embargo, los casos de bordes necesitarían un buen algebraista!

La teoría de grupo es bastante divertida. Se filtra aproximadamente en cualquier lugar ^^

¡Domínelo (bueno, no es realmente posible) y sus habilidades matemáticas y de computación aumentarán! La teoría de grupo básica (simetrías) debería tomar algunas horas. Cuando se trata de álgebra, hablamos en meses. Cuando cruzamos campos, en años. (En dedicacion)

NB: todos los ejemplos son bastante aburridos. ¡No soy realmente bueno en ese campo específico!

División larga, la mayoría de las veces. Y el uso ocasional de un módulo.

Si está preguntando acerca de las matemáticas que se incluyen en las simulaciones físicas que forman la mayoría de las cargas de trabajo científicas paralelas, observará muchas ecuaciones diferenciales parciales y cosas más extrañas.

Pero los bits de programación paralelos reales son software de sistema directo. Pueden ser complicados porque funcionan bastante cerca del hardware subyacente, pero matemáticamente no van más allá de la aritmética básica.

Agregando un poco a la respuesta del Sr. Rountree, a menudo se utilizan algoritmos paralelos donde existen matrices: un conjunto de puntos de datos independientes que pueden (en su mayoría) manipularse por separado. Por el contrario, los problemas que se definen por una cantidad limitada de datos, con una interconexión profunda, que debe pasar por una complicada manipulación en serie, generalmente son malos candidatos para el cómputo paralelo.

Cualquier operación que pueda dividirse en tareas discretas más pequeñas y luego unirse para obtener un resultado final es adecuada para realizarla en paralelo.

La multiplicación de matrices es uno de esos ejemplos.

Algoritmo de multiplicación matricial – Wikipedia

More Interesting

Cómo mejorar mi habilidad de programación en los temas de matemática y geometría

¿Hay alguna prueba matemática de que los lenguajes de computadora modernos pueden representar cualquier algoritmo finito usando una cantidad finita de código?

Cómo construir una computadora fuera del agua, y cómo ayuda esto con Navier-Stokes

Para los usuarios, ¿se está volviendo Facebook más valioso, útil y digno de más tiempo invertido o menos? ¿Por qué? ¿Hay alguna evidencia de Facebook de que la Ley de Metcalfe es cierta (para n usuarios, el valor de la red aumenta en nxn)?

Si la caja de sugerencias contiene lo siguiente, ¿cuál es la contraseña: 4 uvas, 1 manzana, 7 plátanos, 7 mangos, 2 piñas, 1 naranja, 8 granadas?

Recientemente he entregado mis tableros (12) y quiero hacer una mecánica BTech. Espero 85% en tableros, pero estoy seguro de que no romperé el avance de IIT. ¿Qué debo hacer, dejar un año y tomar clases de IIT o elegir la universidad solo este año? ¿Es seguro dejar caer un año?

¿Cuál es la forma de demostrar que el límite inferior del par más cercano es n log n utilizando Element Uniqueness?

En Java, ¿por qué usar un iterador para iterar a través de LinkedList más rápido que usar un bucle for?

¿Cómo se diseñan los CAS (sistemas de álgebra computacional)?

¿Existe una función que defina la relación entre el dígito inicial de un entero y el número de términos cuando se agrega infinitamente?

¿Es suficiente una licenciatura en informática para conseguir un trabajo como desarrollador de software?

¿Existe alguna notación conveniente, como la notación factorial (n!) Para expresar la suma de todos los números contados del 1 al n?

¿La informática es matemática aplicada?

¿Qué quiere decir uno con "Cada base es base 10"?

¿Cuáles son algunas aplicaciones del mundo real de min-cut en la teoría de grafos?