Estoy tratando de hacer una exponenciación modular de enteros con un módulo muy grande por cuadratura repetitiva (la potencia es siempre una potencia de 2 en mi caso, así que creo que esta es la forma más eficiente). Gracias a una buena propiedad de mi módulo, el resto de la informática es barato; la parte difícil es la multiplicación.Biblioteca aritmética de precisión arbitraria paralela
Actualmente ejecuto GMP en Intel Core 2 Quad. Me gustaría hacer un uso eficiente de los cuatro núcleos del procesador, pero GMP no escala en entornos SMP, por lo que estoy buscando una biblioteca aritmética de precisión arbitraria de sustitución. He encontrado algunas bibliotecas para el cálculo paralelo en matrices, pero lo que realmente necesito es una biblioteca para enteros.
¿Existe lo que estoy buscando?
¿Qué tan grandes son sus números (dígitos, bits)? Incluso con horquillas baratas, el tiempo de conmutación de contexto para permitir que múltiples CPU trabajen en una sola operación aritmética podría dominar cualquier ahorro. Si los números son lo suficientemente grandes, deberías hacer una división recursiva y conquistar al sumar/restar [dividir el número en partes izquierda y derecha, agregar recusivamente las partes, propagar el acarreo], pero esperaría que la victoria sea en paralelizar múltiples y dividir si hay una victoria que se tenía. –
Mis módulos pueden ser tan grandes como 2^10000000 (!). – Pteromys